Xsolla-logo

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

post/merchants/{merchant_id}/token

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

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

Внимание

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

SecuritybasicAuth
Request
path Parameters
merchant_id
required
integer

ID продавца.

Request Body schema: application/json
object

Вы можете передавать в токене в объекте custom_parameters дополнительные параметры, которые могут использоваться для настройки антифрод-фильтров. Рекомендуемые параметры приведены в раскрывающемся списке. Подробнее в документации по продукту Pay Station.

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
integer <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
integer <float>

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

total_sum
integer <float>

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

tutorial_completed
boolean

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

unlocked_achievements
integer

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

user_level
integer

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

win_rate
integer

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

object

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

object

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

amount
integer <float>

Сумма заказа.

currency
string

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

object

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

available_plans
Array of strings

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

currency
string

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

object

Информация о подаренной подписке.

recipient
required
string

ID получателя.

email
required
string

Email-адрес получателя.

anonymous
boolean

Отправлен ли подарок анонимно. Если значение true, имя отправителя будет скрыто в email-уведомлении. По умолчанию false.

message
string

Сообщение для получателя.

redirect_url
string

Ссылка на страницу с дополнительной информацией о подаренной подписке или страницу создания учетной записи. Получатель подарка сможет перейти на эту страницу из email-уведомления о подаренной подписке.

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

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

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

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

autoredirect_from_status_page
boolean

Перенаправлять ли пользователя автоматически со страницы статуса платежа.

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

Пользователь будет перенаправлен на данную страницу после совершения платежа. Параметры user_id, foreigninvoice, invoice_id и status будут автоматически добавлены к ссылке.

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

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

object

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

object

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

close_button
boolean

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

is_visible
boolean

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

type
string

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

Enum: "compact" "normal"
visible_logo
boolean

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

visible_name
boolean

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

visible_purchase
boolean

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

object

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

description
string

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

display_local_price
boolean

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

layout
string

Шаблон списка. Принимает значения list (по умолчанию) или grid.

Enum: "list" "grid"
object

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

button_with_price
boolean

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

description
string

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

object

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

button_with_price
boolean

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

layout
string

Шаблон списка. Принимает значения list (по умолчанию) или grid.

Enum: "list" "grid"
view
string

Вывод списка групп виртуальных предметов либо в виде вертикального меню, либо над окном в виде горизонтального меню. Принимает значения horizontal_navigation или vertical_navigation (по умолчанию).

Enum: "horizontal_navigation" "vertical_navigation"
object
visible_virtual_currency_balance
boolean

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

is_prevent_external_link_open
boolean

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

license_url
string

Ссылка на лицензионное соглашение.

object
object
is_visible
boolean

Скрывать или нет footer в мобильной версии платежного интерфейса.

object
close_button
boolean

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

mode
string

Пользователь может совершить платеж только через сохраненные способы оплаты. Принимает значение saved_accounts.

Value: "saved_accounts"
mode
string

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

size
string

Размер платежного интерфейса. В зависимости от требуемых размеров платежного интерфейса, параметр может принимать следующие значения:

  • small: Наименьший размер платежного интерфейса. Используется в случаях, когда размеры окна строго ограничены (размер: 620 x 630)
  • medium: Рекомендуемый размер платежного интерфейса. Оптимален при открытии в lightbox (размер: 740 x 760)
  • large: желательно открывать в новом окне/вкладке (размер: 820 x 840)
Enum: "small" "medium" "large"
theme
string

Внешний вид интерфейса оплаты. Может принимать значения default (по умолчанию) или default_dark.

Enum: "default" "default_dark"
object

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

object

Страница История пользователя.

enable
boolean

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

order
integer

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

object

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

enable
boolean

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

order
integer

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

object

Страница Сохраненные платежные аккаунты.

enable
boolean

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

order
integer

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

object

Страница Управление подписками.

enable
boolean

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

order
integer

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

version
string

Тип устройства. Может принимать значения desktop (по умолчанию) или mobile.

Enum: "desktop" "mobile"
object

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

required
object
value
required
string

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

age
integer

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

attributes
object

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

object
allow_modify
boolean

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

value
string

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

object

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

value
required
string

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

is_legal
boolean

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

object

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

address
string

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

country
string

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

name
string

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

vat_id
string

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

object
value
string

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

object
value
string

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

object
value
string

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

object
value
string

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

object
value
string

Уникальный Tracking 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
{
  • "purchase": {
    },
  • "settings": {
    },
  • "user": {
    }
}
Response samples
application/json
{
  • "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}