For the complete documentation index, see llms.txt. This page is also available as Markdown.

Retrieve UniTokens list

Use the listUniTokens method to return a paginated list of UniTokens associated with a customer.

At least one of CustomerReference or ExternalCustomerReference must be provided. If both are provided, they must belong to the same customer record. Requires the UNITOKEN feature to be enabled for the account.

Request parameters

Parameter
Type / Description

sessionID

Required (string)

Session identifier, the output of the Login method. Include sessionID into all your requests. The sessionID expires in 10 minutes.

CustomerReference

Required if ExternalCustomerReference is not provided (string)

The 2Checkout internal customer ID (AVANGATE_CUSTOMER_ID).

ExternalCustomerReference

Required if CustomerReference is not provided (string)

The external customer ID set by the merchant (EXTERNAL_CUSTOMER_ID).

Page

Optional (integer)

Page number for pagination. Default value is 1.

Limit

Optional (integer)

Number of results per page. Default value is 100. Maximum value is 1000.

Request sample

<?php

declare(strict_types=1);

class Configuration
{
    public const MERCHANT_CODE = 'MERCHANT_CODE';
    public const MERCHANT_KEY = 'SECRET_KEY';
    public const URL = 'https://api.2checkout.com/soap/6.0';
    public const ACTION = 'listUniTokens';
    //array or JSON
    public const PAYLOAD = <<<JSON
{
    "CustomerReference": "12345",
    "ExternalCustomerReference": null,
    "Page": 1,
    "Limit": 10
}
JSON;
}
class Client
{
    public function call(
        string $url = Configuration::URL,
        $payload = Configuration::PAYLOAD,
        string $action = Configuration::ACTION
    ): ?object {
        if (is_array($payload)) {
            $payload = json_encode($payload);
        }
        if (!empty($payload)) {
            // SoapClient works with objects(StdClass)
            $payload = json_decode($payload);
        }
        $soapClient = $this->getClient($url);
        $sessionId = $this->getSession($soapClient);
        $args = array_filter([$sessionId, $payload]);
        return $soapClient->$action(...$args);
    }

    public function getClient(string $url): SoapClient
    {
        return new SoapClient(
            $url.'?wsdl',
            [
                'location' => $url,
                'cache_wsdl' => WSDL_CACHE_NONE,
            ]
        );
    }

    public function getSession(SoapClient $client)
    {
        $date = gmdate('Y-m-d H:i:s');
        $merchantCode = Configuration::MERCHANT_CODE;
        $key = Configuration::MERCHANT_KEY;
        $string = strlen($merchantCode).$merchantCode.strlen($date).$date;
        $algo = 'sha256';
        $hash = hash_hmac($algo, $string, $key);
        $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');
        return $client->login($merchantCode, $date, $hash, $algo);
    }
}
try {
    $client = new Client();
    var_dump($client->call());
} catch (Exception $ex) {
    var_dump($ex);
}

Response sample

Error
Description

UNITOKEN_FEATURE_NOT_ENABLED

The UNITOKEN feature is not enabled for the merchant account

CUSTOMER_REFERENCE_REQUIRED

Neither CustomerReference nor ExternalCustomerReference was provided

CUSTOMER_REFERENCE_MISMATCH

Both references were provided but they belong to different customer records

UNITOKEN_VALIDATION_ERROR

Page or Limit failed validation (e.g. Page < 1, Limit > 1000)

Last updated

Was this helpful?