Xsolla-logoXsolla Developers
или
Личный кабинет

Создание токена (устаревший метод)

post/merchants/{merchant_id}/token

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

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

SecuritybasicAuth
Request
path Parameters
merchant_id
required
integer

ID продавца.

Request Body schema: application/json
object

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

object
Deprecated

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

amount
number <float>

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

currency
string

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

object
Deprecated

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

hidden
boolean

Скрыть поле для ввода промокода в интерфейсе оплаты. false по умолчанию.

value
string

Значение промокода.

object
Deprecated

Описание покупки.

Array of objects
Array
description
string

Описание предмета в покупке.

image_url
string

Ссылка на изображение предмета.

is_bonus
boolean

Является ли товар бесплатным и предоставляемым в качестве бонуса. По умолчанию false.

name
string

Наименование предмета.

object

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

amount
string

Стоимость предмета.

amount_before_discount
string

Стоимость предмета до применения скидки.

quantity
integer

Количество предметов в покупке.

value
string

Общее описание покупки. Будет отображаться в интерфейсе оплаты и в email чеке. Если вы хотите передавать по отдельности каждый предмет, используйте параметры массива purchase.description.items.

object
Deprecated

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

Array of objects

Массив с данными о друзьях.

Array
email
string

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

id
string

ID получателя подарка.

name
string

Никнейм получателя подарка.

giver_id
string

ID дарителя.

hide_giver_from_receiver
string

Показывать ли данные дарителя получателю подарка. true по умолчанию.

message
string

Сообщение от дарителя.

object
Deprecated

Игровые ключи.

Array of objects

Игровые ключи.

Array
digital_content
string

Артикул игры, настраивается в Личном кабинете.

drm
string

DRM-платформа, на которой игра будет доступна. Может принимать значения steam, playstation, xbox, uplay, origin, drmfree, gog, epicgames, nintendo_eshop, discord_game_store или oculus. Пожалуйста, убедитесь, что нужная DRM-платформа настроена в Личном кабинете. Если значение не передано в токене, будет выбрана платформа, указанная пользователем в платежном интерфейсе.

Enum: "steam" "playstation" "xbox" "uplay" "origin" "drmfree" "gog" "epicgames" "nintendo_eshop" "discord_game_store" "oculus"
currency
string

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

object

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

id
integer

ID апгрейда.

id_user_history
integer

ID записи, содержащей данные о пользователе и пакетах, которыми он владеет.

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
Deprecated

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

currency
string

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

quantity
number <float>

Количество виртуальной валюты в заказе.

object
Deprecated

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

currency
string

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

Array of objects
Array
amount
integer

Количество этого предмета в заказе.

available_groups
Array of strings

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

sku
string

ID предмета (артикул).

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

Объект с данными настроек для 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
visible_virtual_currency_balance
boolean

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

is_independent_windows
boolean

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

is_prevent_external_link_open
boolean

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

license_url
string

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

object
object
is_visible
boolean

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

object
close_button
boolean

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

mode
string

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

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

order
integer

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

object

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

enable
boolean

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

order
integer

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

version
string

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

Enum: "desktop" "mobile"
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
{
  • "purchase": {
    },
  • "settings": {
    },
  • "user": {
    }
}
Response samples
application/json
{
  • "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}