# Создание заказа с указанным товаром

Используется для интеграции клиент-сервер. Создает заказ с указанным товаром и генерирует для него токен оплаты. Созданный заказ получает статус заказа new.

IP-адрес клиента используется для определения страны пользователя, которая затем используется для применения соответствующей валюты и доступных способов оплаты заказа.

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

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

Внимание Поскольку этот метод использует IP-адрес для определения страны пользователя и валюты для заказа, важно использовать этот метод только на стороне клиента, а не на стороне сервера. Использование этого метода на стороне сервера может привести к неправильному определению валюты и повлиять на способы оплаты в Pay Station. 




  Уведомление
    Этот метод использует JWT пользователя для авторизации.
    Передайте токен в заголовке Authorization в формате Bearer &lt;user_JWT&gt;. Подробная информация о JWT пользователя приведена в блоке Безопасность для этого метода.

Endpoint: POST /v2/project/{project_id}/payment/item/{item_sku}
Version: 2.0.0
Security: XsollaLoginUserJWT

## Path parameters:

  - `project_id` (integer, required)
    ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта, а также в адресной строке браузера при работе с проектом. URL-адрес имеет следующий формат: https://publisher.xsolla.com//projects/.
    Example: 44056

  - `item_sku` (string, required)
    Артикул товара.
    Example: "booster_mega_1"

## Request fields (application/json):

  - `currency` (string)
    Валюта, в которой указана стоимость заказа. Трехбуквенный код валюты в соответствии с [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Подробную информацию о [валютах, поддерживаемых Xsolla, смотрите в документации](https://developers.xsolla.com/ru/doc/pay-station/references/supported-currencies/).

  - `locale` (string)
    Язык ответа.

  - `sandbox` (boolean)
    Создает заказ в тестовом окружении. Эта возможность доступна для пользователей, указанных в списке пользователей компании.

  - `quantity` (integer)
    Количество товаров.

  - `promo_code` (string)
    Погашает промокод при оплате.

  - `settings` (object)
    Параметры для настройки процесса оплаты и платежного интерфейса для пользователя.

  - `settings.ui` (object)
    Объект с настройками интерфейса.

  - `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.desktop` (object)
    Объект с настройками интерфейса для настольной версии.

  - `settings.ui.desktop.header` (object)
    Объект с настройками хедера.

  - `settings.ui.desktop.header.is_visible` (boolean)
    Показывать ли хедер в платежном интерфейсе.

  - `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.desktop.header.type` (string)
    Внешний вид хедера. Может принимать значения compact (в хедере не будут показываться название игры и ID пользователя) или normal.
    Enum: "compact", "normal"

  - `settings.ui.desktop.header.close_button` (boolean)
    Показывать ли кнопку Закрыть в платежном интерфейсе. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию.

  - `settings.ui.mode` (string)
    Платежный интерфейс в режиме Личного кабинета. Принимает значение user_account. Header содержит только навигационное меню Личного кабинета; исключается возможность выбора предмета и оплата покупки; режим Личного кабинета доступен только в desktop-режиме.
    Enum: "user_account"

  - `settings.ui.user_account` (object)
    Объект с данными об учетной записи пользователя.

  - `settings.ui.user_account.payment_accounts` (object)
    Страница Сохраненные платежные аккаунты.

  - `settings.ui.user_account.payment_accounts.enable` (boolean, required)
    Показывать ли вкладку в меню. По умолчанию false.

  - `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.subscriptions` (object)
    Страница Управление подписками.

  - `settings.ui.user_account.subscriptions.enable` (boolean, required)
    Показывать ли вкладку в меню. По умолчанию false.

  - `settings.ui.user_account.subscriptions.order` (integer, required)
    Расположение раздела в раскрывающемся меню в платежном интерфейсе.

  - `settings.ui.header` (object)

  - `settings.ui.header.visible_virtual_currency_balance` (boolean)
    Должен ли этот элемент быть видимым в интерфейсе оплаты.

  - `settings.ui.mobile` (object)

  - `settings.ui.mobile.header` (object)

  - `settings.ui.mobile.header.close_button` (boolean)
    Показывать ли кнопку Закрыть в платежном интерфейсе. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url.

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

  - `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_independent_windows` (boolean)
    Осуществляется ли переход из встроенного браузера лаунчера (WebView) во внешний браузер для совершения покупки.

  - `settings.ui.currency_format` (string)
    Передайте значение code, чтобы в платежном интерфейсе отображалось трехбуквенное обозначение валюты по [ISO 4217](https://developers.xsolla.com/ru/doc/pay-station/references/supported-currencies/). По умолчанию вместо трехбуквенного обозначения валюты отображается значок валюты.

  - `settings.ui.is_show_close_widget_warning` (boolean)
    Показывать ли предупреждение об обработке транзакции при наведении на значок × перед закрытием страницы оплаты. Если передано значение false или параметр не передан, предупреждение не показывается.

  - `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.is_three_ds_independent_windows` (boolean)
    Откроется ли проверка 3-D Secure в новом окне браузера. Если в вашей программе настройки применяется политика безопасности содержимого (CSP), установите значение true.

  - `settings.ui.is_cart_open_by_default` (boolean)
    Отображение списка товаров в корзине при открытии мобильной версии платежного интерфейса. Если передано значение true, список отображается в развернутом виде. Если передано значение false (по умолчанию) или параметр не передан — список отображается в свернутом виде.

  - `settings.payment_method` (integer)
    ID платежного метода. Влияет на отображение валюты в платежном интерфейсе, так как некоторые платежные методы могут поддерживать только определенные валюты.

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

  - `settings.redirect_policy` (object)

  - `settings.redirect_policy.redirect_conditions` (string)
    Статус платежа, при котором происходит перенаправление пользователя на return URL.
    Enum: "none", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.delay` (integer)
    Задержка, по истечении которой пользователь будет автоматически перенаправлен на return URL.

  - `settings.redirect_policy.status_for_manual_redirection` (string)
    Статус платежа, при котором появляется кнопка для возврата на return URL.
    Enum: "none", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.redirect_button_caption` (string)
    Локализованные надписи на кнопке редиректа.
    Example: "Text button"

  - `custom_parameters` (object)
    Дополнительные пользовательские параметры проекта.

## Response 200 fields (application/json):

  - `order_id` (integer)
    ID заказа.

  - `token` (string)
    Платежный токен.

## Response 404 fields (application/json):

  - `statusCode` (integer)

  - `errorCode` (integer)

  - `errorMessage` (string)

  - `transactionId` (string)

## Response 422 fields (application/json):

  - `errorCode` (integer)
    Example: 1411

  - `statusCode` (integer)
    Example: 422

  - `errorMessage` (string)
    Example: "[0401-1411]: Invalid item"


