# Создание токена Вы можете создать токен с произвольными пользовательскими параметрами. Вы отправляете эти параметры при получении токена и получаете их обратно после успешной оплаты. Токен может содержать только параметры, описанные в этом документе или предварительно определенные вами. Если какой-либо параметр отправлен в неправильном формате или имеет неправильный тип, токен выдан не будет. Вы получите HTTP-код 422 с описанием ошибки в JSON-формате. В extended_message вы получите информацию о том, какие именно параметры были отправлены неправильно. Внимание Этот метод API не включает в себя path-параметр project_id, поэтому для авторизации вам необходимо использовать ключ API, который действует во всех проектах. Endpoint: POST /merchants/{merchant_id}/token Version: 2.0 Security: basicAuth ## Path parameters: - `merchant_id` (integer, required) ID продавца. ## Request fields (application/json): - `custom_parameters` (object) Вы можете передавать в токене в объекте custom_parameters дополнительные параметры, которые могут использоваться для настройки антифрод-фильтров. Рекомендуемые параметры приведены в раскрывающемся списке. [Подробнее в документации по продукту Pay Station](https://developers.xsolla.com/ru/doc/pay-station/features/antifraud/). - `custom_parameters.active_date` (string) Дата последнего посещения согласно стандарту [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.additional_verification` (boolean) Использует ли игрок дополнительные способы защиты аккаунта. - `custom_parameters.character_customized` (boolean) Настраивал ли игрок персонажа. - `custom_parameters.chat_activity` (boolean) Пишет ли игрок в чате. - `custom_parameters.completed_tasks` (integer) Количество выполненных заданий. - `custom_parameters.forum_activity` (boolean) Пишет ли игрок в форуме. - `custom_parameters.items_used` (boolean) Использует ли игрок купленные в игре предметы. - `custom_parameters.karma_points` (integer) Карма игрока. - `custom_parameters.last_change_password_date` (string) Дата последней смены пароля согласно стандарту [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.non_premium_currency` (integer) Сумма непремиальной валюты игрока. - `custom_parameters.notifications_enabled` (boolean) Подписался ли игрок на рассылку уведомлений. - `custom_parameters.profile_completed` (boolean) Добавил ли игрок дополнительную информацию в профиль. - `custom_parameters.profile_image_added` (boolean) Загрузил ли игрок изображение профиля. - `custom_parameters.pvp_activity` (boolean) Участвует ли игрок в PvP. - `custom_parameters.registration_date` (string) Дата регистрации аккаунта согласно стандарту [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.session_time` (string) Период времени, который пользователь проводит в игре, согласно стандарту [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.social_networks_added` (boolean) Подключил ли игрок профили в социальных сетях. - `custom_parameters.total_bans` (integer) Количество банов игрока в чате/на форуме. - `custom_parameters.total_characters` (integer) Количество персонажей игрока. - `custom_parameters.total_clans` (integer) Количество кланов, в которых состоит игрок. - `custom_parameters.total_friends` (integer) Количество друзей игрока. - `custom_parameters.total_game_events` (integer) Количество внутриигровых событий, в которых участвовал игрок. - `custom_parameters.total_gifts` (integer) Количество подарков, отправленных или полученных игроком. - `custom_parameters.total_hours` (integer) Общее количество часов, проведенных в игре. - `custom_parameters.total_inventory_value` (integer) Суммарная стоимость инвентаря во внутриигровой валюте. - `custom_parameters.total_sum` (integer) Общая сумма платежей. - `custom_parameters.tutorial_completed` (boolean) Завершил ли игрок обучение в игре. - `custom_parameters.unlocked_achievements` (integer) Количество разблокированных умений. - `custom_parameters.user_level` (integer) Уровень игрока, репутация или ранг. - `custom_parameters.win_rate` (integer) Рейтинг побед игрока. - `purchase` (object) Объект с информацией о заказе. Example: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}} - `purchase.checkout` (object) Объект с информацией о заказе. Example: {"amount":10,"currency":"USD"} - `purchase.checkout.amount` (integer) Сумма заказа. Example: 10 - `purchase.checkout.currency` (string) Валюта заказа. Используется трехбуквенное обозначение валюты согласно стандарту [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `purchase.subscription` (object) Объект с данными о подписке. Example: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}} - `purchase.subscription.available_plans` (array) Массив с данными о планах подписок. Только планы из этого списка будут показаны в платежном интерфейсе. - `purchase.subscription.currency` (string) Валюта рекуррентного плана в заказе, на основе которой будут сделаны все расчеты. - `purchase.subscription.gift` (object) Информация о подаренной подписке. Example: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"} - `purchase.subscription.gift.anonymous` (boolean) Отправлен ли подарок анонимно. Если значение true, имя отправителя будет скрыто в email-уведомлении. По умолчанию false. - `purchase.subscription.gift.email` (string, required) Email-адрес получателя. Example: "recipient_email@email.com" - `purchase.subscription.gift.message` (string) Сообщение для получателя. - `purchase.subscription.gift.recipient` (string, required) ID получателя. Example: "test_recipient_v1" - `purchase.subscription.gift.redirect_url` (string) Ссылка на страницу с дополнительной информацией о подаренной подписке или страницу создания учетной записи. Получатель подарка сможет перейти на эту страницу из email-уведомления о подаренной подписке. - `purchase.subscription.operation` (string) Тип операции, применяемой к плану подписки пользователя. Чтобы изменить план подписки, передайте в параметре значение change_plan. В параметре purchase.subscription.plan_id необходимо передать ID нового плана подписки. - `purchase.subscription.plan_id` (string) Внешний ID плана подписки. Вы можете найти этот параметр в Личном кабинете в разделе Subscriptions > Планы подписки. - `purchase.subscription.product_id` (string) ID рекуррентного продукта. - `purchase.subscription.trial_days` (integer) Количество дней триального периода. - `settings` (object) Объект, содержащий настройки проекта. Example: {"currency":"USD","language":"en","project_id":16184,"ui":{"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}} - `settings.currency` (string) Предпочтительная валюта платежа. Используется трехбуквенное обозначение валюты согласно стандарту [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `settings.external_id` (string) Идентификатор транзакции в игре. Должен быть уникальным для каждого платежа пользователя. - `settings.language` (string) Язык интерфейса. Используется [двухбуквенное обозначение](https://developers.xsolla.com/ru/doc/pay-station/features/localization/) (в нижнем регистре). Example: "en" - `settings.mode` (string) Передайте значение sandbox, чтобы провести тестовые платежи. Обратите внимание, что URL для страницы оплаты будет https://sandbox-secure.xsolla.com. - `settings.payment_method` (integer) ID способа оплаты. - `settings.payment_widget` (string) Виджет оплаты. Принимает значения paybycash или giftcard. При передаче этого параметра пользователь перенаправляется на виджет Pay with Cash или Gift Cards. Enum: "paybycash", "giftcard" - `settings.project_id` (integer, required) Game’s Xsolla ID. Can be found in Publisher Account. Example: 16184 - `settings.redirect_policy` (object) Настройки политики редиректа. - `settings.redirect_policy.autoredirect_from_status_page` (boolean) Перенаправлять ли пользователя автоматически со страницы статуса платежа. - `settings.redirect_policy.delay` (integer) Задержка (в секундах), после которой пользователь автоматически перенаправляется на return URL. - `settings.redirect_policy.manual_redirection_action` (string) Действие, которое совершает платежный интерфейс, когда пользователь закрывает окно платежного интерфейса или нажимает кнопку Back to the Game. Может принимать значения redirect (по умолчанию) и postmessage. Если указано значение redirect, пользователь перенаправляется на URL-адрес, указанный в токене или в Личном кабинете. Если указано значение postmessage, при закрытии окна платежного интерфейса отправляется событие close, при нажатии Back to the Game — событие return. Enum: "redirect", "postmessage" - `settings.redirect_policy.redirect_button_caption` (string) Текст кнопки для ручного перенаправления. - `settings.redirect_policy.redirect_conditions` (string) Статус платежа, при котором пользователь перенаправляется на return URL. Принимает значение none, successful, successful_or_canсeled или any. Enum: "none", "successful", "successful_or_canceled", "any" - `settings.redirect_policy.status_for_manual_redirection` (string) Статус платежа, при котором появляется кнопка для возврата на return URL. Принимает значение none, successful, successful_or_canсeled или any. Enum: "none", "successful", "successful_or_canceled", "any" - `settings.return_url` (string) Пользователь будет перенаправлен на данную страницу после совершения платежа. Параметры user_id, foreigninvoice, invoice_id и status будут автоматически добавлены к ссылке. - `settings.ui` (object) Объект с настройками интерфейса. Example: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"} - `settings.ui.components` (object) Объект с данными настройки пунктов меню. Example: {"virtual_currency":{"custom_amount":true}} - `settings.ui.components.subscriptions` (object) Объект с данными настройки меню подписок. - `settings.ui.components.subscriptions.hidden` (boolean) Должна ли вкладка отображаться в меню. - `settings.ui.components.subscriptions.order` (integer) Место вкладки в меню. - `settings.ui.components.virtual_currency` (object) Объект с данными настройки меню виртуальной валюты. Example: {"custom_amount":true} - `settings.ui.components.virtual_currency.custom_amount` (boolean) Возможность ввода произвольного количества виртуальной валюты в интерфейсе оплаты. Example: true - `settings.ui.components.virtual_items` (object) Объект с данными настройки меню предметов. - `settings.ui.components.virtual_items.selected_group` (string) Группа, которая будет выбрана при открытии вкладки. - `settings.ui.components.virtual_items.selected_item` (string) Предмет, который будет выбран при открытии вкладки. Должен быть передан артикул предмета. - `settings.ui.desktop` (object) Объект с данными настроек для desktop-версии. Example: {"virtual_item_list":{"button_with_price":true,"layout":"list"}} - `settings.ui.desktop.header` (object) Объект с настройками хедера. - `settings.ui.desktop.header.close_button` (boolean) Показывать ли кнопку Закрыть в настольной версии платежного интерфейса. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию. - `settings.ui.desktop.header.is_visible` (boolean) Whether to show the header in the payment UI. - `settings.ui.desktop.header.type` (string) Внешний вид хедера. Может принимать значения compact (название игры и ID пользователя не будут показываться в хедере) или normal. Enum: "compact", "normal" - `settings.ui.desktop.header.visible_logo` (boolean) Если значение true, то логотип будет отображаться в хедере (необходимо сначала прислать файл с логотипом персональному менеджеру проекта). - `settings.ui.desktop.header.visible_name` (boolean) Whether to show the project name in the header. - `settings.ui.desktop.header.visible_purchase` (boolean) Должно ли описание покупки (purchase.description.value) отображаться в хедере, по умолчанию true. - `settings.ui.desktop.subscription_list` (object) Объект с данными настройки списка подписок. - `settings.ui.desktop.subscription_list.description` (string) Здесь вы можете передать текст про подписки. Текст появится перед списком рекуррентных планов в интерфейсе оплаты. - `settings.ui.desktop.subscription_list.display_local_price` (boolean) Если значение true и если локальная валюта пользователя отличается от базовой валюты плана, пользователь будет видеть две цены: цену в локальной валюте и цену в базовой валюте плана. - `settings.ui.desktop.subscription_list.layout` (string) Шаблон списка. Принимает значения list (по умолчанию) или grid. Enum: "list", "grid" - `settings.ui.desktop.virtual_currency_list` (object) Объект с данными настройки списка пакетов виртуальной валюты. - `settings.ui.desktop.virtual_currency_list.button_with_price` (boolean) Если значение true, то цена за предмет будет показана внутри кнопки. Если false, то цена будет слева от кнопки. false по умолчанию. - `settings.ui.desktop.virtual_currency_list.description` (string) Здесь вы можете передать текст про виртуальную валюту. Текст появится перед списком пакетов виртуальной валюты в интерфейсе оплаты. - `settings.ui.desktop.virtual_item_list` (object) Объект с данными настройки списка предметов. Example: {"button_with_price":true,"layout":"list"} - `settings.ui.desktop.virtual_item_list.view` (string) Вывод списка групп виртуальных предметов либо в виде вертикального меню, либо над окном в виде горизонтального меню. Принимает значения horizontal_navigation или vertical_navigation (по умолчанию). Enum: "horizontal_navigation", "vertical_navigation" - `settings.ui.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) Должен ли этот элемент быть видимым в интерфейсе оплаты. true по умолчанию. - `settings.ui.is_prevent_external_link_open` (boolean) Отключение перехода по внешним ссылкам, по умолчанию true. При нажатии на внешнюю ссылку отправляется событие external-link-open с помощью механизма postMessage. В параметре url передается адрес, по которому выполняется переход. - `settings.ui.license_url` (string) Ссылка на лицензионное соглашение. - `settings.ui.mobile` (object) - `settings.ui.mobile.footer` (object) - `settings.ui.mobile.footer.is_visible` (boolean) Скрывать или нет footer в мобильной версии платежного интерфейса. - `settings.ui.mobile.mode` (string) Пользователь может совершить платеж только через сохраненные способы оплаты. Принимает значение saved_accounts. Enum: "saved_accounts" - `settings.ui.mode` (string) Платежный интерфейс в режиме Личного кабинета. Принимает значение user_account. Хедер содержит только навигационное меню Личного кабинета; исключается возможность выбора предмета и оплата покупки; режим Личного кабинета доступен только в desktop-режиме. - `settings.ui.size` (string) Размер платежного интерфейса. В зависимости от требуемых размеров платежного интерфейса, параметр может принимать следующие значения: - [small](https://livedemo.xsolla.com/developers/small/): Наименьший размер платежного интерфейса. Используется в случаях, когда размеры окна строго ограничены (размер: 620 x 630) - [medium](https://livedemo.xsolla.com/developers/medium/): Рекомендуемый размер платежного интерфейса. Оптимален при открытии в lightbox (размер: 740 x 760) - [large](https://livedemo.xsolla.com/developers/large/): желательно открывать в новом окне/вкладке (размер: 820 x 840) Enum: "small", "medium", "large" - `settings.ui.theme` (string) Внешний вид интерфейса оплаты. Может принимать значения default (по умолчанию) или default_dark. Enum: "default", "default_dark" - `settings.ui.user_account` (object) Объект с данными об аккаунте пользователя. - `settings.ui.user_account.history` (object) Страница История пользователя. - `settings.ui.user_account.history.enable` (boolean) Должна ли вкладка отображаться в меню. false по умолчанию. - `settings.ui.user_account.info` (object) Страница Мой аккаунт. - `settings.ui.user_account.payment_accounts` (object) Страница Сохраненные платежные аккаунты. - `settings.ui.user_account.subscriptions` (object) Страница Управление подписками. - `settings.ui.version` (string) Тип устройства. Может принимать значения desktop (по умолчанию) или mobile. Enum: "desktop", "mobile" - `user` (object) Объект с информацией о пользователе. Example: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}} - `user.age` (integer) Возраст пользователя. Example: 19 - `user.attributes` (object) Объект с данными об атрибутах пользователя, необходимых для фильтрации списка предметов. Параметры передаются в json хэше парами ключ-значение. - `user.country` (object) Example: {"allow_modify":true,"value":"US"} - `user.country.allow_modify` (boolean) Может ли пользователь изменить страну на странице оплаты. Если в токене передан параметр country.value, значение по умолчанию — false. Example: true - `user.country.value` (string) Используется двухбуквенное обозначение страны согласно стандарту [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Example: "US" - `user.email` (object) Параметр user.email используется при построении моделей антифрода и положительно влияет на конверсию платежей. Передача параметра является обязательным требованием Xsolla и платежных систем. Если параметр не передан в запросе, на платежной форме появляется обязательное поле для ввода email-адреса. Пользователь получает чек о покупке на email-адрес, который был передан в параметре или указан в платежной форме. Example: {"value":"john.smith@mail.com"} - `user.email.value` (string, required) Email пользователя. Должен быть валидным в соответствии с протоколом [RFC 822](https://www.w3.org/Protocols/rfc822/#z8). Example: "john.smith@mail.com" - `user.id` (object, required) Example: {"value":"user_2"} - `user.id.value` (string, required) ID пользователя. Example: "user_2" - `user.is_legal` (boolean) Является ли пользователь юридическим лицом. - `user.legal` (object) Объект с реквизитами юридического лица. Объект и все его параметры являются обязательными, если в user.is_legal передано значение true. - `user.legal.address` (string) Полный юридический адрес. - `user.legal.country` (string) Страна регистрации. Используется двухбуквенное обозначение страны согласно стандарту [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). - `user.legal.name` (string) Полное юридическое наименование. - `user.legal.vat_id` (string) Индивидуальный идентификатор налогоплательщика. - `user.name` (object) Example: {"value":"John Smith"} - `user.name.value` (string) Ник пользователя. Example: "John Smith" - `user.phone` (object) - `user.phone.value` (string) Номер телефона пользователя. - `user.public_id` (object) - `user.public_id.value` (string) Параметр позволяет однозначно идентифицировать пользователя, а также, в отличие от user ID, известен пользователю (адрес электронной почты, никнейм, и т. д.). Параметр может использоваться при оплате покупки вне игрового магазина (например, кнопка игры в терминалах оплаты). - `user.steam_id` (object) - `user.steam_id.value` (string) Steam ID пользователя. - `user.tracking_id` (object) - `user.tracking_id.value` (string) Уникальный Tracking ID (используется для проведения рекламных кампаний). - `user.utm` (object) Объект с данными о характеристиках трафика. - `user.utm.utm_campaign` (string) Название кампании. В данный параметр следует указывать транслитерированное или переведенное на английский язык название кампании. - `user.utm.utm_content` (string) Содержание кампании. - `user.utm.utm_medium` (string) Канал трафика (контекстная реклама, медийная реклама, email-рассылка). - `user.utm.utm_source` (string) Источник трафика - `user.utm.utm_term` (string) Ключевое слово кампании. При использовании этого параметра в статистике будут собираться данные по тем ключевым словам, которые используются для таргетинга вашей рекламной кампании (а не по поисковым запросам). В Google Analytics содержимое метки utm_term попадает в единый отчет с поисковыми запросами. ## Response 200 fields (application/json): - `token` (string) ## Response 422 fields (application/json): - `extended_message` (object) - `extended_message.global_errors` (array) - `extended_message.property_errors` (object) Объект содержит названия параметров с описанием ошибки. - `http_status_code` (integer) - `message` (string) - `request_id` (string)