Xsolla-logo

Создание токенаServer-side

post/merchants/{merchant_id}/token

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

Если какой-либо параметр был передан в некорректном формате, токен не может быть выдан. В ответ вернется 422 HTTP код и в JSON объекте в теле ответа будет содержаться информация об ошибке. В параметре extended_message указывается, какие именно параметры были переданы неверно.

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

Внимание

Токен, полученный в результате вызова этого метода, используется только для авторизации других запросов. Вы можете использовать этот токен для открытия платежного интерфейса, если у вас подключен продукт Subscriptions.

Внимание

Этот метод API не включает в себя path-параметр project_id, поэтому для авторизации вам необходимо использовать ключ API, который действует во всех проектах.

SecuritybasicAuth
Request
path Parameters
merchant_id
required
integer

ID продавца.

Request Body schema: application/json
object

Объект с параметрами для настройки антифрод-фильтров. Список параметров приведен ниже на этой странице. Чтобы добавить кастомные параметры, свяжитесь с вашим персональным менеджером или напишите на csm@xsolla.com.

active_date
string

Дата последнего посещения согласно стандарту ISO 8601.

additional_verification
boolean

Использует ли игрок дополнительные способы защиты аккаунта.

character_customized
boolean

Настраивал ли игрок персонажа.

chat_activity
boolean

Пишет ли игрок в чате.

completed_tasks
integer

Количество выполненных заданий.

forum_activity
boolean

Пишет ли игрок в форуме.

items_used
boolean

Использует ли игрок купленные в игре предметы.

karma_points
integer

Карма игрока.

last_change_password_date
string

Дата последней смены пароля согласно стандарту ISO 8601.

non_premium_currency
number <float>

Сумма непремиальной валюты игрока.

notifications_enabled
boolean

Подписался ли игрок на рассылку уведомлений.

profile_completed
boolean

Добавил ли игрок дополнительную информацию в профиль.

profile_image_added
boolean

Загрузил ли игрок изображение профиля.

pvp_activity
boolean

Участвует ли игрок в PvP.

registration_date
string

Дата регистрации аккаунта согласно стандарту ISO 8601.

session_time
string

Период времени, который пользователь проводит в игре, согласно стандарту ISO 8601.

social_networks_added
boolean

Подключил ли игрок профили в социальных сетях.

total_bans
integer

Количество банов игрока в чате/на форуме.

total_characters
integer

Количество персонажей игрока.

total_clans
integer

Количество кланов, в которых состоит игрок.

total_friends
integer

Количество друзей игрока.

total_game_events
integer

Количество внутриигровых событий, в которых участвовал игрок.

total_gifts
integer

Количество подарков, отправленных или полученных игроком.

total_hours
integer

Общее количество часов, проведенных в игре.

total_inventory_value
number <float>

Суммарная стоимость инвентаря во внутриигровой валюте.

total_sum
number <float>

Общая сумма платежей.

tutorial_completed
boolean

Завершил ли игрок обучение в игре.

unlocked_achievements
integer

Количество разблокированных умений.

user_level
integer

Уровень игрока, репутация или ранг.

win_rate
integer

Рейтинг побед игрока.

object

Объект с информацией о заказе.

object

Объект с данными о подписке.

available_plans
Array of strings

Массив с данными о планах подписок. Только планы из этого списка будут показаны в платежном интерфейсе.

currency
string

Валюта рекуррентного плана в заказе, на основе которой будут сделаны все расчеты.

operation
string

Тип операции, применяемой к плану подписки пользователя. Чтобы изменить план подписки, передайте в параметре значение change_plan. В параметре purchase.subscription.plan_id необходимо передать ID нового плана подписки.

plan_id
string

Внешний ID плана подписки. Вы можете найти этот параметр в Личном кабинете в разделе Subscriptions > Планы подписки.

product_id
string

ID рекуррентного продукта.

trial_days
integer

Количество дней пробного периода.

object

Параметры для настройки процесса оплаты и платежного интерфейса для пользователя.

project_id
required
integer

ID игры в Xsolla. Вы можете найти этот параметр в Личном кабинете.

currency
string

Предпочтительная валюта платежа. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.

external_id
string

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

language
string

Язык интерфейса. Используется двухбуквенное обозначение (в нижнем регистре).

mode
string

Передайте значение sandbox, чтобы провести тестовые платежи. Обратите внимание, что URL для страницы оплаты будет https://sandbox-secure.xsolla.com.

payment_method
integer

ID способа оплаты.

payment_widget
string

Виджет оплаты. Принимает значения paybycash или giftcard. При передаче этого параметра пользователь перенаправляется на виджет Pay with Cash или Gift Cards.

Enum: "paybycash" "giftcard"
object

Настройки политики редиректа.

delay
integer

Задержка (в секундах), после которой пользователь автоматически перенаправляется на return URL.

manual_redirection_action
string

Действие, которое совершает платежный интерфейс, когда пользователь закрывает окно платежного интерфейса или нажимает кнопку Back to the Game. Может принимать значения redirect (по умолчанию) и postmessage. Если указано значение redirect, пользователь перенаправляется на URL-адрес, указанный в токене или в Личном кабинете. Если указано значение postmessage, при закрытии окна платежного интерфейса отправляется событие close, при нажатии Back to the Game — событие return.

Enum: "redirect" "postmessage"
redirect_button_caption
string

Текст кнопки для ручного перенаправления.

redirect_conditions
string

Статус платежа, при котором пользователь перенаправляется на return URL. Принимает значение none, successful, successful_or_canсeled или any.

Enum: "none" "successful" "successful_or_canceled" "any"
status_for_manual_redirection
string

Статус платежа, при котором появляется кнопка для возврата на return URL. Принимает значение none, successful, successful_or_canсeled или any.

Enum: "none" "successful" "successful_or_canceled" "any"
return_url
string

URL-адрес страницы, на которую пользователь будет перенаправлен после совершения платежа. Подробная информация о настройке редиректов приведена в документации.

object

Объект с настройками интерфейса.

object

Объект с данными настройки пунктов меню.

object

Объект с данными настройки меню подписок.

hidden
boolean

Должна ли вкладка отображаться в меню.

order
integer

Место вкладки в меню.

object

Объект с данными настройки меню виртуальной валюты.

custom_amount
boolean

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

hidden
boolean

Должна ли вкладка отображаться в меню.

order
integer

Место вкладки в меню.

object

Объект с данными настройки меню предметов.

hidden
boolean

Должна ли вкладка отображаться в меню.

order
integer

Место вкладки в меню.

selected_group
string

Группа, которая будет выбрана при открытии вкладки.

selected_item
string

Предмет, который будет выбран при открытии вкладки. Должен быть передан артикул предмета.

currency_format
string

Передайте значение code, чтобы в платежном интерфейсе отображалось трехбуквенное обозначение валюты по ISO 4217. По умолчанию вместо трехбуквенного обозначения валюты отображается значок валюты.

object

Объект с данными настроек для desktop-версии.

object

Объект с настройками header.

close_button
boolean

Показывать ли кнопку Закрыть в платежном интерфейсе. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию.

close_button_icon
string

Значок кнопки Закрыть в платежном интерфейсе.

Enum: Description
arrow

Значок в левой части хедера платежного интерфейса.

cross

Значок × в правой части хедера платежного интерфейса.

is_visible
boolean

Должен ли header отображаться на странице оплаты.

type
string

Внешний вид header. Может принимать значения compact (название игры и ID пользователя не будут показываться в header) или normal.

Enum: "compact" "normal"
visible_logo
boolean

Если true, логотип будет отображаться в хедере. Чтобы загрузить изображение, откройте проект в Личном кабинете и перейдите в раздел Pay Station > Настройки.

visible_name
boolean

Должно ли название игры отображаться в header.

visible_purchase
boolean

Должно ли описание покупки (purchase.description.value) отображаться в header, по умолчанию true.

object

Объект с данными настройки списка подписок.

description
string

Здесь вы можете передать текст про подписки. Текст появится перед списком рекуррентных планов в интерфейсе оплаты.

display_local_price
boolean

Если значение true и если локальная валюта пользователя отличается от базовой валюты плана, пользователь будет видеть две цены: цену в локальной валюте и цену в базовой валюте плана.

gp_quick_payment_button
boolean

Расположение способа оплаты с помощью Google Pay. Если передано значение true, кнопка для быстрой оплаты с помощью Google Pay отображается в верхней части платежного интерфейса. Если передано значение false, Google Pay отображается в списке способов оплаты в соответствии с алгоритмом PayRank. false по умолчанию.

object
visible_virtual_currency_balance
boolean

Должен ли этот элемент быть видимым в интерфейсе оплаты. true по умолчанию.

is_cart_open_by_default
boolean

Отображение списка товаров в корзине при открытии мобильной версии платежного интерфейса. Если передано значение true, список отображается в развернутом виде. Если передано значение false (по умолчанию) или параметр не передан — список отображается в свернутом виде.

is_independent_windows
boolean

Осуществляется ли переход из встроенного браузера лаунчера (WebView) во внешний браузер для совершения покупки. false по умолчанию.

is_payment_methods_list_mode
boolean

Отображается ли список способов оплаты, доступных в стране игрока, при открытии платежного интерфейса. ​​Если передано значение false (по умолчанию), отображается способ оплаты, переданный в параметре settings.payment_method или способ, выбранный алгоритмом PayRank.

is_prevent_external_link_open
boolean

Отключение перехода по внешним ссылкам, по умолчанию false. При нажатии на внешнюю ссылку отправляется событие external-link-open с помощью механизма postMessage. В параметре url передается адрес, по которому выполняется переход.

is_search_field_hidden
boolean

Показывать ли в платежном интерфейсе строку поиска способов оплаты. Если передано значение true, строка поиска скрыта. false по умолчанию.

is_show_close_widget_warning
boolean

Показывать ли предупреждение об обработке транзакции при наведении на значок × перед закрытием страницы оплаты. Если передано значение false или параметр не передан, предупреждение не показывается. По умолчанию true.

is_three_ds_independent_windows
boolean

Открывать ли проверку 3-D Secure в новом окне браузера. false по умолчанию. Передайте значение true, если вы используете политику безопасности сайтов (Content Security Policy (CSP)).

layout
string

Расположение основных элементов платежного интерфейса. Вы можете открыть платежный интерфейс внутри вашей игры и/или поменять местами колонки с информацией о заказе и способах оплаты. Подробная информация представлена в инструкции по кастомизации.

Enum: "embed" "column_reverse" "embed_column_reverse"
object
object
close_button
boolean

Показывать ли кнопку Закрыть в мобильной версии платежного интерфейса. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию.

close_button_icon
string

Значок кнопки Закрыть в платежном интерфейсе.

Enum: Description
arrow

Значок в левой части хедера платежного интерфейса.

cross

Значок × в правой части хедера платежного интерфейса.

mode
string

Платежный интерфейс в режиме Личного кабинета. Принимает значение user_account. Header содержит только навигационное меню Личного кабинета; исключается возможность выбора предмета и оплата покупки; режим Личного кабинета доступен только в desktop-режиме.

theme
string

Тема платежного интерфейса. Может принимать значения 63295a9a2e47fab76f7708e1 для светлой темы (по умолчанию) или 63295aab2e47fab76f7708e3 для темной темы. Вы также можете создать собственную тему и передать ID темы в этом параметре.

Enum: "63295a9a2e47fab76f7708e1" "63295aab2e47fab76f7708e3"
object

Объект с данными об аккаунте пользователя.

object

Страница Мой аккаунт.

enable
boolean

Должна ли вкладка отображаться в меню. false по умолчанию.

order
integer

Расположение раздела в раскрывающемся меню в платежном интерфейсе.

object

Раздел Сохраненные способы.

enable
boolean

Отображать ли в платежном интерфейсе значок карандаша для перехода к редактированию сохраненных способов оплаты. По умолчанию true.

object

Раздел Управление подписками.

enable
boolean

Должна ли вкладка отображаться в меню. false по умолчанию.

order
integer

Расположение раздела в раскрывающемся меню в платежном интерфейсе.

object

Объект с информацией о пользователе.

required
object
value
required
string

Уникальный ID пользователя в игре, который хранится на вашей стороне. Убедитесь, что указываете существующий ID пользователя. При возникновении ошибок изучите ответы на частые вопросы.

age
integer

Возраст пользователя.

attributes
object

Объект с данными об атрибутах пользователя, необходимых для фильтрации списка предметов. Параметры передаются в json хэше парами ключ-значение.

object
allow_modify
boolean

Может ли пользователь изменить страну на странице оплаты. Если в токене передан параметр country.value, значение по умолчанию — false.

value
string

Используется двухбуквенное обозначение страны согласно стандарту ISO 3166-1 alpha-2.

object <= 100 characters

Параметр user.email используется при построении моделей антифрода и положительно влияет на конверсию платежей. Передача параметра является обязательным требованием Xsolla и платежных систем. Если параметр не передан в запросе, на платежной форме появляется обязательное поле для ввода email-адреса. Пользователь получает чек о покупке на email-адрес, который был передан в параметре или указан в платежной форме.

value
required
string

Email-адрес пользователя. Должен быть валидным в соответствии с протоколом RFC 822.

allow_modify
boolean

Может ли пользователь указать свой email-адрес на странице оплаты. Если в токене передан параметр user.email.value, значение по умолчанию — false.

is_legal
boolean

Является ли пользователь юридическим лицом.

object

Объект с реквизитами юридического лица. Объект и все его параметры являются обязательными, если в user.is_legal передано значение true.

address
string

Полный юридический адрес.

country
string

Страна регистрации. Используется двухбуквенное обозначение страны согласно стандарту ISO 3166-1 alpha-2.

name
string

Полное юридическое наименование.

vat_id
string

Индивидуальный идентификатор налогоплательщика.

object
allow_modify
boolean

Может ли пользователь указать свое имя на странице оплаты. Если в токене передан параметр user.name.value, значение по умолчанию — false.

value
string

Никнейм пользователя.

object
value
string

Номер телефона пользователя.

object
value
string

Параметр позволяет однозначно идентифицировать пользователя, а также, в отличие от user ID, известен пользователю (адрес электронной почты, никнейм, и т. д.). Параметр может использоваться при оплате покупки вне игрового магазина (например, кнопка игры в терминалах оплаты).

object
value
string

Steam ID пользователя.

object
value
string = 32 characters

Уникальный ID пользователя — используется для проведения рекламных кампаний. Может содержать цифры и латинские буквы.

object

Объект с данными о характеристиках трафика.

utm_campaign
string

Название кампании. В данный параметр следует указывать транслитерированное или переведенное на английский язык название кампании.

utm_content
string

Содержание кампании.

utm_medium
string

Канал трафика (контекстная реклама, медийная реклама, email-рассылка).

utm_source
string

Источник трафика

utm_term
string

Ключевое слово кампании. При использовании этого параметра в статистике будут собираться данные по тем ключевым словам, которые используются для таргетинга вашей рекламной кампании (а не по поисковым запросам). В Google Analytics содержимое метки utm_term попадает в единый отчет с поисковыми запросами.

Responses
200

Created.

422

Unprocessable Entity.

Request samples
application/json
{
  • "settings": {
    },
  • "user": {
    }
}
Response samples
application/json
{
  • "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}