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,
ответ на запрос 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

Мгновенная оплата Yandex Pay

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


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

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

Обязательность Название Тип Описание
Условие

username String [1..100] Логин учетной записи API продавца. Обязательно, если авторизация осуществляется через username и password.
Условие

password String [1..200] Пароль учетной записи API продавца. Обязательно, если авторизация осуществляется через username и password.
Условие

merchant String Логин продавца в системе платежного шлюза. Обязательно, если авторизация осуществляется через merchant.
Обязательно

amount Integer [0..12] Сумма платежа в минимальных единицах валюты (например, в копейках).
Обязательно

orderNumber String [1..32] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

currencyCode String [3] Цифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль).
Обязательно

paymentToken String [1..8192] Токен, полученный от Yandex Pay и закодированный в Base64.
Обязательно

returnUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://vtb.rbsuat.com/payment/<merchant_address>.
Необязательно

failUrl String [1..512] Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://vtb.rbsuat.com/payment/<merchant_address>.
Необязательно

dynamicCallbackUrl String [1..512] Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
Необязательно

description String [1..598] Описание заказа в любом формате.
Чтобы включить отправку этого поля в процессинговую систему, обратитесь в службу технической поддержки.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
Необязательно

additionalParameters Object Дополнительные параметры заказа, которые хранятся в личном кабинете продавца для последующего просмотра. Каждая новая пара имени параметра и его значения должна быть разделена запятой. Ниже приведен пример использования.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
Необязательно

preAuth Boolean Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счете клиента до их списания). Доступны следующие значения:
  • true - включена двухстадийная оплата;
  • false - включена одностадийная оплата (деньги списываются сразу).
Если параметр отсутствует, производится одностадийная оплата.
Необязательно

merchantLogin String [1..255] Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
Необязательно

ip String [1..39] IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
Условие

phone String Номер телефона. Обязателен, если у интернет-магазина настроена фискализация и не указан адрес электронной почты. Всегда нужно указывать код страны, при этом можно или указывать, или не указывать знак +. Таким образом, допустимы следующие варианты:
  • +449998887766;
  • 449998887766. От 7 до 15 цифр.
Условие

email String Адрес электронной почты. Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона.
Необязательно

postAddress String [1..255] Адрес доставки.
Необязательно billingPayerData Object Блок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязательно, если функция включена для продавца на стороне Платежного шлюза. См вложенные параметры.
Необязательно

orderBundle Object Объект, содержащий корзину товаров. Описание вложенных элементов приведено ниже.
Необязательно

additionalOfdParams Object Блок параметров для фискализации. См ниже.
Условие (обязательно с 3DS2 SDK)

threeDSServerTransId String Идентификатор транзакции, созданный на сервере 3DS.
Условие (обязательно с 3DS2 SDK)

threeDSVer2FinishUrl String URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
Условие (обязательно с 3DS2 SDK)

threeDSMethodNotificationUrl String URL-адрес для отправки уведомления о прохождении проверки на ACS.
Условие (обязательно с 3DS2 SDK)

threeDSSDK Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
Условие

threeDSSDKEncData String Зашифрованные данные об устройстве.

Параметр является обязательным для SDK.

Условие

threeDSSDKEphemPubKey String Публичная часть эфемерного ключа. Требуется для установки сеанса с ACS.

Параметр является обязательным для SDK.

Условие

threeDSSDKAppId String Уникальный идентификатор SDK.

Параметр является обязательным для SDK.

Условие

threeDSSDKTransId String Уникальный идентификатор транзакции в SDK.

Параметр является обязательным для SDK.

Условие (обязательно с 3DS2 SDK)

threeDSVer2MdOrder String Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS 2.0 операции.
Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.

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

Обязательность Название Тип Описание
Необязательно

billingCity String [0..50] Город, зарегистрированный по конкретной карте у Банка Эмитента.
Необязательно

billingCountry String [0..50] Страна, зарегистрированная по конкретной карте банка-эмитента (ISO 3166-1, числовой).
Необязательно

billingAddressLine1 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 1. Обязательно к передаче для AVS-проверки.
Необязательно

billingAddressLine2 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 2.
Необязательно

billingAddressLine3 String [0..50] Адрес, зарегистрированный по конкретной карте у Банка Эмитента. Строка 3.
Необязательно

billingPostalCode String [0..9] Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента. Обязательно к передаче для AVS-проверки.
Необязательно

billingState String [0..50] Штат, зарегистрированный по конкретной карте у Банка Эмитента.

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

Обязательность Название Тип Описание
Необязательно

orderCreationDate String Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS.
Необязательно

customerDetails Object Блок, содержащий атрибуты клиента. Описание атрибутов тега приведено ниже.
Обязательно

cartItems Object Объект, содержащий атрибуты товаров в корзине. Описание вложенных элементов приведено ниже.

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

Обязательность Название Тип Описание
Условие

email String Электронный адрес клиента. Можно указать несколько адресов электронной почты через запятую и без пробелов.
Обязательно следует передать один из двух параметров: email или phone.
Условие

phone String Номер телефона владельца карты.
Предпочтительно передавать номер телефона в параметре orderPayerData.mobilePhone (но если вы передадите его в этом блоке, к нему применятся те же правила).
Необязательно

contact String [0..40] Предпочитаемый клиентом способ связи.
Необязательно

fullName String [1..100] ФИО плательщика.
Необязательно

passport Integer Серия и номер паспорта плательщика в следующем формате: 2222888888
Необязательно

deliveryInfo Object Объект, содержащий атрибуты адреса доставки. Описание вложенных элементов приведено ниже.
Необязательно

inn Integer [10..12] Индивидуальный номер налогоплательщика. 10 или 12 символов.

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

Обязательность Название Тип Описание
Необязательно

deliveryType String [1..20] Способ доставки.
Обязательно

country String Двухбуквенный код страны доставки.
Обязательно

city String [0..40] Город назначения.
Обязательно

postAddress String [1..255] Адрес доставки.

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

Обязательность Название Тип Описание
Обязательно

items Object Элемент массива с атрибутами товарной позиции. Описание вложенных элементов приведено ниже.

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

Обязательность Название Тип Описание
Обязательно

positionId Integer [1..12] Уникальный идентификатор товарной позиции в корзине.
Обязательно

name String [1..255] Наименование или описание товарной позиции в свободной форме.
Необязательно

itemDetails Object Объект с параметрами описания товарной позиции. Описание вложенных элементов приведено ниже.
Обязательно

quantity Object Элемент, описывающий передается общее количество товарных позиций одного positionId и его единицы измерения. Описание вложенных элементов приведено ниже.
Необязательно

itemAmount Integer [1..12] Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой.
Необязательно

itemPrice Integer [1..18] Сумма стоимости товарной позиции одного positionId в деньгах в минимальных единицах валюты. Обязательно для мерчантов, использующих фискализацию.
Необязательно

itemCurrency Integer Код валюты ISO 4217. Если не указан, считается равным валюте заказа.
Обязательно

itemCode String [1..100] Номер (идентификатор) товарной позиции в системе магазина.

Необязательно

| tax | Object | Объект, содержащий атрибуты налога. Ниже приведено описание содержащихся атрибутов. |

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

Обязательность Название Тип Описание
Обязательно

value String Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. При ФФД 1.2+ значение value всегда 1.
Обязательно

measure String [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:

Обязательность Название Тип Описание
Необязательно

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

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

Обязательность Название Тип Описание
Обязательно

value String Дополнительная информация по товарной позиции.
Обязательно

name String [1..255] Наименование параметра описания детализации товарной позиции

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

Обязательность Название Тип Описание
Обязательно

taxType Integer Ставка НДС, доступны следующие значения:
  • 0 – без НДС;
  • 1 – НДС по ставке 0%;
  • 2 – НДС чека по ставке 10%;
  • 4 – НДС чека по расчетной ставке 10/110;
  • 6 – НДС чека по ставке 20%;
  • 7 – НДС чека по расчетной ставке 20/120.
Обязательно

taxSum Integer [1..18] Сумма налога рассчитанная продавцом. Значение указывается в минимальных единицах валюты.

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

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

"itemAttributes":{"attributes":[{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]}
Обязательность Название Тип Описание
Обязательно

paymentMethod Integer Тип платежа, доступные значения:
  • 1 - полная предоплата;
  • 2 - частичная предоплата;
  • 3 - аванс;
  • 4 - полная оплата;
  • 5 - частичная оплата с последующей оплатой в кредит;
  • 6 - без оплаты с последующей оплатой в кредит;
  • 7 - оплата с последующей оплатой в кредит.
Обязательно

paymentObject Integer Объект платежа, доступные значения:
  • 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) значения по умолчанию
Условие

nomenclature String Код товарной номенклатуры в шестнадцатеричном представлении с пробелами. Максимальная длина – 32 байта. Обязательно, если передано markQuantity.
Необязательно

markQuantity Object Дробное количество маркируемого товара. См. вложенные параметры.
Необязательно

userData String [1..64] Значение реквизита пользователя. Можно передавать только после согласования с ФНС.
Необязательно

agent_info Object Объект с данными о платежном агенте для товарной позиции.
Условие*

agent_info.type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

agent_info.paying Object Объект с данными о платежном агенте.
Необязательно

agent_info.paying.operation String [1..24] Название транзакции платежного агента.
Необязательно

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

agent_info.paymentsOperator Object Объект с информацией об операторе по приему платежей.
Необязательно

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

agent_info.MTOperator Object Объект с данными об Операторе перевода.
Необязательно

agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
Необязательно

agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
Необязательно

agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
Необязательно

supplier_info Object Объект с данными о поставщике для товарной позиции.
Необязательно

supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

supplier_info.name String Наименование поставщика.
Необязательно

supplier_info.inn String ИНН поставщика

* Обязателен, если передается agent_info.

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

Обязательность Название Тип Описание
Обязательно

numerator String Числитель дробной части объекта платежа.
Обязательно

denominator String Знаменатель дробной части объекта платежа.

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

Обязательность Название Тип Описание
Необязательно

agent_info.type Integer Тип агента, доступные значения:
  • 1 - банковский платежный агент;
  • 2 - банковский платежный субагент;
  • 3 - платежный агент;
  • 4 - платежный субагент;
  • 5 - поверенный;
  • 6 - комиссионер;
  • 7 - иной агент.
Необязательно

agent_info.paying.operation String [1..24] Название транзакции платежного агента.
Необязательно

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

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

agent_info.MTOperator.address String [1..256] Адрес оператора перевода.
Необязательно

agent_info.MTOperator.inn String [10..12] ИНН оператора перевода.
Необязательно

agent_info.MTOperator.name String [1..256] Наименование оператора перевода.
Необязательно

agent_info.MTOperator.phones Array of strings Массив телефонных номеров оператора перевода в формате +N.
Необязательно

supplier_info.phones Array of strings Массив телефонных номеров поставщика в формате +N.
Необязательно

cashier String [1..256] Имя кассира.
Необязательно

additional_check_props String [1..16] Дополнительные свойства чека.
Необязательно

additional_user_props.name String [1..24] Название дополнительного свойства пользователя
Необязательно

additional_user_props.value String [1..24] Значение дополнительного свойства пользователя
Необязательно

cashier_inn String [10..12] ИНН кассира.
Необязательно

client.address String [1..256] Адрес клиента.
Необязательно

client.birth_date String [10] Дата рождения клиента в формате дд.мм.гггг.
Необязательно

client.citizenship String [3] Цифровой код страны, гражданином которой является покупатель (клиент).
Необязательно

client.document_code String [2] Цифровой код вида документа, удостоверяющего личность (например, 21 - паспорт гражданина РФ).
Необязательно

client.passport_number String [11] Серия и номер паспорта плательщика.
Необязательно

client.email String [1..64] Электронная почта плательщика. Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.phone String [19] Телефон покупателя. Вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» следует передавать как «+37121234567»). Обязательно заполнение строго одного из полей: электронная почта или телефон.
Необязательно

client.inn String [12] ИНН клиента.
Необязательно

client.name String [1..256] Имя клиента.
Необязательно

operatingcheckprops.name String Идентификатор транзакции. Принимает значения "0" до тех пор, пока не будет определено значение реквизита ФНС России.
Необязательно

operatingcheckprops.timestamp String [1..19] Дата и время операции в формате: дд.мм.гггг ЧЧ:ММ:СС.
Необязательно

operatingcheckprops.value String [1..64] Данные транзакции.
Необязательно

sectoralcheckprops.date String [10] Дата принятия нормативного акта федерального органа исполнительной власти, регулирующего порядок заполнения "значения отраслевого реквизита", в формате: дд.мм.гггг.
Необязательно

sectoralcheckprops.federalid String Идентификатор федерального органа исполнительной власти. Должен принимать одно из значений из справочника федеральных органов исполнительной власти.
Необязательно

sectoralcheckprops.number String [32] Номер нормативного акта федерального органа исполнительной власти, регламентирующего порядок заполнения реквизита «значение отраслевого реквизита»
Необязательно

sectoralcheckprops.value String [1..256] Состав значений, определенных нормативным актом федерального органа исполнительной власти
Условие

company.automat_number String Номер автомата.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга и транспорта;
  • Формат фискальных документов 1.2 – для вендинга и транспорта.
Условие

company.location String Адрес для выставления счета.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.
Условие

company.payment_address String Адрес для получения счетов.
Условия обязательной передачи параметров:
  • Формат фискальных документов 1.05 – для вендинга, транспорта, курьеров.
  • Формат фискальных документов 1.2 – для вендинга, транспорта, курьеров.

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

Обязательность Название Тип Описание
Обязательно

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

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

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

Обязательность Название Тип Описание
Обязательно

orderNumber String [1..32] Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
Необязательно

redirectUrl String [1..512] Адрес для перенаправления клиента.
Условие

acsUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. URL-адрес для редиректа на ACS. Обязательный, если нужен редирект на ACS. Подробнее см. Редирект на ACS.
Условие

paReq String [1..255] При успешном ответе в случае оплаты 3D-Secure. PAReq (Payment Authentication Request) — сообщение, которое необходимо отправить в ACS вместе с редиректом. Это сообщение содержит данные в кодировке Base64, необходимые для аутентификации держателя карты. Подробнее см. Редирект на ACS.
Условие

termUrl String [1..512] При успешном ответе в случае оплаты 3D-Secure. Это URL-адрес, на который ACS перенаправляет владельца карты после аутентификации. Подробнее см. Редирект на ACS.
Необязательно

is3DSVer2 Boolean Возможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS 2.0.
Необязательно

packedCReq String Запакованные данные challenge request. Обязательный, если нужен редирект на ACS. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS.
Необязательно

threeDSMethodDataPacked String Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
Необязательно

threeDSMethodUrl String URL-адрес сервера ACS для сбора данных браузера.
Необязательно

threeDSMethodUrlServer String URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
Необязательно

threeDSServerTransId String Идентификатор транзакции, созданный на сервере 3DS.
Необязательно

threeDSSDKKey String Ключ шифрования данных устройства.

Параметр является обязательным для SDK.

Необязательно

threeDSAcsRefNumber String Справочный номер на ACS.
Необязательно

threeDSAcsSignedContent String Подписанный контент для SDK, контент включает URL-адрес ACS.

Параметр является обязательным для SDK.

Необязательно

threeDSAcsTransactionId String Идентификатор транзакции 3DS в ACS.

Параметр является обязательным для SDK.

Необязательно

threeDSDsTransID String Уникальный идентификатор транзакции внутри МПС.

Параметр является обязательным для SDK.

Необязательно

transactionId String [1..512] Идентификатор операции в платежном шлюзе.

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

Обязательность Название Тип Описание
Обязательно

code Integer [1..3] Код как информационный параметр, сообщающий об ошибке.
Обязательно

description String [1..598] Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю.
Обязательно

message String [1..512] Информационный параметр, являющийся описанием ошибки для отображения пользователю. Параметр может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.

Примеры

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

curl --location 'https://vtb.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": "eyJzaWdu...yVDA0WjY2ST1cIn0ifQ==",
"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://vtb.rbsuat.com/payment/yandex/instantPayment.do' \
--header 'Content-Type: application/json' \
--data '{
    "username": "test-user",
    "password": "test-password",
    "paymentToken": "eyJzaWdu...yVDA0WjY2ST1cIn0ifQ==",
    "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"
    }
}
Категории:
eCommerce API V1
Категории
Результаты поиска