# Создание платежного токена для покупки Генерирует заказ и платежный токен для него. Заказ генерируется на основе товаров, переданных в теле запроса. Чтобы открыть платежный интерфейс в новом окне, воспользуйтесь следующей ссылкой: https://secure.xsolla.com/paystation4/?token={token}, где {token} — полученный токен. Для целей тестирования используйте этот URL-адрес: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Внимание Параметр user.country.value используется для выбора валюты для заказа. Если страна пользователя неизвестна, альтернативным вариантом является указание IP-адреса пользователя в X-User-Ip заголовке. Для корректной работы метода требуется один из этих двух вариантов. Выбранная валюта используется для оплаты в Pay Station. Endpoint: POST /v3/project/{project_id}/admin/payment/token Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта. Example: 44056 ## Request fields (application/json): - `custom_parameters` (object,null) Ваши пользовательские параметры представлены в виде допустимого набора пар ключ-значение в формате JSON. Вы можете передать дополнительные параметры через это поле для настройки фильтров защиты от мошенничества. [Смотрите документацию Pay Station](https://developers.xsolla.com/ru/doc/pay-station/features/antifraud/). Example: {"custom_parameters":{"bool_param":true,"int_param":100,"null_param":null,"string_param":"example"}} - `promo_code` (string) Уникальный код, чувствительный к регистру. Содержит буквы и цифры. Example: "WINTER2021" - `purchase` (object, required) - `purchase.items` (array, required) - `purchase.items.quantity` (number, required) Количество товара. Example: 2 - `purchase.items.sku` (string, required) Уникальный ID товара. Артикул может содержать только строчные и заглавные латинские буквы, цифры, точки, тире и подчеркивания. Example: "t-shirt" - `sandbox` (boolean) Передайте значение true, чтобы провести тестовые платежи. Обратите внимание, что URL для страницы оплаты будет https://sandbox-secure.xsolla.com. - `settings` (object) Параметры для настройки процесса оплаты и платежного интерфейса для пользователя. - `settings.currency` (string) Предпочитаемая валюта платежа. Трехбуквенный код валюты в соответствии с [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Список валют, поддерживаемых Xsolla, [приведен в документации](https://developers.xsolla.com/ru/doc/pay-station/references/supported-currencies/). - `settings.external_id` (string) External ID транзакции. - `settings.language` (string) Язык интерфейса. Двухбуквенный [код языка](https://developers.xsolla.com/ru/doc/pay-station/features/localization/) в нижнем регистре. - `settings.payment_method` (integer) ID платежного метода. Влияет на отображение валюты в платежном интерфейсе, так как некоторые платежные методы могут поддерживать только определенные валюты. - `settings.redirect_policy` (object) - `settings.redirect_policy.delay` (integer) Задержка, по истечении которой пользователь будет автоматически перенаправлен на return URL. - `settings.redirect_policy.redirect_button_caption` (string) Локализованные надписи на кнопке редиректа. Example: "Text button" - `settings.redirect_policy.redirect_conditions` (string) Статус платежа, при котором происходит перенаправление пользователя на return URL. Enum: "none", "successful", "successful_or_canceled", "any" - `settings.redirect_policy.status_for_manual_redirection` (string) Статус платежа, при котором появляется кнопка для возврата на return URL. Enum: "none", "vc", "successful", "successful_or_canceled", "any" - `settings.return_url` (string) Пользователь будет перенаправлен на данную страницу после совершения платежа. Параметры user_id, foreigninvoice, invoice_id и status будут автоматически добавлены к ссылке. - `settings.ui` (object) Объект с настройками интерфейса. - `settings.ui.currency_format` (string) Передайте значение code, чтобы в платежном интерфейсе отображалось трехбуквенное обозначение валюты по [ISO 4217](https://developers.xsolla.com/ru/doc/pay-station/references/supported-currencies/). По умолчанию вместо трехбуквенного обозначения валюты отображается значок валюты. - `settings.ui.desktop` (object) Объект с настройками интерфейса для настольной версии. - `settings.ui.desktop.header` (object) Объект с настройками хедера. - `settings.ui.desktop.header.close_button` (boolean) Показывать ли кнопку Закрыть в платежном интерфейсе. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию. - `settings.ui.desktop.header.is_visible` (boolean) Показывать ли хедер в платежном интерфейсе. - `settings.ui.desktop.header.type` (string) Внешний вид хедера. Может принимать значения compact (в хедере не будут показываться название игры и ID пользователя) или normal. Enum: "compact", "normal" - `settings.ui.desktop.header.visible_logo` (boolean) Если true, логотип будет отображаться в хедере. Чтобы загрузить изображение, откройте свой проект в [Личном кабинете](https://publisher.xsolla.com/) и перейдите в раздел Pay Station > Настройки. - `settings.ui.desktop.header.visible_name` (boolean) Показывать ли в хедере название проекта. - `settings.ui.desktop.header.visible_purchase` (boolean) Показывать ли в хедере описание покупки (purchase.description.value). По умолчанию true. - `settings.ui.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) Должен ли этот элемент быть видимым в интерфейсе оплаты. - `settings.ui.is_cart_open_by_default` (boolean) Отображение списка товаров в корзине при открытии мобильной версии платежного интерфейса. Если передано значение true, список отображается в развернутом виде. Если передано значение false (по умолчанию) или параметр не передан — список отображается в свернутом виде. - `settings.ui.is_independent_windows` (boolean) Осуществляется ли переход из встроенного браузера лаунчера (WebView) во внешний браузер для совершения покупки. - `settings.ui.is_payment_methods_list_mode` (boolean) Отображается ли список способов оплаты, доступных в стране игрока, при открытии платежного интерфейса. ​​Если передано значение false (по умолчанию), отображается способ оплаты, переданный в параметре settings.payment_method или способ, выбранный [алгоритмом PayRank](https://developers.xsolla.com/ru/solutions/payments/payment-ui-management/top-payment-methods-management/). - `settings.ui.is_prevent_external_link_open` (boolean) Отключение перехода по внешним ссылкам. При нажатии на внешнюю ссылку отправляется событие external-link-open с помощью механизма postMessage. В параметре url передается адрес, по которому выполняется переход. - `settings.ui.is_show_close_widget_warning` (boolean) Показывать ли предупреждение об обработке транзакции при наведении на значок × перед закрытием страницы оплаты. Если передано значение false или параметр не передан, предупреждение не показывается. - `settings.ui.is_three_ds_independent_windows` (boolean) Откроется ли проверка 3-D Secure в новом окне браузера. Если в вашей программе настройки применяется политика безопасности содержимого (CSP), установите значение true. - `settings.ui.layout` (string) Расположение основных элементов платежного интерфейса. Вы можете открыть платежный интерфейс внутри вашей игры и/или поменять местами колонки с информацией о заказе и способах оплаты. Подробная информация представлена в [инструкции по кастомизации](https://developers.xsolla.com/ru/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout). Enum: "embed", "column_reverse", "embed_column_reverse" - `settings.ui.mobile` (object) - `settings.ui.mode` (string) Платежный интерфейс в режиме Личного кабинета. Принимает значение user_account. Header содержит только навигационное меню Личного кабинета; исключается возможность выбора предмета и оплата покупки; режим Личного кабинета доступен только в desktop-режиме. Enum: "user_account" - `settings.ui.theme` (string) Тема платежного интерфейса. Может принимать значения 63295a9a2e47fab76f7708e1 для светлой темы (по умолчанию) или 63295aab2e47fab76f7708e3 для темной темы. Вы также можете [создать собственную тему](https://developers.xsolla.com/ru/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token) и передать ID темы в этом параметре. Enum: "63295a9a2e47fab76f7708e1", "63295aab2e47fab76f7708e3" - `settings.ui.user_account` (object) Объект с данными об учетной записи пользователя. - `settings.ui.user_account.info` (object) Страница Мой аккаунт. - `settings.ui.user_account.info.enable` (boolean, required) Показывать ли вкладку в меню. По умолчанию false. - `settings.ui.user_account.info.order` (integer, required) Расположение раздела в раскрывающемся меню в платежном интерфейсе. - `settings.ui.user_account.payment_accounts` (object) Страница Сохраненные платежные аккаунты. - `settings.ui.user_account.subscriptions` (object) Страница Управление подписками. - `user` (object, required) - `user.age` (integer) Возраст пользователя. - `user.country` (object) - `user.country.allow_modify` (boolean) Может ли пользователь изменить страну в платежном интерфейсе. - `user.country.value` (string) Двухбуквенный код страны в верхнем регистре согласно стандарту [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Параметр обязательный, если в заголовке X-User-Ipне передан IP-адрес. Список стран, поддерживаемых Xsolla, приведен [в документации](https://developers.xsolla.com/ru/doc/shop-builder/references/supported-countries/). Пример: country=US Example: "US" - `user.email` (object) - `user.email.value` (string) Email-адрес пользователя. Должен быть валидным в соответствии с протоколом RFC 822. - `user.id` (object, required) - `user.id.value` (string) ID пользователя. При тестировании вы можете передать в параметре любые символы. Для приема реальных платежей передайте в параметре ID пользователя из вашей системы. Этот ID будет передаваться в вебхуке [](https://developers.xsolla.com/ru/webhooks/operation/user-validation/). - `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) - `user.name.value` (string) Никнейм пользователя. - `user.phone` (object) - `user.phone.allow_modify` (boolean) Может ли пользователь изменить номер телефона в пользовательском интерфейсе оплаты. Если phone.value передается в токене, по умолчанию значение равно false. - `user.phone.hidden` (boolean) - `user.phone.value` (string, required) Номер телефона пользователя. - `user.steam_id` (object) - `user.steam_id.value` (string, required) Steam ID. - `user.tracking_id` (object) - `user.tracking_id.value` (string, required) Уникальный идентификатор отслеживания (используется в маркетинговых кампаниях). ## Response 201 fields (application/json): - `order_id` (integer) ID заказа. Example: 1 - `token` (string) Платежный токен. ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (number) Код ошибки. Example: 1102 - `errorMessage` (string) Удобочитаемое сообщение об ошибке. Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required" - `statusCode` (number) Код статуса ответа. Example: 422 - `transactionId` (string) Уникальный ID запроса. Example: "da145238620011eb8e24fe6913ff226a"