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

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

OCT транзакции

Общая информация об OCT

OCT (Original Credit Transaction) – особый вид транзакций по зачислению денежных средств получателю в режиме реального времени.

Для всех OCT транзакций действуют правила:

Сценарий проведения OCT транзакции

sequenceDiagram participant C as Клиент participant OS as Интернет-магазин participant PG as Платежный шлюз C ->> OS: 1. Формирование заказа OS ->> PG: 2. Регистрация заказа PG -->> OS: 3. orderId, formUrl OS -->> C: 4. Перенаправление на форму сбора карточных данных C ->> PG: 5. Отправка данных в заполненной форме PG ->> PG: 6. Перевод средств PG -->> C: 7. Перенаправление клиента в интернет-магазин C ->> OS: 8. Получение страницы с результатом OS ->> PG: 9. Проверка статуса PG -->> OS: 10. Статус заказа OS -->> C: 11. Отображение результата
  1. Держатель карты (клиент) взаимодействует с интернет-магазином для создания заказа.
  2. Система интернет-магазина регистрирует заказ в Платежном шлюзе через registerP2P.do. Используемые параметры регистрации включают сумму перевода, валюту, номер заказа в системе продавца и URL возврата для клиента.
  3. Платежный шлюз в ответ на запрос регистрации возвращает уникальный идентификатор заказа в платежной системе и URL для перенаправления клиента на форму сбора карточных данных.
  4. Система интернет-магазина передает URL-адрес перенаправления, полученный на Шаге 3, браузеру клиента.
  5. Клиент заполняет форму, и данные отправляются на сервер платежного шлюза.
  6. Платежный шлюз осуществляет перевод средств через performP2P.do.
  7. Когда деньги переведены, платежный шлюз отправляет обратный URL-адрес в веб-браузер клиента (URL-адрес был указан при регистрации заказа интернет-магазином на Шаге 2).
  8. Веб-браузер клиента запрашивает результаты перевода денег из интернет-магазина.
  9. Система интернет-магазина запрашивает информацию о статусе заказа у платежного шлюза – getP2PStatus.do.
  10. Платежный шлюз возвращает статус заказа.
  11. Система интернет-магазина показывает клиенту результат оплаты.

API-вызовы

Для OCT интеграций необходимо, чтобы вызовы API были подписаны. Информацию о подписи запросов можно найти в нашем Руководстве по API.

Регистрация заказа P2P

Для оформления заказа на перевод денег с карты на карту используйте запрос https://abby.rbsuat.com/payment/rest/api/p2p/registerP2P.do.


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

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
ОбязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
ОбязательноamountInteger [0..12]Сумма платежа в минимальных единицах валюты (например, в копейках).
ОбязательноcurrencyString [3]Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
ОбязательноreturnUrlString [1..512]Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://abby.rbsuat.com/payment/<merchant_address>.
НеобязательноfailUrlString [1..512]Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://mybestmerchantreturnurl.com вместо mybestmerchantreturnurl.com). В противном случае пользователь будет перенаправлен по адресу следующего вида: https://abby.rbsuat.com/payment/<merchant_address>.
НеобязательноorderDescriptionString [1..600]Описание заказа передаваемое платежному шлюзу при регистрации.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
НеобязательноlanguageString [2]Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru,en,by,pl.
НеобязательноclientIdString [0..255]Номер клиента (ID) в системе мерчанта — до 255 символов. Используется для реализации функциональности связок. Может возвращаться в ответе, если мерчанту разрешено создавать связки.
Указание этого параметра при обработке платежей по связке обязательно. В противном случае платеж будет невозможен.
НеобязательноmerchantLoginString [1..255]Чтобы зарегистрировать заказ от имени другого мерчанта, укажите его логин (для API-аккаунта) в этом параметре.
Можно использовать, только если у вас есть разрешение на просмотр транзакций других продавцов или если указанный продавец является вашим дочерним продавцом.
НеобязательноdynamicCallbackUrlString [1..512]Параметр для передачи динамического адреса для получения "платежных" callback-уведомлений по заказу, активированных для мерчанта (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).
"Не платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.
НеобязательноsessionTimeoutSecsInteger [1..9]Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта, или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
НеобязательноsessionExpiredDateStringДата и время истечения срока действия заказа. Формат: yyyy-MM-ddTHH:mm:ss.
Если этот параметр не передается в запросе, то для определения времени истечения срока действия заказа используется параметр sessionTimeoutSecs.
НеобязательноbindingIdString [1..255]Идентификатор уже существующей связки (идентификатор карты, токенизированной шлюзом). Его можно использовать, только если у мерчанта есть разрешение на работу со связками. Если этот параметр передается в этом запросе, это означает, что:
  • Этот заказ можно оплатить только с помощью связки;
  • Плательщик будет перенаправлен на страницу оплаты, где требуется только ввод CVC.
В запросе необходимо передать или bindingId, или seToken.
НеобязательноcreditBindingIdString [0..255]Идентификатор связки карты для зачисления. Используется при переводах с карты на карту, когда заранее известна карта получателя. Этот параметр нужно сначала передать в запросе на регистрацию платежа (registerP2P.do - здесь же должен быть передан параметр clientId), затем в запросе на перевод средств по cвязке (performP2PByBinding.do - значение параметра creditBindingId, переданного в registerP2P.do, должно быть передано в параметре bindingId в блоке toCard).
ОбязательноtransactionTypeIndicatorStringИспользуется в однонаправленных типах транзакций.
Возможны такие значения:
  • A – Перевод с карты на карту одного владельца (со счета на счет)
  • B – Перевод с целью приобретения криптовалюты
  • C – Перевод для целей покупки криптовалюты
  • D – Выплата средств
  • F – Перевод для ставок по азартным играм
  • G – Выплата в азартных играх онлайн
  • H – Вывод средств (Cash Out). Вывод средств агентом.
  • I – Государственные выплаты
  • J – Денежный перевод, инициированный банком
  • L – Перевод для целей погашения счетов по кредитной карте
  • O – Перевод для целей оплаты задолженности
  • P – Перевод с карты на карту разных владельцев
  • W – Перевод на собственный счет поэтапного цифрового кошелька для оплаты
ОбязательноfeaturesObjectКонтейнер для параметра feature, обязателен для однонаправленных операций.
Если выполняется операция OCT (перевод со счета на карту) - в параметре feature должно быть передано WITHOUT_FROM_CARD.
Пример: "features" : { "feature" : ["WITHOUT_FROM_CARD"] }
НеобязательноparamsObjectПоля дополнительной информации для последующего хранения, передаются в следующем виде:
"params": [ {"name": "param1", "value": "value1"}, {"name": "param2", "value": "value2"} ].
Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах банка.
НеобязательноshippingPayerDataObjectОбъект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноpreOrderPayerDataObjectОбъект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноorderPayerDataObjectОбъект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноbillingAndShippingAddressMatchIndicatorString [1]Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.
УсловиеbillingPayerDataObjectБлок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязателен, если функция включена для продавца на стороне Платежного шлюза. Должен был включен либо в запрос registerP2P.do, либо в запрос performP2P.do. См. вложенные параметры.
НеобязательноdebitMdOrderString [1..36]Уникальный номер заказа, для которого был выполнен перевод AFT в iPay. Этот параметр используется для операций OCT при P2P-переводах (AFT+OCT).

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

ОбязательностьНазваниеТипОписание
НеобязательноshippingCityString [1..50]Город заказчика (из адреса доставки)
НеобязательноshippingCountryString [1..50]Страна заказчика
НеобязательноshippingAddressLine1String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingAddressLine2String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingAddressLine3String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingPostalCodeString [1..16]Почтовый индекс клиента для доставки
НеобязательноshippingStateString [1..50]Штат/регион покупателя (из адреса доставки)
НеобязательноshippingMethodIndicatorInteger [2]Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
НеобязательноdeliveryTimeframeInteger [2]Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
НеобязательноdeliveryEmail String [1..254]Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

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

ОбязательностьНазваниеТипОписание
НеобязательноpreOrderDateString [10]Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
НеобязательноpreOrderPurchaseIndInteger [2]Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
НеобязательноreorderItemsIndInteger [2]Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

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

ОбязательностьНазваниеТипОписание
НеобязательноhomePhoneString [7..15]Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
НеобязательноworkPhoneString [7..15]Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
НеобязательноmobilePhoneString [7..15]Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Ниже приведены параметры блока 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 код штата/региона.

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

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноformUrlString [1..512]URL платежной формы, на которую будет перенаправлен покупатель. URL не возвращается, если регистрация заказа не прошла из-за ошибки, указанной в errorCode.
НеобязательноorderIdString [1..36]Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
НеобязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.

Примеры

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

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/registerP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "amount" : 50000,
  "currency" : "933",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "orderNumber": "12",
  "clientId": "122313",
  "transactionTypeIndicator": "A",
  "features":{
      "feature":["WITHOUT_FROM_CARD"]
   }
}'

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

{
  "errorCode": 0,
  "errorMessage": "Successful",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "formUrl": "https://abby.rbsuat.com/payment/merchants/ecom/payment.html?mdOrder=0a4eaae8-653a-71a9-8259-46fc00a8ea58&language=en",
  "orderNumber": "2009"
}

Сумма комиссии

Для получения суммы комиссии за денежный перевод используйте запрос https://abby.rbsuat.com/payment/rest/api/p2p/verifyP2P.do.

Структура запроса предполагает наличие блока toCard для передачи атрибутов карты для зачисления.


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

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
ОбязательноorderIdString [1..36]Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
НеобязательноlanguageString [2]Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru,en,by,pl.
НеобязательноamountString [0..12]Сумма перевода в минимальных единицах валюты (например, в копейках).
Этот параметр передается, если плательщик решит изменить сумму перевода при осуществлении денежного перевода.
НеобязательноbillingPayerDataObjectБлок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязателен, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
ОбязательноtoCardObjectБлок с атриубутами карты начисления. См. вложенные параметры.

Блок toCard включает в себя следующие параметры:

ОбязательностьНазваниеТипОписание
УсловиеpanString [1..19]Номер карты для зачисления денежных средств.
НеобязательноexpirationYearInteger [4]Год истечения действия карты зачисления. Принимаются значения от 2000 до 2200.
НеобязательноexpirationMonthInteger [2]Месяц истечения действия карты зачисления. Доступные значения: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
НеобязательноcardholderNameString [1..26]Имя держателя карты зачисления.
УсловиеseTokenStringЗашифрованные данные карты.
Обязательно, если используется вместо данных карты. Обязательные параметры для строки seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Подробнее о генерации seToken см. здесь.

Ниже приведены параметры блока 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 код штата/региона.

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

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.

Блок feeDescriptionList включает в себя следующие параметры:

ОбязательностьНазваниеТипОписание
НеобязательноfeeAmountInteger [1..12]Сумма комиссии.
НеобязательноfeeCurrencyString [3]Код валюты платежа ISO 4217.
НеобязательноfeeDescriptionString [1..512]Описание комиссии.

Примеры

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

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/verifyP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "toCard": {
    "pan": "4000001111111118"
  },	
  "amount" : 50000
}'

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

{
  "errorCode": 0,
  "errorMessage": "Successful",
  "feeDescriptionList: [ {
    "feeAmount": 500,
	"feeCurrency": "933",
	"feeDescription": "Acquirer fee"
  } ]
}

Комиссия за P2P перевод по связке

Для получения суммы комиссии при переводе средств по связке используйте запрос https://abby.rbsuat.com/payment/rest/api/p2p/verifyP2PByBinding.do.


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

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
НеобязательноlanguageString [2]Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru,en,by,pl.
ОбязательноorderIdString [1..36]Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
ОбязательноtoCardObjectБлок с атрибутами карты начисления. См. вложенные параметры.

Блок toCard включает в себя следующие параметры:

ОбязательностьНазваниеТипОписание
УсловиеbindingIdString [1..255]Идентификатор связки, созданной при оплате заказа или использованной для оплаты. Доступно, только если продавцу разрешено создавать связки.
УсловиеpanString [1..19]Номер карты для зачисления денежных средств.
НеобязательноexpirationYearInteger [4]Год истечения действия карты зачисления. Принимаются значения от 2000 до 2200.
НеобязательноexpirationMonthInteger [2]Месяц истечения действия карты зачисления. Доступные значения: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
НеобязательноcardholderNameString [1..26]Имя держателя карты зачисления.
УсловиеseTokenStringЗашифрованные данные карты.
Обязательно, если используется вместо данных карты. Обязательные параметры для строки seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Подробнее о генерации seToken см. здесь.

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

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноfeeAmountInteger [1..12]Сумма комиссии.
НеобязательноfeeCurrencyString [3]Код валюты платежа ISO 4217.
НеобязательноfeeDescriptionString [1..512]Описание комиссии.

Примеры

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

curl --location --request POST 'https://abby.rbsuat.com/payment/rest/api/p2p/verifyP2PByBinding.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderId": "fa71bf70-7c81-484e-a6fc-7db7e4283b2a",
    "bindingId": "4d792471-cee0-742c-922d-a265072e6148",
	"toCard": {
        "cardholderName": "IVAN IVANOV",
        "cvc": "123",
        "expirationMonth": 12,
        "expirationYear": 2024,
        "pan": "5555555555555599"
    },
	"amount": 1000,
    "currency": "933",
    "clientId": "123"
    }
}'

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

{
  "errorCode" : 0,
  "errorMessage" : "Successful",
  "feeDescriptionList" : [ {
    "feeAmount" : 10,
    "feeCurrency" : "933",
    "feeDescription" : "Acquirer fee"
  } ]
}

P2P перевод

Для осуществления денежного перевода с карты на карту используйте запрос https://abby.rbsuat.com/payment/rest/api/p2p/performP2P.do.


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

Структура запроса performP2P.do предполагает наличие блока fromCard для передачи атрибутов карты для списания и блока toCard для передачи атрибутов карты для зачисления. В зависимости от бизнес-процессов, определённых для банка и магазина, при проведение перевода с карты на карту могут быть возможны следующие варианты.

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
НеобязательноlanguageString [2]Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru,en,by,pl.
ОбязательноorderIdString [1..36]Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
НеобязательноipString [1..39]IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
НеобязательноemailString [1..64]Электронная почта плательщика.
НеобязательноamountString [0..12]Сумма перевода в минимальных единицах валюты (например, в копейках).
Этот параметр передается, если плательщик решит изменить сумму перевода при осуществлении денежного перевода.
НеобязательноtypeStringВ случае денежного перевода с данными только по одной карте необходимо передать в этом параметре соответствующее значение:
НеобязательноamountInputInteger [0..12]Сумма перевода в минимальных единицах валюты (например, в копейках). Если в этом параметре указана сумма, перевод будет осуществлен на эту сумму (независимо от суммы, переданной в запросе на оформление заказа).
НеобязательноcaptchaStringCAPTCHA (текст, предназначенный для того, чтобы отличать человеческий ввод от машинного)
НеобязательноthreeDSSDKBooleanВозможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
НеобязательноthreeDSSDKEncDataStringЗашифрованные данные об устройстве. Параметр является обязательным для SDK.
НеобязательноthreeDSSDKReferenceNumberStringОфициальный идентификатор 3DS2 SDK
НеобязательноthreeDSSDKEphemPubKeyStringПубличная часть эфемерного ключа. Требуется для установки сеанса с ACS. Параметр является обязательным для SDK.
НеобязательноthreeDSSDKAppIdStringУникальный идентификатор SDK. Параметр является обязательным для SDK.
НеобязательноthreeDSSDKTransIdStringУникальный идентификатор транзакции в SDK. Параметр является обязательным для SDK.
НеобязательноthreeDSMethodNotificationUrlString [1..512]URL-адрес для отправки уведомления о прохождении проверки на ACS.
УсловиеthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSVer2FinishUrlString [1..512]URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
УсловиеthreeDSVer2MdOrderString [1..36]Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS2 операции. Обязателен для аутентификации 3DS.
Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.
НеобязательноbindingNotNeededBooleanДопустимые значения:
  • true- создание связки после совершения платежа отключено (связка – это идентификатор клиента, переданный в запросе на регистрацию заказа, который после запроса оплаты будет удален из деталей заказа);
  • false – в случае успешной оплаты может быть создана связка (при соблюдении необходимых условий). Это значение по умолчанию.
УсловиеoriginalPaymentNetRefNumStringИдентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
УсловиеtiiStringИдентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант).
Обязательно для операций AFT и перевода с использованием связки в блоке fromCard или собственной связки мерчанта.
Для операций OCT этот параметр не передается.
Возможные значения
ОбязательноparamsObjectПоля дополнительной информации для последующего хранения, передаются в следующем виде: {"param":"value","param2":"value2"}.
Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах банка.
По умолчанию передаются orderNumber (номер заказа) и orderDescription (описание заказа).orderDescription не должно превышать 99 символов, не используйте следующие символы: %, +, возврат каретки \r и перевод строки \n).
Чтобы включить эту функциональность, обратитесь в банк.

В объекте params запроса на перевод денег с карты на карту могут быть переданы следующие данные клиента (формат значений зависит от используемого метода обработки данных):
  • В параметре payerName - имя отправителя денег.
  • В параметре payerAddress - адрес отправителя.
  • В параметре payerCity - город отправителя.
  • В параметре payerCountry - страна отправителя в виде кода ISO 3166-1 alpha-3 (трехбуквенный код).
  • В параметре payerPostalCode - почтовый индекс отправителя.
  • В параметре payerState - регион отправителя.
Для платежной системы Visa в запросе на перевод денег с карты на карту также необходимо передать в параметре params следующую информацию (формат значений определяется используемым методом обработки данных):
  • В параметре recipientName - имя получателя денег.

При необходимости обратитесь в команду поддержки для указания постоянных значений параметров payer* и recipientName, чтобы не передавать их каждый раз во всех запросах.
НеобязательноshippingPayerDataObjectОбъект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноpreOrderPayerDataObjectОбъект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноorderPayerDataObjectОбъект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
УсловиеbillingPayerDataObjectБлок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязателен, если функция включена для продавца на стороне Платежного шлюза. Должен был включен либо в запрос registerP2P.do, либо в запрос performP2P.do. См. вложенные параметры.
ОбязательноtoCardObjectБлок с атрибутами карты начисления. См. вложенные параметры.
УсловиеdebitTransactionReferenceString [1..19]Ссылка на операцию AFT. Этот параметр используется для операций OCT для P2P-переводов (AFT+OCT) с использованием Mastercard. Он заполняется параметром statusResponse.debitTransactionReference из соответствующей транзакции AFT. Обязательно, если ранее был выполнен Mastercard Money Funding Payment и был сформирован и отправлен Unique Transaction Reference.
НеобязательноtransactionPurposeStringЦель транзакции (используется для транзакций OCT с использованием Mastercard). Возможные значения:
  • FAMILY_SUPPORT или 0
  • REGULAR_LABOR_TRA или 1
  • TRAVEL_AND_TOURISM или 2
  • EDUCATION или 3
  • HOSPITALIZATION или 4
  • EMERGENCY_NEED или 5
  • SAVING или 6
  • GIFTS или 7
  • OTHER или 8
  • SALARY или 9
  • CROWD_LENDING или 10
  • CRYPTO_CURRENCY или 11
  • REFUND_ORIGINAL или 12
  • REFUND_NEW_CARD или 13
  • TRANSFER_SAME_WAL или 14
  • BOLETO_PAYMENT или 15
  • HIGH_RISK_SECURITY или 16
  • RECYCLING_DEPOSIT_RETURN или 17
  • VALUE_ADDED_TAX или 18
НеобязательноserviceProcessingTypeStringТип сервиса процессинга (используется для транзакций OCT с использованием Visa). Сервисный флаг, который указывает системе Visa, как обрабатывать транзакцию на уровне процессинга. Возможные значения:
  • NORMAL или 00
  • ORIG_HOLD или 01
  • VISA_DEFERRED_DEFAULT или 02
  • VISA_DEFERRED_CUSTOM или 03
  • CANCEL_DEFERRED или 09
  • VISA_DIRECT_CUSTOM или 0I
  • DEFERRED_OCT_QUERY или 0Q
  • REC_PAYOUT или 0R
  • ALIAS_DIRECTORY или A0

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

Значение tiiОписаниеТип транзакцииИнициатор транзакцииДанные карты для транзакцииДанные карты сохраняются после транзакцииКомментарий
CIИнициирующий - Обычный (CIT)ИнициирующаяПокупательВводится покупателемДаТранзакция электронной коммерции с сохранением связки.
FВнеплановый платеж (CIT)ПоследующаяПокупательКлиент выбирает карту вместо ручного вводаНетТранзакция электронной коммерции, использующая ранее сохраненную обычную связку.

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

ОбязательностьНазваниеТипОписание
НеобязательноshippingCityString [1..50]Город заказчика (из адреса доставки)
НеобязательноshippingCountryString [1..50]Страна заказчика
НеобязательноshippingAddressLine1String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingAddressLine2String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingAddressLine3String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingPostalCodeString [1..16]Почтовый индекс клиента для доставки
НеобязательноshippingStateString [1..50]Штат/регион покупателя (из адреса доставки)
НеобязательноshippingMethodIndicatorInteger [2]Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
НеобязательноdeliveryTimeframeInteger [2]Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
НеобязательноdeliveryEmail String [1..254]Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

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

ОбязательностьНазваниеТипОписание
НеобязательноpreOrderDateString [10]Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
НеобязательноpreOrderPurchaseIndInteger [2]Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
НеобязательноreorderItemsIndInteger [2]Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

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

ОбязательностьНазваниеТипОписание
НеобязательноhomePhoneString [7..15]Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
НеобязательноworkPhoneString [7..15]Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
НеобязательноmobilePhoneString [7..15]Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Ниже приведены параметры блока 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 код штата/региона.

Блок toCard включает в себя следующие параметры:

ОбязательностьНазваниеТипОписание
УсловиеpanString [1..19]Номер карты для зачисления денежных средств.
НеобязательноexpirationYearInteger [4]Год истечения действия карты зачисления. Принимаются значения от 2000 до 2200.
НеобязательноexpirationMonthInteger [2]Месяц истечения действия карты зачисления. Доступные значения: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
НеобязательноcardholderNameString [1..26]Имя держателя карты зачисления.
УсловиеseTokenStringЗашифрованные данные карты.
Обязательно, если используется вместо данных карты. Обязательные параметры для строки seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Подробнее о генерации seToken см. здесь.

Данные для замены отправителя OCT перевода

В некоторых случаях для OCT транзакций по карте "МИР" запрос включает в себя блок fromCard с вложенным блоком replacementData с данными для замены отправителя перевода. Он содержит номер счета и номер карты отправителя. Платежная система "МИР" требует передачи этих данных в OCT транзакциях.
Для использования этого блока мерчанту необходимо иметь специальное разрешение (уточните у команды поддержки).

Ниже перечислены параметры блока replacementData (данные для замены отправителя в OCT транзакциях):

ОбязательностьНазваниеТипОписание
НеобязательноcardString [1..19]Номер карты отправителя.
УсловиеaccountString [1..20]Номер счета отправителя. Обязательно при переводе со счета физического лица на карту "МИР" физического лица (A2C, Account-to-Card).

При аутентификации по протоколу 3DS2 также передаются следующие параметры:

ОбязательностьНазваниеТипОписание
НеобязательноthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSVer2FinishUrlString [1..512]URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
НеобязательноthreeDSMethodNotificationUrlString [1..512]URL-адрес для отправки уведомления о прохождении проверки на ACS.

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

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
НеобязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноinfoStringРезультат попытки перевода средств.

Значение в случае успешного перевода: "Ваш платеж обработан, происходит переадресация..."

Значение в случае ошибки: "Происходит переадресация..."
Условие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 для завершения платежа.
НеобязательноoriginalPaymentNetRefNumStringИдентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
УсловиеmcTransactionReferenceString [1..19]Идентификатор AFT транзакции по карте Mastercard. Применимо (и обязательно) только для Mastercard.
УсловиеstatusResponseObjectПараметры статуса ответа. Этот блок возвращается, только если у вас включена соответствующая настройка. Для включения этой функциональности, обратитесь в техническую поддержку. См. вложенные параметры.
НеобязательноdebitTransactionReferenceString [1..19]Ссылка на операцию AFT. Этот параметр используется для операций OCT для P2P-переводов (AFT+OCT) с использованием Mastercard. Он автоматически заполняется параметром statusResponse.debitTransactionReference из соответствующей транзакции AFT (автоматически сгенерированной платежным шлюзом) или соответствующим параметром, полученным в запросе OCT.

При аутентификации по протоколу 3DS2 в ответ на первый запрос приходят следующие параметры:

ОбязательностьНазваниеТипОписание
Обязательноis3DSVer2BooleanВозможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
ОбязательноthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSMethodUrlString [1..512]URL-адрес сервера ACS для сбора данных браузера.
ОбязательноthreeDSMethodUrlServerString [1..512]URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
НеобязательноthreeDSMethodDataPackedString [1..1024]Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
НеобязательноthreeDSMethodURLServerDirectString [1..512]URL-адрес 3dsmethod.do для выполнения метода 3DS на сервере 3DS через платежный шлюз (при наличии соответствующего разрешения на уровне продавца).

Ниже приведены параметры, которые должны присутствовать в ответе, после повторного запроса платежа и необходимости перенаправления клиента в ACS при аутентификации по протоколу 3DS2:

ОбязательностьНазваниеТипОписание
УсловиеacsUrlString [1..512]URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
УсловиеpackedCReqStringЗапакованные данные challenge request. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS. Подробнее см. Редирект на ACS.

Параметры блока statusResponse:

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноorderStatusIntegerЗначение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 2 - проведена полная авторизация суммы заказа;
  • 3 - авторизация отменена;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
НеобязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
НеобязательноpanMaskedFromString [1..19]Маскированный номер карты для списания средств.
НеобязательноpanMaskedToString [1..19]Маскированный номер карты для зачисления средств.
НеобязательноamountInteger [0..12]Сумма платежа в минимальных единицах валюты (например, в копейках).
НеобязательноcurrencyString [3]Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
НеобязательноcreationDateIntegerДата регистрации заказа.
НеобязательноorderDescriptionString [1..600]Описание заказа передаваемое платежному шлюзу при регистрации.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
НеобязательноipString [1..39]IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
ОбязательноresultCodeIntegerКод ошибки при выполнении запроса. Возможные значения:
  • 0 - в случае успеха;
  • 1 - в случае ошибки.
НеобязательноorderParamsObjectОбъект с мерчантскими атрибутами заказа. В ответе может быть представлено более одного блока orderParams.
Объект должен передаваться следующим образом: {"param":"value","param2":"value2"}.
НеобязательноoperationListObjectОбъект, содержащий информацию о транзакциях, завершенных в заказе. В ответе может присутствовать более одного блока operationList.
Параметры, которые можно передать, описаны ниже.
НеобязательноbindingStringИдентификатор связки (если она уже была создана). Этот параметр возвращается, только если версия getP2PStatus равна 3 или выше.

Для завершения транзакции используйте метод /p2p/finishThreeDsVer2.do.

Примеры

Пример первого запроса в случае аутентификации по протоколу 3DS2

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "amount" : "50000",
  "fromCard": {
    "vendor": "APPLE",
    "paymentToken": "eyJtZXJjaGFudCI6ICJ...FnXCJ9In0=",
    "decryptedToken":true,
    "protocolVersion":"ECv1"
  },
  "toCard" : {
    "pan" : "4111111111111111"
  },
  "params" : [
        {"name" : "recipientName", "Name" : "Surname"},
        {"name" : "payerName", "value" : "Name1 Surname1"},
        {"name" : "payerCity", "value" : "City"},
        {"name" : "payerCountry", "value" : "Country"},
        {"name" : "payerPostalCode", "value" : "777777"},
        {"name" : "payerState", "value" : "State"},
        {"name" : "payerAddress", "value" : "street, 18"]
  },		
  
}'

Пример второго запроса в случае аутентификации по протоколу 3DS2

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "fromCard": {
    "cardholderName": "TEST CARDHOLDER",
	"cvc": "123",
	"expirationMonth": 12,
	"expirationYear": 2030,
	"pan": "5000001111111115"
  },
  "toCard": {
    "pan": "4000001111111118"
  },	
  "amount" : 50000,
  "params" : [
        {"name" : "recipientName", "Name" : "Surname"},
        {"name" : "payerName", "value" : "Name1 Surname1"},
        {"name" : "payerCity", "value" : "City"},
        {"name" : "payerCountry", "value" : "Country"},
        {"name" : "payerPostalCode", "value" : "777777"},
        {"name" : "payerState", "value" : "State"},
        {"name" : "payerAddress", "value" : "street, 18"
  "threeDSServerTransId" : "3afc168a-94b4-4eb3-8e2e-80f6c186669d",
  "threeDSVer2FinishUrl" : "https://example.com/acs2/acs/3dsMethod"
}'

Пример запроса AFT перевода

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
    "fromCard": {
        "cardholderName": "TEST CARDHOLDER",
        "cvc": "123",
        "expirationMonth": 12,
        "expirationYear": 2030,
        "pan": "5000001111111115"
    },
    "amountInput": "1000025",
    "type": "STANDARD"
}'

Пример ответа на первый запрос в случае аутентификации по протоколу 3DS2

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "3afc168a-94b4-4eb3-8e2e-80f6c186669d",
  "threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
  "threeDSMethodURLServer": "https://example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=3afc168a-94b4-4eb3-8e2e-80f6c186669d",
  "threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9hY3F1aXJlci5jb20vM2Rzc2VydmVyL2FwaS92MS9hY3Mvbm90aWZpY2F0aW9uP3RocmVlRFNTZXJ2ZXJUcmFuc0lEPTNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiM2FmYzE2OGEtOTRiNC00ZWIzLThlMmUtODBmNmMxODY2NjlkIn0="
}

Пример ответа на второй запрос в случае аутентификации по протоколу 3DS2

{
  "errorCode": 0,
  "info": "Your order is proceeded, redirecting...",
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

P2P перевод по связке

Чтобы выполнить перевод с карты на карту с помощью связки, используйте запрос https://abby.rbsuat.com/payment/rest/api/p2p/performP2PByBinding.do.


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

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
НеобязательноlanguageString [2]Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru,en,by,pl.
НеобязательноipString [1..39]IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
НеобязательноemailString [1..64]Электронная почта для отображения на платежной странице. Если для продавца настроены уведомления клиента, электронную почту необходимо указать. Пример: client_mail@email.com.
Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты.
НеобязательноtypeStringВ случае денежного перевода с данными только по одной карте необходимо передать в этом параметре соответствующее значение:
WITHOUT_FROM_CARD - без указания карты для списания средств.
ОбязательноorderIdString [1..36]Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
НеобязательноamountInputInteger [0..12]Сумма перевода в минимальных единицах валюты (например, в копейках). Если в этом параметре указана сумма, перевод будет осуществлен на эту сумму (независимо от суммы, переданной в запросе на оформление заказа).
НеобязательноamountInputInteger [0..12]Сумма перевода в минимальных единицах валюты (например, в копейках). Если в этом параметре указана сумма, перевод будет осуществлен на эту сумму (независимо от суммы, переданной в запросе на оформление заказа).
НеобязательноcaptchaStringCAPTCHA (текст, предназначенный для того, чтобы отличать человеческий ввод от машинного)
НеобязательноthreeDSSDKBooleanВозможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS SDK.
НеобязательноthreeDSSDKEncDataStringЗашифрованные данные об устройстве. Параметр является обязательным для SDK.
НеобязательноthreeDSSDKReferenceNumberStringОфициальный идентификатор 3DS2 SDK
НеобязательноthreeDSSDKEphemPubKeyStringПубличная часть эфемерного ключа. Требуется для установки сеанса с ACS. Параметр является обязательным для SDK.
НеобязательноthreeDSSDKAppIdStringУникальный идентификатор SDK. Параметр является обязательным для SDK.
НеобязательноthreeDSSDKTransIdStringУникальный идентификатор транзакции в SDK. Параметр является обязательным для SDK.
НеобязательноthreeDSMethodNotificationUrlString [1..512]URL-адрес для отправки уведомления о прохождении проверки на ACS.
УсловиеthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSVer2FinishUrlString [1..512]URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
УсловиеthreeDSVer2MdOrderString [1..36]Номер заказа, который был зарегистрирован в первой части запроса в рамках 3DS2 операции. Обязателен для аутентификации 3DS.
Если данный параметр присутствует в запросе, то используется mdOrder, который передается в настоящем параметре. В таком случае регистрация заказа не происходит, а происходит сразу оплата заказа.
Этот параметр передается только при использовании методов мгновенной оплаты, т.е., когда заказ регистрируется и оплачивается в рамках одного запроса.
НеобязательноbindingNotNeededBooleanДопустимые значения:
  • true- создание связки после совершения платежа отключено (связка – это идентификатор клиента, переданный в запросе на регистрацию заказа, который после запроса оплаты будет удален из деталей заказа);
  • false – в случае успешной оплаты может быть создана связка (при соблюдении необходимых условий). Это значение по умолчанию.
УсловиеoriginalPaymentNetRefNumStringИдентификатор оригинальной или предыдущей успешной транзакции в платежной системе по отношению к выполняемой операции по связке - TRN ID. Передается, если значение параметра tii = R,U или F.
Обязателен при использовании связок мерчанта в переводах по связке.
УсловиеtiiStringИдентификатор инициатора транзакции. Параметр, указывающий, какой тип операции будет выполнять инициатор (Клиент или Мерчант).
Обязательно для перевода с использованием связки в блоке fromCard или собственной связки мерчанта.
Возможные значения
НеобязательноparamsObjectПоля дополнительной информации для последующего хранения, передаются в следующем виде: {"param":"value","param2":"value2"}.
Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах банка.
По умолчанию передаются orderNumber (номер заказа) и orderDescription (описание заказа).orderDescription не должно превышать 99 символов, не используйте следующие символы: %, +, возврат каретки \r и перевод строки \n).
Чтобы включить эту функциональность, обратитесь в банк.

В объекте params запроса на перевод денег с карты на карту могут быть переданы следующие данные клиента (формат значений зависит от используемого метода обработки данных):
  • В параметре payerName - имя отправителя денег.
  • В параметре payerAddress - адрес отправителя.
  • В параметре payerCity - город отправителя.
  • В параметре payerCountry - страна отправителя в виде кода ISO 3166-1 alpha-3 (трехбуквенный код).
  • В параметре payerPostalCode - почтовый индекс отправителя.
  • В параметре payerState - регион отправителя.
Для платежной системы Visa в запросе на перевод денег с карты на карту также необходимо передать в параметре params следующую информацию (формат значений определяется используемым методом обработки данных):
  • В параметре recipientName - имя получателя денег.

При необходимости обратитесь в команду поддержки для указания постоянных значений параметров payer* и recipientName, чтобы не передавать их каждый раз во всех запросах.
НеобязательноshippingPayerDataObjectОбъект, содержащий данные о доставке клиенту. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноpreOrderPayerDataObjectОбъект, содержащий данные предварительного заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноorderPayerDataObjectОбъект, содержащий данные о плательщике заказа. Этот параметр используется для дальнейшей 3DS-аутентификации клиента. См. вложенные параметры.
НеобязательноbillingAndShippingAddressMatchIndicatorString [1]Индикатор соответствия платежного адреса владельца карты и адреса доставки. Этот параметр используется для дальнейшей 3DS-аутентификации клиента.
Возможные значения:
  • Y - совпадение платежного адреса держателя карты и адреса доставки;
  • N - платежный адрес владельца карты и адрес доставки не совпадают.
УсловиеbillingPayerDataObjectБлок с регистрационными данными клиента (адрес, почтовый индекс), необходимый для прохождения проверки адреса в рамках сервисов AVS/AVV. Обязателен, если функция включена для продавца на стороне Платежного шлюза. См. вложенные параметры.
ОбязательноtoCardObjectБлок с атриубутами карты начисления. См. вложенные параметры.

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

Значение tiiОписаниеТип транзакцииИнициатор транзакцииДанные карты для транзакцииДанные карты сохраняются после транзакцииКомментарий
CIИнициирующий - Обычный (CIT)ИнициирующаяПокупательВводится покупателемДаТранзакция электронной коммерции с сохранением связки.
FВнеплановый платеж (CIT)ПоследующаяПокупательКлиент выбирает карту вместо ручного вводаНетТранзакция электронной коммерции, использующая ранее сохраненную обычную связку.

Блок toCard включает в себя следующие параметры:

ОбязательностьНазваниеТипОписание
УсловиеbindingIdString [1..255]Идентификатор связки, созданной при оплате заказа или использованной для оплаты. Доступно, только если продавцу разрешено создавать связки.
УсловиеpanString [1..19]Номер карты для зачисления денежных средств.
НеобязательноexpirationYearInteger [4]Год истечения действия карты зачисления. Принимаются значения от 2000 до 2200.
НеобязательноexpirationMonthInteger [2]Месяц истечения действия карты зачисления. Доступные значения: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
НеобязательноcardholderNameString [1..26]Имя держателя карты зачисления.
УсловиеseTokenStringЗашифрованные данные карты.
Обязательно, если используется вместо данных карты. Обязательные параметры для строки seToken: timestamp, UUID, PAN, EXPDATE, MDORDER. Подробнее о генерации seToken см. здесь.

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

ОбязательностьНазваниеТипОписание
НеобязательноshippingCityString [1..50]Город заказчика (из адреса доставки)
НеобязательноshippingCountryString [1..50]Страна заказчика
НеобязательноshippingAddressLine1String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingAddressLine2String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingAddressLine3String [1..50]Основной адрес клиента (из адреса доставки)
НеобязательноshippingPostalCodeString [1..16]Почтовый индекс клиента для доставки
НеобязательноshippingStateString [1..50]Штат/регион покупателя (из адреса доставки)
НеобязательноshippingMethodIndicatorInteger [2]Индикатор способа доставки.
Возможные значения:
  • 01 - доставка на платежный адрес держателя карты.
  • 02 - доставка на другой адрес, проверенный Мерчантом.
  • 03 - доставка по адресу, отличному от основного адреса держателя карты.
  • 04 - отправка в магазин/самовывоз (адрес магазина должен быть указан в соответствующих параметрах доставки)
  • 05 - Цифровое распространение (включает онлайн-сервисы и электронные подарочные карты)
  • 06 - билеты на путешествия и мероприятия, которые нельзя доставить.
  • 07 - Прочее (например, игры, цифровые товары, не подлежащие доставке, цифровые подписки и т. д.)
НеобязательноdeliveryTimeframeInteger [2]Срок поставки товара.
Возможные значения:
  • 01 - цифровая дистрибуция
  • 02 - доставка в тот же день
  • 03 - доставка на следующий день
  • 04 - доставка в течение 2-х дней после оплаты и позже.
НеобязательноdeliveryEmail String [1..254]Целевой адрес электронной почты для доставки цифрового распространения. Предпочтительно передавать электронную почту в самостоятельном параметре запроса email (но если вы передадите его в этом блоке, к нему применятся те же правила).

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

ОбязательностьНазваниеТипОписание
НеобязательноpreOrderDateString [10]Ожидаемая дата доставки (для предзаказанных покупок) в формате ГГГГММДД.
НеобязательноpreOrderPurchaseIndInteger [2]Индикатор размещения клиентом заказа на доступную или будущую доставку.
Возможные значения:
  • 01 - возможна доставка;
  • 02 - будущая доставка
НеобязательноreorderItemsIndInteger [2]Индикатор того, что клиент перебронирует ранее оплаченную доставку в составе нового заказа.
Возможные значения:
  • 01 - заказ размещается впервые;
  • 02 - повторный заказ

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

ОбязательностьНазваниеТипОписание
НеобязательноhomePhoneString [7..15]Домашний телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
НеобязательноworkPhoneString [7..15]Рабочий телефон владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
НеобязательноmobilePhoneString [7..15]Номер мобильного телефона владельца карты. Необходимо всегда указывать код страны, но знак + или 00 в начале можно указать или опустить. Номер должен иметь длину от 7 до 15 цифр. Таким образом, возможны следующие значения:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Для платежей по VISA с 3DS авторизацией необходимо указать либо электронную почту, либо номер телефона владельца карты. Если у вас настроено отображение номера телефона на платежной странице и вы указали неверный номер телефона, клиент сможет исправить его на платежной странице.

Ниже приведены параметры блока 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 код штата/региона.

При аутентификации по протоколу 3DS2 также передаются следующие параметры:

ОбязательноНазваниеТипОписание
НеобязательноthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSVer2FinishUrlString [1..512]URL-адрес, по которому клиент должен быть перенаправлен после аутентификации на сервере ACS.
НеобязательноthreeDSMethodNotificationUrlString [1..512]URL-адрес для отправки уведомления о прохождении проверки на ACS.

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

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноinfoStringРезультат попытки перевода средств.

Значение в случае успешного перевода: "Ваш платеж обработан, происходит переадресация..."

Значение в случае ошибки: "Происходит переадресация..."
Условие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.
УсловиеstatusResponseObjectПараметры статуса ответа. Этот блок возвращается, только если у вас включена соответствующая настройка. Для включения этой функциональности, обратитесь в техническую поддержку. См. вложенные параметры.

При аутентификации по протоколу 3DS2 в ответ на первый запрос приходят следующие параметры:

ОбязательностьНазваниеТипОписание
Обязательноis3DSVer2BooleanВозможные значения: true или false Флаг, показывающий, что платеж поступает из 3DS2.
ОбязательноthreeDSServerTransIdString [1..36]Идентификатор транзакции, созданный на сервере 3DS. Обязателен для аутентификации 3DS.
НеобязательноthreeDSMethodUrlString [1..512]URL-адрес сервера ACS для сбора данных браузера.
ОбязательноthreeDSMethodUrlServerString [1..512]URL-адрес сервера 3DS для сбора данных браузера, которые будут включены в AReq (Authentication Request) с сервера 3DS на сервер ACS.
НеобязательноthreeDSMethodDataPackedString [1..1024]Данные CReq (Challenge Response) в кодировке Base-64 для отправки на сервер ACS.
НеобязательноthreeDSMethodURLServerDirectString [1..512]URL-адрес 3dsmethod.do для выполнения метода 3DS на сервере 3DS через платежный шлюз (при наличии соответствующего разрешения на уровне продавца).

Ниже приведены параметры, которые должны присутствовать в ответе, после повторного запроса платежа и необходимости перенаправления клиента в ACS при аутентификации по протоколу 3DS2:

ОбязательностьНазваниеТипОписание
УсловиеacsUrlString [1..512]URL-адрес для редиректа на ACS. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Подробнее см. Редирект на ACS.
УсловиеpackedCReqStringЗапакованные данные challenge request. Возвращается при успешном ответе в случае оплаты 3D-Secure, если требуется редирект на ACS. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS. Подробнее см. Редирект на ACS.

Параметры блока statusResponse:

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноorderStatusIntegerЗначение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 2 - проведена полная авторизация суммы заказа;
  • 3 - авторизация отменена;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
НеобязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
НеобязательноpanMaskedFromString [1..19]Маскированный номер карты для списания средств.
НеобязательноpanMaskedToString [1..19]Маскированный номер карты для зачисления средств.
НеобязательноamountInteger [0..12]Сумма платежа в минимальных единицах валюты (например, в копейках).
НеобязательноcurrencyString [3]Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
НеобязательноcreationDateIntegerДата регистрации заказа.
НеобязательноorderDescriptionString [1..600]Описание заказа передаваемое платежному шлюзу при регистрации.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
НеобязательноipString [1..39]IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
ОбязательноresultCodeIntegerКод ошибки при выполнении запроса. Возможные значения:
  • 0 - в случае успеха;
  • 1 - в случае ошибки.
НеобязательноorderParamsObjectОбъект с мерчантскими атрибутами заказа. В ответе может быть представлено более одного блока orderParams.
Объект должен передаваться следующим образом: {"param":"value","param2":"value2"}.
НеобязательноoperationListObjectОбъект, содержащий информацию о транзакциях, завершенных в заказе. В ответе может присутствовать более одного блока operationList.
Параметры, которые можно передать, описаны ниже.
НеобязательноbindingStringИдентификатор связки (если она уже была создана). Этот параметр возвращается, только если версия getP2PStatus равна 3 или выше.

Примеры

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

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "amountInput" : 1000,
  "fromCard" : {
     "seToken": "ofVx1r3aIJ3Mlx3nkfeOIJgFOnwfsgFK+V6Yzm+KxJgsq19l74GChhX0We/LEFq78Rhn9uFAEZGdeyDhnIc/KfuvObf0EzoDA65Uj1Z8FjwWyjnEwTBHZL4KmdFBCSk8jLxHt70mXwyjiHYyCVH1fT/UVOnsrkZVGrqmEG4MTi5dX9Znzf24DwRg4iezvdT8vf0dUW5lJdvY1tgOsOnBulwy6kH/YbHVsnR6yxO6d6IsdnT5f8PxaB+7ZyUqgrd6VA88FGJKJgdoxk4721pqKSG5dYroLJG96s23EDJ2Hpi4e9wU2rP7E6dlFw+qzATqX/eaJbaQ9eakkdMWnkj7aQ=="
  },
  "toCard": {
        "cardholderName": "TEST CARDHOLDER",
        "expirationMonth": 12,
        "expirationYear": 2029,
        "pan": "5555555555555599"
  },
  "type" : "WITHOUT_FROM_CARD",
  "orderId" : "3dbaf8bb-1d68-76b3-b4e6-784700f26b04",
  "password" : "test_user_password",
  "type" : "WITHOUT_TO_CARD",
  "username" : "test_user"
}'

Пример первого запроса в случае аутентификации по протоколу 3DS2

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "amountInput" : 1000,
  "currency" : "933",
  "fromCard" : {
    "bindingId" : "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
  },
  "orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
  "password" : "test_user_password",
  "type" : "WITHOUT_TO_CARD",
  "username" : "test_user",
  "params" : {
    "name" : "payerAddress",
    "value" : "payer Address"
  }
}'

Пример второго запроса в случае аутентификации по протоколу 3DS2

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/performP2PByBinding.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "amountInput" : 1000,
  "currency" : "933",
  "fromCard" : {
    "bindingId" : "fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc"
  },
  "orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
  "password" : "test_user_password",
  "type" : "WITHOUT_TO_CARD",
  "username" : "test_user",
  "params" : {
    "name" : "payerAddress",
    "value" : "payer Address"
  },
  "threeDSServerTransId" : "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
  "threeDSVer2FinishUrl" : "https://example.com/acs2/acs/3dsMethod"
}'

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

{
  "errorCode" : 0,
  "errorMessage" : "Successful",
  "info" : "Your order is proceeded, redirecting...",
  "redirect" : "https://example.com/?orderId=47743354-be15-7c70-b9ef-4bfc482e68dc&lang=en",
  "is3DSVer2" : false
}

Пример ответа на первый запрос в случае аутентификации по протоколу 3DS2

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
  "threeDSMethodURLServer": "https://example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134",
}

Пример ответа на второй запрос в случае аутентификации по протоколу 3DS2

{
  "errorCode": 0,
  "info": "Your order is proceeded, redirecting...",
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq" : "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjVmMzEyMjdlLTljZmQtNDQwYi1hNDNjLTE4NjljMzNhNGI5YiIsImFjc1RyYW5zSUQiOiI5YTQyYzQ4ZC1hNWRiLTQ3NjEtYmI4Mi05ZmY5MmM0NzZiM2QiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0="
}

Статус P2P перевода

Чтобы получить статус зарегистрированного заказа P2P, используйте запрос https://abby.rbsuat.com/payment/rest/api/p2p/getP2PStatus.do.


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

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
НеобязательноlanguageString [2]Ключ языка по ISO 639-1. Если язык не указан, используется язык по умолчанию, указанный в настройках магазина.
Поддерживаемые языки: ru,en,by,pl.
УсловиеorderIdString [1..36]Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
УсловиеorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.

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

ОбязательностьНазваниеТипОписание
ОбязательноerrorCodeString [1..2]Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMessage.
Может отсутствовать, если результат не вызвал ошибки.
ОбязательноerrorMessageString [1..512]Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
НеобязательноorderStatusIntegerЗначение этого параметра указывает статус заказа в платежном шлюзе. Отсутствует, если заказ не был найден. Ниже приведен список доступных значений:
  • 0 - заказ зарегистрирован, но не оплачен;
  • 2 - проведена полная авторизация суммы заказа;
  • 3 - авторизация отменена;
  • 5 - инициирована авторизация через ACS банка-эмитента;
  • 6 - авторизация отклонена;
НеобязательноorderNumberString [1..36]Номер заказа (ID) в системе мерчанта; должен быть уникальным для каждого заказа.
НеобязательноpanMaskedFromString [1..19]Маскированный номер карты для списания средств.
НеобязательноpanMaskedToString [1..19]Маскированный номер карты для зачисления средств.
НеобязательноamountInteger [0..12]Сумма платежа в минимальных единицах валюты (например, в копейках).
НеобязательноcurrencyString [3]Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
НеобязательноcreationDateIntegerДата регистрации заказа.
НеобязательноorderDescriptionString [1..600]Описание заказа передаваемое платежному шлюзу при регистрации.
В этом поле недопустимо передавать персональные данные или платежные данные (номера карт т.п.). Данное требование связано с тем, что описание заказа нигде не маскируется.
НеобязательноipString [1..39]IP адрес плательщика. IPv6 поддерживается во всех запросах (до 39 символов).
ОбязательноresultCodeIntegerКод ошибки при выполнении запроса. Возможные значения:
  • 0 - в случае успеха;
  • 1 - в случае ошибки.
НеобязательноorderParamsObjectОбъект с мерчантскими атрибутами заказа. В ответе может быть представлено более одного блока orderParams.
Объект должен передаваться следующим образом: {"param":"value","param2":"value2"}.
НеобязательноoperationListObjectОбъект, содержащий информацию о транзакциях, завершенных в заказе. В ответе может присутствовать более одного блока operationList.
Параметры, которые можно передать, описаны ниже.
НеобязательноbindingStringИдентификатор связки (если она уже была создана). Этот параметр возвращается, только если версия getP2PStatus равна 3 или выше.

Ниже приведены возможные параметры блока operationList.

ОбязательностьНазваниеТипОписание
НеобязательноoperationTypeStringТип транзакции. Доступны следующие значения:
  • P2P_VERIFY - запрашивает сумму комиссии;
  • P2P_DEBIT - списывает деньги;
  • P2P_CREDIT - зачисляет деньги;
  • P2P_DEBIT_REVERSAL - отмена списания;
  • P2P_CREDIT_REVERSAL — отмена зачисления;
  • P2P_TRANSFER - перевод денег с карты на карту;
  • P2P_TRANSFER_REVERSAL - автоматический возврат, если при переводе произошла ошибка.
НеобязательноamountInteger [0..12]Сумма платежа в минимальных единицах валюты (например, в копейках).
НеобязательноcurrencyString [3]Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. Допускаются только цифры.
НеобязательноdatetimeStringДата и время совершения операции.
НеобязательноresultCodeStringКод ответа от процессинга банка. Содержит числовое значение. См. список кодов ответа здесь.
НеобязательноresultCodeDescriptionString [1..512]Описание кода ошибки транзакции.
НеобязательноmaskedPanString [1..19]Маскированный номер карты или токена, использованного для оплаты.
НеобязательноcardholderNameString [1..26]Имя держателя карты (при наличии).
НеобязательноrefNumString [12]Уникальный идентификатор операции, присваиваемый банком-эквайером при проведении платежа по банковской карте. RRN создаётся исключительно банком-эквайером и используется для последующего поиска, проверки и урегулирования операций (включая возвраты, чарджбеки и расследования).

Примеры

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

curl -X POST 'https://abby.rbsuat.com/payment/rest/api/p2p/getP2PStatus.do'
-H 'Content-Type: application/json'
--data-raw '{ 
  "username": "test_user",
  "password": "test_user_password",
  "orderId" : "0a4eaae8-653a-71a9-8259-46fc00a8ea58"
}'

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

{
  "orderStatus": 0,
  "errorCode": 0,
  "errorMessage": "Successful",
  "orderNumber": "2009",
  "amount": 50000,
  "currency": "933",
  "creationDate": 1674137044330,
  "orderParams": [],
  "operationList": [],
  "resultCode": 0
}

Завершение P2P-транзакции 3DS2 через API

Чтобы завершить P2P-транзакцию, продавец отправляет идентификатор транзакции на шлюз, используя метод https://abby.rbsuat.com/payment/rest/api/p2p/finishThreeDsVer2.do.


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

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

ОбязательностьНазваниеТипОписание
ОбязательноusernameString [1..30]Логин учетной записи API продавца.
ОбязательноpasswordString [1..30]Пароль учетной записи API продавца.
ОбязательноtDsTransIdString [1..36]Уникальный идентификатор транзакции, полученный от сервера 3DS.

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

Ответ на этот запрос не содержит никаких параметров JSON. Вместо этого он перенаправляет клиента на один из следующих URL-адресов:

Примеры

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

curl --request POST \
  --url https://abby.rbsuat.com/payment/rest/api/p2p/finishThreeDsVer2.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data '{
    "username": "test_user",
    "password": "test_user_password",
    "threeDSServerTransId": "65020d0c-2627-4a45-8eab-b93b58fc52ae"
}'

Пример URL редиректа

https://mybestmerchantreturnurl.com/finish.html?orderId=906bf262-bd53-4ac7-983c-07127954681b&amp;lang=en

Категории:
P2PAPI V1
Beta
Категории
Результаты поиска