По любому вопросу мы в одном клике

Задать вопрос

Yandex Pay

Введение

Платежный шлюз поддерживает прием платежей через Yandex Pay. У клиента есть возможность оплатить покупку, нажав на соответствующую кнопку.

Если используется платежная страница на стороне Платежного шлюза, дополнительных действий по подключению этого способа оплаты не требуется.

Если вы используете свою платежную страницу, необходимы следующие предварительные действия:

  1. Получите идентификатор продавца YandexPay Id (https://pay.yandex.ru/business).
  2. Установите полученный идентификатор в личном кабинете. Для этого перейдите в раздел Сертификаты > Yandex Pay > Создать пару ключей > введите логин продавца и полученный идентификатор.
  3. Зарегистрируйте полученную пару ключей в Yandex (обратитесь в команду поддержки).

Схема интеграции

sequenceDiagram participant C as Клиент participant M as Мерчант participant YP as Yandex Pay participant G as Платежный шлюз participant 3DS as Сервер 3DS participant ACS as ACS autonumber C->>M: Выбор способа оплаты Yandex Pay M->>YP: Запрос на получение платежного токена YP-->>C: Запрос подтверждения оплаты C->>YP: Подтверждение оплаты YP->>YP: Формирование зашифрованных данных платежа YP-->>M: Зашифрованные данные M->>G: Запрос /yandex/instantPayment.do G->>G: Регистрация заказа G->>G: Расшифровка данных G->>G: Проведение оплаты и фискализация G-->>YP: Оповещение об оплате YP->>G: Подтверждение получения G->>M: Ответ на запрос alt Требуется 3DS 2 авторизация M->>3DS: Вызов скрытого iframe (threeDSMethodURLServer) alt В ответе присутствуют threeDSMethodURL, threeDSMethodDataPacked M->>ACS: Вызов скрытого iframe (threeDSMethodURL) end M->>G: Повторный запрос /yandex/instantPayment.do G-->>M: Взаимодействие с сервером 3DS и ACS, <br> ответ на запрос alt Требуется аутентификация на ACS M-->>C: Перенаправление на ACS C->>ACS: Проверка подлинности ACS-->>C: Перенаправление клиента на страницу магазина M->>G: Запрос finish3dsVer2Payment.do G->>M: Ответ на запрос end end M-->>C: Результат оплаты
  1. Клиент формирует заказ на сайте Мерчанта и выбирает оплату Yandex Pay.

  2. Платежная форма на стороне Мерчанта формирует запрос к Yandex на формирование платежного токена.

  3. Yandex отображает информацию о покупке, позволяя Клиенту выбрать средство оплаты Yandex Pay.

  4. Клиент вводит необходимые данные и подтверждает оплату.

  5. Yandex формирует зашифрованные платежные данные.

  6. Yandex возвращает зашифрованные данные на платежную страницу на стороне Мерчанта.

  7. Мерчант отправляет в Платежный шлюз запрос на оплату YandexPay /yandex/instantPayment.do, передавая зашифрованные данные в параметре paymentToken.

  8. Платежный шлюз регистрирует заказ.

  9. Платежный шлюз расшифровывает значение, полученное в параметре paymentToken.

  10. Платежный шлюз осуществляет оплату и фискализацию (если она предусмотрена).

  11. В случае двухстадийного платежа Платежный шлюз отправляет нотификацию о блокировке средств в момент блокировки. После проведения оплаты Платежный шлюз отправляет нотификацию об оплате Yandex Pay.

  12. Yandex Pay подтверждает получение результата оплаты.

  13. Платежный шлюз возвращает результат оплаты Мерчанту. При этом, если требуется 3DS2 аутентификация, в ответе, в том числе, возвращаются параметры, относящиеся к 3DSv2 (threeDSServerTransId, threeDSMethodURLServer, threeDSMethodURL, threeDSMethodDataPacked).

  14. Если 3DS2 аутентификация не требуется, выполняется переход на шаг 23.

    Если требуется (ответ содержит threeDSMethodURLServer) – Мерчант в отдельном "iframe" методом POST вызывает threeDSMethodURLServer.

  15. Если в ответе присутствуют параметры threeDSMethodURL и threeDSMethodDataPacked, Мерчант в отдельном "iframe" методом POST вызывает threeDSMethodURL (адрес ACS).

  16. (Продолжение оплаты) Мерчант отправляет повторный запрос /yandex/instantPayment.do. При этом необходимо передать параметр threeDSServerTransId – идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 13. Кроме того, для переадресации клиента на страницу магазина после проведения оплаты заказа можно передать ссылку переадресации в параметре threeDSVer2FinishUrl.

  17. Платежный шлюз взаимодействует с сервером 3DS и ACS, чтобы выяснить, требуется ли клиенту проходить аутентификацию на ACS, и отправляет ответ на запрос оплаты. Если клиенту требуется проходить аутентификацию на ACS, в ответе возвращается acsUrl – URL для перенаправления на ACS, а также packedCReq – упакованные данные для challenge request. Если не требуется (frictionless аутентификация) – возвращается ответ об успешном завершении оплаты.

  18. Если аутентификация на ACS не требуется, выполняется переход на шаг 23.

    Если требуется – продавец перенаправляет клиента на ACS. Читайте, как это сделать, здесь.

  19. Клиент проходит проверку подлинности.

  20. ACS перенаправляет клиента на страницу магазина.

  21. Если в запросе на оплату был передан параметр threeDSVer2FinishUrl, для завершения транзакции Мерчант отправляет в платежный шлюз запрос finish3dsVer2Payment.do. В этом запросе нужно передать параметр threeDSServerTransId - идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 13.

  22. Платежный шлюз возвращает результат оплаты Мерчанту.

  23. Платежная страница на стороне Мерчанта отображает результат оплаты Клиенту.

API-запрос регистрации и оплаты Yandex Pay

Запрос, используемый для регистрации заказа и одновременной оплаты за него – https://mts.rbsuat.com/payment/yandex/instantPayment.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

Параметры запроса

ОбязательностьНазваниеТипОписание
УсловиеusernameString [1..30]Логин учетной записи API продавца. Обязательно, если авторизация осуществляется через username и password.
УсловиеpasswordString [1..30]Пароль учетной записи API продавца. Обязательно, если авторизация осуществляется через username и password.
УсловиеmerchantString [1..255]Логин продавца в системе платежного шлюза. Обязательно, если авторизация осуществляется через merchant.
ОбязательноamountInteger [0..12]Сумма платежа в минимальных единицах валюты (например, в копейках).
ОбязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
НеобязательноcurrencyCodeString [3]Цифровой код валюты платежа ISO 4217. Если не указан, то используется значение по умолчанию. Допускаются только цифры.
ОбязательноpaymentTokenString [1..8192]Токен, полученный от Yandex Pay и закодированный в Base64.
ОбязательноreturnUrlString [1..512]Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://mts.rbsuat.com/payment/<merchant_address>.
НеобязательноfailUrlString [1..512]Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://mts.rbsuat.com/payment/<merchant_address>.
НеобязательноdynamicCallbackUrlString [1..512]Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
НеобязательноdescriptionString [1..598]Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
НеобязательноadditionalParametersObjectДополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
НеобязательноpreAuthBooleanПараметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
НеобязательноmerchantLoginString [1..255]Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
НеобязательноipString [1..39]IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
УсловиеphoneStringНомер телефона. Обязателен, если у интернет-магазина настроена фискализация и не указан адрес электронной почты. Всегда нужно указывать код страны, при этом можно или указывать, или не указывать знак +. Таким образом, допустимы следующие варианты:
  • +449998887766;
  • 449998887766. От 7 до 15 цифр.
УсловиеemailString [1..40]Адрес электронной почты. Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона.
НеобязательноbillingPayerDataObjectБлок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
НеобязательноorderBundleObjectОбъект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.
НеобязательноadditionalOfdParamsObjectБлок параметров для фискализации. См ниже.
Условие (обязательно с 3DS2 SDK)threeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
Условие (обязательно с 3DS2 SDK)threeDSVer2FinishUrlString [1..512]URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
Условие (обязательно с 3DS2 SDK)threeDSMethodNotificationUrlString [1..512]URL-адрес для отправки уведомления о прохождении проверки на ACS.
Условие (обязательно с 3DS2 SDK)threeDSSDKBooleanВозможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
УсловиеthreeDSSDKEncDataStringЗашифрованные данные об устройстве. Параметр является обязательным для SDK.
УсловиеthreeDSSDKEphemPubKeyStringПубличная часть эфемерного ключа. Требуется для установки сеанса с ACS. Параметр является обязательным для SDK.
УсловиеthreeDSSDKAppIdStringУникальный идентификатор SDK. Параметр является обязательным для SDK.
УсловиеthreeDSSDKTransIdStringУникальный идентификатор транзакции в SDK. Параметр является обязательным для SDK.
Условие (обязательно с 3DS2 SDK)threeDSVer2MdOrderString [1..36]Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS2 операции. Обязателен для аутентификации 3DS.
Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.

Ниже приведены параметры блока billingPayerData (данные об адресе регистрации клиента).

ОбязательностьНазваниеТипОписание
НеобязательноbillingCityString [0..50]Город, зарегистрированный по конкретной карте у Банка Эмитента.
НеобязательноbillingCountryString [0..50]Страна, зарегистрированная по конкретной карте банка-эмитента. Формат: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) или наименование страны. Рекомендуем передавать двух/трехбуквенный ISO код страны.
НеобязательноbillingAddressLine1String [0..50]Адрес, зарегистрированный по конкретной карте у Банка Эмитента (адрес плательщика). Строка 1. Обязательно к передаче для AVS-проверки.
НеобязательноbillingAddressLine2String [0..50]Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
НеобязательноbillingAddressLine3String [0..50]Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
НеобязательноbillingPostalCodeString [0..9]Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
НеобязательноbillingStateString [0..50]Штат, зарегистрированный по конкретной карте у Банка Эмитента. Формат: полное значение кода ISO 3166-2, его часть или наименование штата/региона. Может содержать буквы только латинского алфавита. Рекомендуем передавать двухбуквенный ISO код штата/региона.

Описание параметров в объекте orderBundle:

ОбязательностьНазваниеТипОписание
НеобязательноorderCreationDateString [19]Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
НеобязательноcustomerDetailsObjectБлок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
ОбязательноcartItemsObjectОбъект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.
НеобязательноagentObjectОбъект с информацией об агенте. Описание вложенных элементов приведено ниже.
НеобязательноsupplierPhonesArray of strings [1..19]Массив телефонных номеров поставщика в формате +N.

Описание параметров в объекте customerDetails:

ОбязательностьНазваниеТипОписание
УсловиеemailString [1..40]Электронный адрес клиента. Можно указать несколько адресов электронной почты через запятую и без пробелов.
Обязательно следует передать один из двух параметров: email или phone.
УсловиеphoneString [7..15]Номер телефона владельца карты.
Предпочтительно передавать номер телефона в параметре orderPayerData.mobilePhone (но если вы передадите его в этом блоке, к нему применятся те же правила).
НеобязательноcontactString [0..40]Предпочитаемый клиентом способ связи.
НеобязательноfullNameString [1..100]ФИО плательщика.
Указывать ФИО плательщика рекомендуем только, если это требуется ФНС. В остальных случаях передавать этот параметр не нужно, т.к. это может привести к ошибке из-за проверки данных плательщика (см. Проверка данных плательщика при передаче корзины).
НеобязательноpassportString [1..100]Серия и номер паспорта плательщика в следующем формате: 2222888888
НеобязательноdeliveryInfoObjectОбъект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
НеобязательноinnInteger [10..12]Индивидуальный номер налогоплательщика. 10 или 12 символов.

Проверка данных плательщика при передаче корзины

Согласно требованиям ФНС, при передаче ФИО плательщика должно быть передано либо ИНН плательщика, либо его паспортные данные.

В связи с этим, если в запросе с продуктовой корзиной передается какой-либо из параметров (в блоках orderBundle или additionalOfdParams):

то выполняется проверка на обязательное наличие ИНН плательщика ИЛИ набора параметров Дата рождения, Код документа, Данные документа. Если это условие не выполняется, запрос будет обработан с ошибкой.

Описание параметров в объекте deliveryInfo:

ОбязательностьНазваниеТипОписание
НеобязательноdeliveryTypeString [1..20]Способ доставки.
ОбязательноcountryString [2]Двухбуквенный код страны доставки.
ОбязательноcityString [0..40]Город назначения.
ОбязательноpostAddressString [1..255]Адрес доставки.

Описание параметров в объекте cartItems:

ОбязательностьНазваниеТипОписание
ОбязательноitemsObjectЭлемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте items:

ОбязательностьНазваниеТипОписание
ОбязательноpositionIdInteger [1..12]Уникальный идентификатор товарной позиции в корзине.
ОбязательноnameString [1..255]Наименование или описание товарной позиции в свободной форме.
НеобязательноitemDetailsObjectОбъект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
ОбязательноquantityObjectЭлемент, описывающий общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
НеобязательноitemAmountInteger [1..12]Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
НеобязательноitemPriceInteger [1..18]Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
НеобязательноdepositedItemAmountString [1..18]Сумма списания для одного positionId в минимальных единицах валюты (например, в копейках).
НеобязательноitemCurrencyInteger [3]Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
ОбязательноitemCodeString [1..100]Номер (идентификатор) товарной позиции в системе магазина.
НеобязательноtaxObjectОбъект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов.
НеобязательноitemAttributesObjectОбъект, содержащий атрибуты товарной позиции.

Описание параметров в объекте quantity:

ОбязательностьНазваниеТипОписание
ОбязательноvalueNumber [1..18]Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. Допускается максимально 3 знака после точки. При ФФД 1.2+ значение value всегда 1.
ОбязательноmeasureString [1..20]Единица измерения количества по позиции. Для ФФД 1.2+, если переданы параметры nomenclature и markQuantity, measure всегда равно 0. В иных случаях доступны значения из списка ниже.

Возможные значения параметра measure:

ЗначениеОписание
0Применяется к позициям, которые могут быть реализованы индивидуально или отдельными единицами, а также если объект платежа является предметом, подлежащим обязательной идентификационной маркировке.
10Грамм
11Килограмм
12Тонна
20Сантиметр
21Дециметр
22Метр
30Квадратный сантиметр
31Квадратный дециметр
32Квадратный метр
40Миллилитр
41Литр
42Кубический метр
50Киловатт час
51Гигакалория
70День
71Час
72Минута
73Секунда
80Килобайт
81Мегабайт
82Гигабайт
83Терабайт
255Применяется к другим единицам измерения

Описание параметров в объекте itemDetails:

ОбязательностьНазваниеТипОписание
НеобязательноitemDetailsParamsObjectПараметр, описывающий дополнительную информацию по товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте itemDetailsParams:

ОбязательностьНазваниеТипОписание
ОбязательноvalueString [1..2000]Дополнительная информация по товарной позиции.
ОбязательноnameString [1..255]Наименование параметра описания детализации товарной позиции

Описание параметров объекта tax:

ОбязательностьНазваниеТипОписание
ОбязательноtaxTypeIntegerСтавка НДС, доступны следующие значения:
  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС по ставке 10%;
  • 4 – НДС по расчетной ставке 10/110;
  • 6 – НДС по ставке 20%;
  • 7 – НДС по расчетной ставке 20/120;
  • 10 – НДС по ставке 5%;
  • 11 – НДС по расчетной ставке 5/105;
  • 12 – НДС по ставке 7%;
  • 13 – НДС по расчетной ставке 7/107;
  • 14 - НДС по ставке 22%:
  • 15 - НДС по расчетной ставке 22/122.
ОбязательноtaxSumInteger [1..18]Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

Описание параметров в объекте itemAttributes:

Параметр itemAttributes должен содержать массив attributes, а уже в этом массиве расположены атрибуты товарной позиции (см. пример и таблицу ниже).

"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
ОбязательностьНазваниеТипОписание
ОбязательноpaymentMethodInteger [1..2]Тип платежа, доступные значения:
  • 1 - полная предоплата;
  • 2 - частичная предоплата;
  • 3 - аванс;
  • 4 - полная оплата;
  • 5 - частичная оплата с последующей оплатой в кредит;
  • 6 - без оплаты с последующей оплатой в кредит;
  • 7 - оплата с последующей оплатой в кредит.
ОбязательноpaymentObjectIntegerОбъект платежа, доступные значения:
  • 1 - товар (значение по умолчанию);
  • 2 - подакцизный товар;
  • 3 - работа;
  • 4 - услуга;
  • 5 - ставка азартной игры;
  • 6 - выигрыш азартной игры;
  • 7 - лотерейный билет;
  • 8 - выигрыш лотереи;
  • 9 - предоставление РИД;
  • 10 - платеж;
  • 11 - агентское вознаграждение;
  • 12 - составной предмет расчета;
  • 13 - иной предмет расчета;
  • 14 - имущественное право;
  • 15 - внереализационный доход;
  • 16 - страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;
  • 17 - торговый сбор: о суммах уплаченного торгового сбора;
  • 18 - курортный сбор.

Указанные выше значения доступны для ФФД 1.05.
Для ФФД 1.2 список доступных значений пополняется также следующими значениями:
  • 30 - подакцизный товар, подлежащий маркировке средством идентификации, не имеющий кода маркировки
  • 31 - подакцизный товар, подлежащий маркировке средством идентификации, имеющий код маркировки
  • 32 - товар, подлежащий маркировке средством идентификации, не имеющий код маркировки, за исключением подакцизного товара
  • 33 - товар, подлежащий маркировке средством идентификации, имеющий код маркировки, за исключением подакцизного товара

Приоритезация передачи значения происходит по следующему принципу (указано в убывающем порядке приоритета): 1) корзина заказа из API-запроса; 2) настройки фискализации в личном кабинете; 3) значения по умолчанию
УсловиеnomenclatureString [1..95]Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
НеобязательноmarkQuantityObjectДробное количество маркируемого товара.
НеобязательноuserDataString [1..64]Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
Необязательноagent_infoObjectОбъект с данными о платежном агенте для товарной позиции. Описание вложенных элементов приведено ниже.
Необязательноsupplier_infoObjectОбъект с данными о поставщике для товарной позиции. Описание вложенных элементов приведено ниже.

Описание параметров в объекте agent_info:

ОбязательностьНазваниеТипОписание
ОбязательноtypeIntegerТип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
НеобязательноpayingObjectОбъект с данными о платежном агенте. Описание вложенных элементов приведено ниже.
НеобязательноpaymentsOperatorObjectОбъект с информацией об операторе по приему платежей. Описание вложенных элементов приведено ниже.
НеобязательноMTOperatorObjectОбъект с данными об Операторе перевода. Описание вложенных элементов приведено ниже.

Описание параметров в объекте paying:

ОбязательностьНазваниеТипОписание
НеобязательноoperationString [1..24]Название транзакции платежного агента.
НеобязательноphonesArray of stringsМассив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте paymentsOperator:

ОбязательностьНазваниеТипОписание
НеобязательноphonesArray of stringsМассив телефонных номеров платежного агента в формате +N.

Описание параметров в объекте MTOperator:

ОбязательностьНазваниеТипОписание
НеобязательноphonesArray of stringsМассив телефонных номеров оператора перевода в формате +N.
НеобязательноnameString [1..256]Наименование оператора перевода.
НеобязательноaddressString [1..256]Адрес оператора перевода.
НеобязательноinnString [10..12]ИНН оператора перевода.

Описание параметров в объекте supplier_info:

ОбязательностьНазваниеТипОписание
НеобязательноphonesArray of stringsМассив телефонных номеров поставщика в формате +N.
НеобязательноnameString [1..256]Наименование поставщика.
НеобязательноinnInteger [10..12]ИНН поставщика

Описание параметров объекта markQuantity.

ОбязательностьНазваниеТипОписание
ОбязательноnumeratorInteger [1..12]Числитель дробной части объекта платежа.
ОбязательноdenominatorInteger [1..12]Знаменатель дробной части объекта платежа.

Описание параметров в объекте additionalOfdParams:

ОбязательностьНазваниеТипОписание
Необязательноagent_info.typeIntegerТип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательноagent_info.paying.operationString [1..24]Название транзакции платежного агента.
Необязательноagent_info.paying.phonesArray of stringsМассив телефонных номеров платежного агента в формате +N.
Необязательноagent_info.paymentsOperator.phonesArray of stringsМассив телефонных номеров платежного агента в формате +N.
Необязательноagent_info.MTOperator.addressString [1..256]Адрес оператора перевода.
Необязательноagent_info.MTOperator.innString [10..12]ИНН оператора перевода.
Необязательноagent_info.MTOperator.nameString [1..256]Наименование оператора перевода.
Необязательноagent_info.MTOperator.phonesArray of stringsМассив телефонных номеров оператора перевода в формате +N.
Необязательноsupplier_info.phonesArray of stringsМассив телефонных номеров поставщика в формате +N.
НеобязательноcashierString [1..256]Имя кассира.
Необязательноadditional_check_propsString [1..16]Дополнительные свойства чека.
Необязательноadditional_user_props.nameString [1..24]Название дополнительного свойства пользователя
Необязательноadditional_user_props.valueString [1..24]Значение дополнительного свойства пользователя
Необязательноcashier_innString [10..12]ИНН кассира.
Необязательноclient.addressString [1..256]Адрес клиента.
Необязательноclient.birth_dateString [10]Дата рождения клиента в формате дд.мм.гггг.
Необязательноclient.citizenshipString [3]Цифровой код страны, гражданином которой является покупатель (клиент).
Необязательноclient.document_codeString [2]Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
Необязательноclient.passport_numberString [11]Серия и номер паспорта плательщика.
Необязательноclient.emailString [1..64]Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательноclient.phoneString [19]Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательноclient.innString [12]ИНН клиента.
Необязательноclient.nameString [1..256]Имя клиента.
Необязательноoperatingcheckprops.nameStringИдентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
Необязательноoperatingcheckprops.timestampString [1..19]Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
Необязательноoperatingcheckprops.valueString [1..64]Данные транзакции.
Необязательноsectoralcheckprops.dateString [10]Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
Необязательноsectoralcheckprops.federalidStringИдентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
Необязательноsectoralcheckprops.numberString [32]Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
Необязательноsectoralcheckprops.valueString [1..256]Состав значений, определенных нормативным актом федерального органа исполнительной власти
Условиеcompany.automat_numberStringНомер автомата.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга и транспорта;
  • Формат фискальных документов 1.2 – для вендинга и транспорта.
Условиеcompany.locationStringАдрес для выставления счета.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Условиеcompany.payment_addressStringАдрес для получения счетов.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Необязательноuse_legacy_vatbooleanПараметр используется в случае, если необходимо передать устаревшее значение НДС. Возможные значения:
  • true- если необходимо передать устаревшее значение НДС
  • false - нет необходимости

Параметры ответа

ОбязательностьНазваниеТипОписание
ОбязательноsuccessBooleanОсновной параметр, который указывает на то, что запрос прошел успешно. Доступны следующие значения:
  • true - запрос успешно обработан;
  • false - запрос не прошел.

Обратите внимание, что значение true означает, что запрос был обработан, а не что заказ был оплачен.
Более подробная информация о том, как узнать, был ли платеж успешным или нет, доступна здесь.
УсловиеdataObjectЭтот параметр возвращается только в случае успешной обработки платежа. См. описание ниже.
УсловиеerrorObjectЭтот параметр возвращается только в случае ошибки платежа. См. описание ниже.

Блок data содержит следующие элементы.

ОбязательностьНазваниеТипОписание
ОбязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
НеобязательноredirectUrlString [1..512]Адрес для перенаправления клиента.
УсловиеacsUrlString [1..512]URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
УсловиеpaReqString [1..255]PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Возвращается при успешном ответе в случае оплаты 3D-Secure, если необходим редирект на ACS. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.
УсловиеtermUrlString [1..512]При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
Необязательноis3DSVer2BooleanВозможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
НеобязательноpackedCReqStringЗапакованные данные challenge request. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS. Подробнее см. Редирект на ACS.
НеобязательноthreeDSMethodDataPackedString [1..1024]Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
НеобязательноthreeDSMethodUrlString [1..512]URL-адрес сервера ACS для сбора данных браузера.
НеобязательноthreeDSMethodUrlServerString [1..512]URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
НеобязательноthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSSDKKeyStringКлюч шифрования данных устройства. Параметр является обязательным для SDK.
НеобязательноthreeDSAcsRefNumberStringСправочный номер на ACS.
НеобязательноthreeDSAcsSignedContentStringПодписанный контент для SDK, контент включает URL-адрес ACS. Параметр является обязательным для SDK.
НеобязательноthreeDSAcsTransactionIdStringИдентификатор транзакции 3DS в ACS. Параметр является обязательным для SDK.
НеобязательноthreeDSDsTransIDStringУникальный идентификатор транзакции внутри МПС. Параметр является обязательным для SDK.
НеобязательноtransactionIdString [1..512]Идентификатор операции в платежном шлюзе.

Блок error содержит следующие элементы.

ОбязательностьНазваниеТипОписание
ОбязательноcodeString [1..3]Код как информационный параметр, сообщающий об ошибке.
ОбязательноdescriptionString [1..598]Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.
ОбязательноmessageString [1..512]Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.

Примеры

Пример запроса

curl --location 'https://mts.rbsuat.com/payment/yandex/instantPayment.do' \
--header 'Content-Type: application/json' \
--data '{
"merchant": "OurBestMerchantLogin",
"amount":1000000,
"orderNumber":"1255555555555",
"currencyCode" : 643,
"failUrl" : "https://mybestmerchantfailurl.com",
"returnUrl" : "https://mybestmerchantreturnurl.com",
"description" : "Test description",
"paymentToken": "eyJtZXJjaGFudCI6ICJ...FnXCJ9In0=",
"sessionTimeoutSecs":"1000000",
"ip" : "127.0.0.1",
"jsonParams":
    {"notGenerateOfdReceipt":"true"},
"orderBundle":
    {"cartItems":
        {
        "items":
            [
            {"positionId":"1","name":"TEST","quantity":{"value":1.0,"measure":"psc"},"itemAmount":500000,"itemCode":"code1","itemPrice":"500000","tax":{"taxType":2},"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"2"},{"name":"paymentObject","value":"2"}]}},
            {"positionId":"2","name":"TEST2","quantity":{"value":1.0,"measure":"psc"},"itemAmount":500000,"itemCode":"code2","itemPrice":"500000","tax":{"taxType":2},"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"2"},{"name":"paymentObject","value":"2"}]}}
            ]
            }
        }
	}	
}'

Пример повторного запроса (для 3DS2)

curl --location 'https://mts.rbsuat.com/payment/yandex/instantPayment.do' \
--header 'Content-Type: application/json' \
--data '{
    "username": "test-user",
    "password": "test-password",
    "paymentToken": "eyJtZXJjaGFudCI6ICJ...FnXCJ9In0=",
    "amount": 1000000,
    "returnUrl": "https://mybestmerchantreturnurl.com",
    "threeDSVer2FinishUrl": "http://finish.com",
    "threeDSVer2MdOrder": "20118da6-be2d-75ba-be89-273b085e076d",
    "threeDSServerTransId": "e06d137a-b68a-41d5-8998-af3e13ab8195"
}'

Пример ответа

{
    "success": true,
    "data": {
        "orderNumber": "4e77a01b-5a75-7f92-9560-434e01228ae9",
        "redirectUrl": "https://do13.do.rbstest.ru/payment/merchants/rbs/finish.html?orderId=4e77a01b-5a75-7f92-9560-434e01228ae9&lang=ru",
        "transactionId": "ddc687bf-c82c-48ec-be81-0b8fea42cd28"
    }
}

Пример ответа на первый запрос для 3DS2

{
    "success": true,
    "data": {
        "orderNumber": "12312312123",
        "is3DSVer2": true,
        "threeDSServerTransId": "5802746e-3393-40c3-929a-dc966ebf08c6",
        "threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
        "threeDSMethodURLServer": "example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=5802746e-3393-40c3-929a-dc966ebf08c6",
        "threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
    }
}

Пример ответа на повторный запрос для 3DS2

{
    "success": true,
    "data": {
        "orderNumber": "44f379fd-4f70-782a-b742-36b501228ae9",
        "acsUrl": "https://web.rbsuat.com/acs/auth/start.do",
        "paReq": "eJxVkVtTwjAQhf8K0/eSS0tbmCUOiox9aBXEcXwM6SpF2kJoFfvrTbgIvu232TlncxZu9sW684V
6l1fl0GFd6nSwVFWWlx9D52U+cSPnRsB8qRHHz6gajQIS3O3kB3bybOjQMIveFx51Q8o91+8H0o0iFbm+CjHsq57C0HcE
PI1muBVwMhLGp8uBnNEoarWUZS1Aqu1tnAqfhwGlQE4IBep4LBj3/F4QRkCODKUsUDwvC/lZfQE5EKiqKWv9IwLfA3IGa
PRaLOt6MyDkR3Z1A8R2gFycnxpb7YzCPs9EskradDzap6t7nqxinrQJe5zH32n7NgRiJyCTNQpOOaMB5R3GBp43YOZXhz
7IwloLRg/fOAJsrMfo+uW6AyZebdI/734mwP2mKtFMGPW/Gshl47sHm5yqTSZtO5mUK674/Uv6UM+m62j6uk18XPjb2OZ
5GLKKuYml32dHSQtArAw5nYqcrmyqf9f/BX9Qtv8=",
        "termUrl": "https://do13.do.rbstest.ru/payment/rest/finish3ds.do"
    }
}
Категории:
eCommerceAPI V1
Beta
Категории
Результаты поиска