Xsolla-logo

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

post/merchants/{merchant_id}/token

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

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

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

Внимание

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

Чтобы открыть платежный интерфейс в новом окне, используйте ссылку: https://secure.xsolla.com/paystation4/?token={token}, где {token} — полученный токен.

Для тестирования используйте этот URL-адрес: https://sandbox-secure.xsolla.com/paystation4/?token={token}.

Внимание

Этот метод 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 (Player(s) versus player(s); игрок против игрока).

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
Default: false

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

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

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

order
integer >= 1

Расположение раздела в раскрывающемся меню в платежном интерфейсе. Обязательный, если передается settings.ui.user_account.payment_accounts.enable.

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 or null
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"
}