Настройка платежей

Проверка существования пользователя

Что такое User ID?

User ID — это параметр, который позволяет идентифицировать пользователя в игре. Вы можете хранить ID пользователей в базе данных. При получении некорректных ID пользователей генерируйте исключения. Примеры пользовательской валидации вы можете найти в GitHub-репозитории.

Какие данные надо возвращать после валидации?

При успешной валидации вы должны вернуть HTTP-код 200. В случае ошибки — код 400 (INVALID_USER).

Кастомизация

Могу ли я изменить оформление платежного интерфейса?

Вы можете изменить стандартную тему на темную, передав в токене параметр settings.ui.theme = default_dark. Темная тема позволяет установить фоновое изображение или изменить цвет фона (как, например, в демо). Чтобы изменить другие настройки, обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

Могу ли я изменить оформление писем, отправляемых пользователю?

Да, для этого воспользуйтесь инструкцией по кастомизации писем. Обратите внимание, что разделы письма являются частью стандартного шаблона и их порядок не меняется. Это обязательное условие Лицензионного договора с Xsolla, которая выступает в качестве зарегистрированного получателя платежа.

Тестирование

Могу ли я использовать тестовую банковскую карту для проверки платежа?

Да, но только в тестовом окружении вашего приложения и демоверсии платежного интерфейса с включенным тестовым окружением (sandbox-режимом). Вы можете найти тестовые банковские карты разных брендов и стран выпуска в общем списке.

Могу ли я протестировать платеж через PayPal в тестовом окружении?

Да. Изучите подробную информацию в инструкции.

Как я могу протестировать возврат платежа?

С помощью API-метода Возврат платежа. Изучите подробную информацию в инструкции.

Что такое ID заявки в Xsolla и Invoice ID на вкладке тестирования вебхуков в Личном кабинете?

ID заявки в Xsolla — ID транзакции на стороне Xsolla. При тестировании вы можете указать любое числовое значение.

Invoice ID — это необязательный ID транзакции на стороне вашей игры. При тестировании вы можете указать любую комбинацию букв и цифр.

Платежи

Как я могу проверить валидность запроса на оплату, полученного в вебхуке?

Проверьте, существует ли указанный ID пользователя в проекте. Чтобы подтвердить платеж, отправьте код 200.

Могу ли я сразу перенаправить пользователя на определенный способ оплаты?

При открытии магазина вы можете передавать ID способа оплаты в параметре settings.payment_method. В этом случае пользователь сразу перенаправляется на платежную форму выбранного способа оплаты. Список ID способов оплаты можно получить в Личном кабинете в разделе Платежи > Способы оплаты.

Могу ли я сразу перенаправить пользователя на страницу успешной/ошибочной транзакции сразу после обработки платежа в зависимости от результата?

Да, вы можете настроить условия редиректа. Изучите подробную информацию в инструкции.

В моем биллинге номеру заказа присваивается order_id. Можно ли использовать order_id вместо user_id при получении токена?

Нет, для корректной работы требуется user_id.

Вы можете передать order_id дополнительно в параметре external_id. Для этого:

  1. Откройте проект в Личном кабинете и перейдите в раздел Настройки проекта > Настройки интеграции.
  2. Установите флажок Использовать внешний ID.
  3. Нажмите Сохранить.

Можно ли переопределять URL-адрес вебхука для каждой транзакции?

URL-адрес вебхука указывается в настройках проекта в Личном кабинете и используется для всех транзакций.

Буду ли я получать данные о неуспешных транзакциях?

Xsolla отправляет вебхуки только в случае успешной покупки. Если вы получили уведомление о платеже, транзакция прошла успешно.

Какая платежная опция позволяет добавлять VAT к общей сумме платежа?

По умолчанию настройки покрытия VAT выполняются на стороне Xsolla. Если вы хотите изменить настройки и удерживать VAT с пользователей, обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

Что такое PID?

PID — ID платежной системы в Xsolla.

Что такое внешний ID?

Внешний ID — это ID транзакции в игре, который присваивается заказу в вашей системе. На стороне Xsolla внешний ID связан с ID транзакции, поэтому наличие внешнего ID позволяет Xsolla предотвращать повторную оплату одной и той же транзакции.

Внимание
Внешний ID должен быть уникальным для каждого платежа пользователя. Значение этого ID не может повторяться в тестовом (sandbox-режиме) и боевом окружениях. Например, если у вас есть тестовый платеж с “external_id”: “1”, вы не можете совершить реальный платеж с “external_id”: “1”.
Чтобы настроить внешний ID в проекте:
  1. Откройте проект в Личном кабинете и перейдите в раздел Настройки проекта > Настройки интеграции.
  2. В разделе Платежи установите необходимые флажки:
    • Использовать внешний ID — чтобы сделать валидацию внешнего ID обязательной при создании токена.
    • Пропустить проверку внешнего ID — чтобы отключить валидацию внешнего ID при создании токена.
Внимание
Если у вас установлены оба флажка, при создании токена будет происходить валидация внешнего ID.
  1. Нажмите Сохранить.
Примечание

При включенной настройке Использовать внешний ID тестирование оплаты через Личный кабинет невозможно. Для корректного проведения тестовых платежей временно отключите использование внешнего ID.

Нужно ли создавать новый внешний ID для каждой транзакции?

Да. Внешний ID должен быть уникальным для каждого платежа пользователя.

Какое значение установить для команды setExternalPaymentId?

Укажите для команды setExternalPaymentId то же значение, что и для external_id, если он у вас есть.

Что такое прямые аккаунты?

Прямые аккаунты позволяют отображать в платежном интерфейсе платежные системы, с которыми у вас заключен прямой договор. Игроки по-прежнему оплачивают покупки выбранными ими способом, а вы получаете выплаты напрямую от платежных систем. Чтобы подключить прямые аккаунты, откройте свой проект в Личном кабинете и перейдите в раздел Платежи > Настройки платежей > Прямые аккаунты.

Xsolla выступает поставщиком услуг и взимает сниженный процент revenue share: 1.25% от суммы транзакции + $0.10. Вы будете иметь полноценный доступ ко всем решениям Xsolla, но при этом обязуетесь самостоятельно:

  • контролировать уплату налогов;
  • заключать отдельный договор с каждой платежной системой;
  • производить взаиморасчеты с платежными системами;
  • контролировать уплату комиссий платежных систем, возвраты платежей, возврат средств, комиссии с выплат и расходы на оперирование.

Например, если вы уже сотрудничаете с PayPal и хотите проводить платежи напрямую, вы можете подключить прямой аккаунт. Платежный интерфейс при этом не изменится — изменится только процесс перевода выплат. После обработки платежа средства, поступившие от конечного пользователя, переводятся на ваш аккаунт PayPal. В данном случае выплаты производятся без участия Xsolla.

Как мне перенести в Xsolla данные пользователей (сохраненные платежные аккаунты, подписки и т. д.)?

Обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com. Используйте PGP-шифрование, чтобы обеспечить конфиденциальность данных.

Параметры PGP-ключа Xsolla:

  • ID ключа: DA1E62CB
  • Тип ключа: RSA
  • Длина ключа: 4096
  • Уникальный отпечаток: 0209 8489 757F 4451 F431 FB0C FBFC 4D97 DA1E 62CB
  • ID пользователя: admins@xsolla.com

Copy
Full screen
Small screen
     1-----BEGIN PGP PUBLIC KEY BLOCK-----
     2
     3mQINBGnZA+8BEACtu+pO73jhG/5sjmkJRpMxftcQeNZRpB1QUMYYNcB6MFVuU3Oo
     4HO/hOuXWIbh1S5LWQOok5cY3eiQOKwjhwV/IpM0DJ5pxi5YlCAHwkSWO4b2J4lXF
     5pu27bb9whbaC+V1g1gE0TmLtiqKfX0QF6NZop4SrQ3f4yDoV50JKHGtW9XWL4Bfz
     6JWNyM9H4PFdzy5Pwhu5/642XSZf9MClpQzUjwPw+zSfxnweF6je3lbWvH+2fqBG/
     7Y1SeMuFW9Vo9QNCdBX9ws98CrS9bN3frXywh6B1cEEVoBbOvH/T3foKUmlr5gdHi
     8ijTKiFKHTsBcfHcaQgM1cCD0qrRCLrQ2j6KjJOjRevHLJLzdmZFiCDD11+eL338k
     9o4GVdoQR4aNeXfJEICN+79kwz/AVa6d8O934Nnfbz7e7Xx10KR/ObLt6Xnp57GmE
    10zWqvtkJ/GGivCyyHR632Nb4yoj/lgf6s0Z0oTQ4Dx8u+as2T+OG+zNo4xRcU8fE2
    11F2FBbYXtzp6ySrWu0YcOjS+YhH5tjJBz1dndEQ+FwfA9MWmQgNDuHfdub0CcQqb2
    12AfipbGzU+cPucmiyown1WzqP824xmr2JOVJ28DD8CkuAtGQW+kGQqZzHohWgM5WS
    13nZlX6rfIYtrygJFrbULGb7A4Ekj9IDzUjnpiHSf8D1jtcHPNPZ2zRvrC3wARAQAB
    14tCFYc29sbGEgQWRtaW5zIDxhZG1pbnNAeHNvbGxhLmNvbT6JAlQEEwEIAD4WIQQC
    15CYSJdX9EUfQx+wz7/E2X2h5iywUCadkD7wIbLwUJAeEzgAULCQgHAgYVCgkICwIE
    16FgIDAQIeAQIXgAAKCRD7/E2X2h5iyxvVD/wLxBbYrNLPuEAJwL8UWDu1naQuaZHl
    17/6yDUBV70l7Cxla6KEUqipuJDeD+Vgn85CqVui9eHgZpgXSxG5WogtO+Fkw3n/Ww
    18gJkbZQTufWCuW/A82+aHaD0GNCLYqV6EEHQQ4hko6Z3E3zuuI0EoP9hB1BgUq0W1
    19qhwrb1Q6Y8nQMgmhCgoRC8EvVFQwk6isvxDczym02/edjxgWuDZJOmZ5WMeN3Vzz
    20QoYaGuChoyemigwGvJBKJKAMlgCRZNKlX7L3fOebT16jq1i5ByUqmmngq3YnBnmv
    21j76HXP+MQioVr1FC4lkTkD4wWAw/l0gO0B3zLbPY8KQO4gcfLdH6wWPsfcQDmYWK
    221vT9AhSPcIQCEcPCZnDBsf6FbiO3KMp0mFCJ0dZdaRJrem/7eL+P3I//H3HKo8RR
    23BBGHJZCcm6MSwztUxZW2+6YiMCP9oQVU2zRnUfl/+J6maj83vz9cFQEqYyhbKjTu
    24kRkAowUUA54GXnmul+sCvuJXHoKeC4EyZzNYCDxd9Y2u0jAnng2qT09b66IguOZW
    250FPSzsRSeHGigwcK+/ChLk0+1CTXmO1fweIsaE1RcqgNLCR4Drtpup2Be8PA3B7i
    26Uu8hDz77Lzz8M4O7jDUpS+plUrJEJ1dY+Uiav8jvkeqT9wc89jwKHxNUFNiPhFRb
    27cSPnPI9I1QziyLkCDQRp2QPvARAApfXCw+EkrxXY+kOC/WKTen5Z/5hsTlupq2XR
    28uF9S//LzVmgPXuVHqMUWUoNs/nfRLwDbJ7CjygL1DKMDSBzPkovaLOhnr4EMvmsP
    29CUgQPXP0YUpSYBkAe5idrK2RPegNe68+wEz5r6azHS9r1QjSy+ekXGdTMrAs/On2
    30FxxMLWYrEJ8M8iBDQVVOOK8YowcNV44U+ljf5VkJ8TpdNXOATLxuhNXvYTzuDGi6
    31J0XCMa3CkIzxC3E4U2qWrHOjU7DjsvqiL5PbtiHjHhCoS6emdPsvqViaIafzcuE5
    32eAGiHMyLRl5uwSdAmuW04W+IPM1PM3lwFjFB2lM2f1qHTJXZvG6mXYcBZgrA25te
    33dRBgGgpofXutem0jM1lMDLzhAYHhAw8/uJR8yrq2A6t+rIDa1RxP8WJzLASG9rn/
    34NmEgor27yhC2RIX4GwJsJ5xSCRkQPxbllVYCVpB6nFfTORbkaWdo7LSwXzUjrJBG
    35++m4zQ+rcKRx9XjErls/hYXPB0tZXOP6vYM1zTLqAKtRPeQxJPK5/TbWrVgphvSi
    36Yu6qMfnp2IYfyr1Zv0QjxvMUS/A9yVoH1ObY2SJDTa2Wtz1zBX76+vGj4FfeMn2C
    37ROIzdvt9ndSYRk2bu/7XtflG7HomE9a/ATqOHalmLykLDgfsQLhSyLKnhOq7MmQw
    38ZaQt7hkAEQEAAYkEcgQYAQgAJhYhBAIJhIl1f0RR9DH7DPv8TZfaHmLLBQJp2QPv
    39AhsuBQkB4TOAAkAJEPv8TZfaHmLLwXQgBBkBCAAdFiEENKTXmM5UXELlwc4NJVnA
    40zu7wAJMFAmnZA+8ACgkQJVnAzu7wAJOsLQ/9Fr7qfXD4EHX/IBrtLvhFiFRoQsUQ
    41wp0aI8N2UrGfcWjRCHg7qdYfS5jZTuntNQQIHkVjs3Uqy9K06Va5pbJGCAQv50MW
    42qZVKKGuaJ0aM2BsgEzCIIZYAcJpQilcU16A7FIUETMcE7HbubfD6NRW3DDYTBMLd
    43Jn9idvd7bRmYCQuCwDMnLfa9JFjt+paCuySUfyCDvFqnO6EXIYQd2JFYptECFEkQ
    44crZEfFlA5ygrpUSCsf5lDHgykoVziLbnW1R25dv84OV/Xu3hsjJFAY/TPP1Nh8M6
    45JqZjGz5kOcIRThmT28jZdfgeqOnwIAc3rnr4B3NiXuuIJawfltnV5ujmnipcKLK8
    46wPJlUAMcCOg3UD5tXjGwPBU8ryHkAZfXsqcUDllA7bGCRMPnQtfTnAr7xrieCjfn
    47FDElBPsSg5C2jV9E23/n7+M0MuL/73fYGe8tDleEQHwyRbTEmI+5v4gwt1IOUlg7
    485znJdXkp/Kwhmgv4GnFTB78pD+lx3CB0vPFsufhATCY8lDP+xMvUeURDF6jhGP/F
    497waM/sOh9/zd4RaOxHMxGZHNs7g9rVca2AbwCTKuTvV7blUz10/j80prEyJwNj5e
    50n+td7m4xLHRhSYeSXMteXIowWPE1nshYpV5sZbywE8pOwzBXbqHoNClDQh5szyFB
    51CyHQR8sowp+42FLUFw/+PdDSjmI7/Z3vmtRsi+VgqbDM7CW2T8rIR/sUizBOCRah
    52mBM1aA7IyJ2GerdMFGVeCRcCljUEiGnw+IvPdS72bTpfvk+8fU2o7PXsQSJfmhQS
    53cA4k9uhLm87S3Ng5SX50+qTsgZgc7qywoSqCs4KC7p5zmsc+hfmdpFFmBYTP24Ai
    54WdCXt1fqAAsbbO9dU5mos2Hs/L6qANKaN0wJBwf/cRnrewdV6zVhLCvkDYuXADf8
    55SmgzXCESVNZNEFLWC2+syl3McSaRbjaInf1ijB8oMI7zR32bonqTEw4Vxc+mcc7H
    56ck3ZtYyE8iA8TU5yyNzv0bmD5b8S7EquXekhbckC6tZw/i+O6xt6sZNnczkGbvup
    57v5MNf4h8bcCkMFZ1jD27wpLUyGbxyr9t0D4DJeDYaAIyDF2IWd4kAeHvUyRvJt+b
    58mbDI6b00PHMlW5JGebVvaV5opeBn2/aYTAMg5T7ohHxksM6jWfIVJPMRTik6RsGC
    5937yLy8U7gcxebRwty6GxZuDdRjaBz/JcC9TshTgvbWJ392t8O3ZU6mezV2yDHTAO
    60dE30NoqxiX+sZTYsyL5hkSW44LiH5sd30HxyXLQQ1Q+k3y0drKbp9UNc3E79l/mX
    61r6jr1egiuYyCUk2zjaUx+UfI7Xrk2uttanFgJsTTX2wIGic5iFEecfe45V/YgOM=
    62=naL7
    63-----END PGP PUBLIC KEY BLOCK-----
    

    Как определяется страна пользователя?

    Когда вы используете клиентский метод API для формирования платежного токена, Xsolla определяет страну пользователя по IP-адресу запроса.

    Когда вы используете серверный метод API для формирования платежного токена, страна определяется путем последовательной проверки:

    • значения параметра user.country.value из тела запроса;
    • IP-адреса из заголовка X-User-Ip.

    Если не передано ни одно из этих значений, возникнет ошибка. Если переданы оба значения, будет использоваться информация из тела запроса.

    Была ли статья полезна?
    Спасибо!
    Что может сделать страницу еще лучше? Сообщение
    Жаль, что так произошло
    Расскажите, почему статья не была полезна. Сообщение
    Спасибо за обратную связь!
    Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
    Последнее обновление: 6 марта 2026

    Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

    Содержание
    Сообщите о проблеме
    Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
    Укажите email-адрес, чтобы мы могли связаться с вами
    Спасибо за обратную связь!
    Не получилось отправить ваш комментарий
    Попробуйте еще раз позже или напишите нам на doc_feedback@xsolla.com.