Get token

If authorized users will make purchases on your website, implement getting a token. If you plan to sell to unauthorized users, connect the Buy Button product.

You need to obtain a token to integrate the payment UI. An access token is a string that identifies game, user, and purchase parameters.

Xsolla API uses basic access authentication. Specify your merchant ID as the username and the API key as the password.

To find this data:

  1. In your Publisher Account, go to Company settings.
  2. In the Company tab, copy Merchant ID.
  3. In the API key tab, copy the API key.

URL to retrieve the token:

Full screen
Small screen{merchant_id}/token

You can alter the HTTP POST request by including the parameters you want to pass on to the payment UI. Pass the information about the user in the parameters,, and of the Create token method.

For the parameter, use an identifier that users can remember and later use outside the game by themselves (e.g., when replenishing the game balance using push payments).
API reference
See the full list of parameters.

Both the request and the response are in JSON format.

Below you can find sample code of how to get a token in PHP with the help of Xsolla PHP SDK. If you are using another programming language, take a look at the CURL example by clicking on the CURL tab.

Full screen
Small screen
  • php
  • curl

use Xsolla\SDK\API\XsollaClient;
use Xsolla\SDK\API\PaymentUI\TokenRequest;

$tokenRequest = new TokenRequest($projectId, $userId);
    ->setPurchase(9.99, 'USD');

$xsollaClient = XsollaClient::factory(array(
    'merchant_id' => MERCHANT_ID,
    'api_key' => API_KEY
$token = $xsollaClient->createPaymentUITokenFromRequest($tokenRequest);
curl -v{merchant_id}/token \
-u your_merchant_id:merchant_api_key \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-d '
    "user": {
        "id": {
            "value": "1234567"
        "email": {
            "value": ""
    "settings": {
        "project_id": 14004,
        "mode": "sandbox"
    "purchase": {
            "checkout": {
                "amount": 9.99,
                "currency": "USD"

Your progress
Thank you for your feedback!

Continue reading

API reference
Last updated: August 8, 2022

Found a typo or other text error? Select the text and press Ctrl+Enter.

Report a problem
We always review our content. Your feedback helps us improve it.
Provide an email so we can follow up
Thank you for your feedback!