Интерфейс REST


Использование функций или функциональности системы не описанных в настоящем документе не допустимо.

Запрос регистрации заказа (REST)

Для регистрации заказа используется запрос register.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательностьОписание
userNameAN..100нет (нужно указать либо пару логин и пароль, либо токен)AN..100
passwordAN..200нет (нужно указать либо пару логин и пароль, либо токен)AN..200
tokenANS..256нет (нужно указать либо пару логин и пароль, либо токен)ANS..256
orderNumberANS..36даНомер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы
amountN..12даСумма платежа в копейках (или центах)
feeInputN..8нет (см. описание)Сумма комиссии в минимальных единицах валюты.


Параметр передается только при включении соответствующей пермиссии: Разрешена передача комиссии Мерчанта.

currencyN3нетКод валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию.
returnUrlANS..512даАдрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.


См. также блок 3DS-платёж — для одностадийных и двухстадийных платежей. returnUrl используется таким же образом, как и на шаге 11 в указанных схемах.

failUrlANS..512нетАдрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.


См. также блок 3DS-платёж — для одностадийных и двухстадийных платежей. failUrl используется таким же образом, как и на шаге 11 в указанных схемах.

dynamicCallbackUrlANS..512нетПараметр позволяет использовать функциональность динамической отправки callback-уведомлений. В нем можно передать адрес, на который будут отправляться все «платежные» callback-уведомления, активированные для мерчанта. Под платежными понимаются callback-уведомления о следующих событиях: успешный холд, платеж отклонен по таймауту, платеж cardpresent отклонен, успешное списание, возврат, отмена. При этом активированные для мерчанта callback-уведомления, не относящиеся к платежам (включение/выключение связки, создание связки), будут отправляться на статический адрес для callback-ов.


Примечание

Для использования функциональности динамической отправки callback-уведомлений необходимо, чтобы у мерчанта была выставлена соответствующая настройка: Тип callback-а: Динамический (CALLBACK_TYPE = DYNAMIC).




Чтобы мерчант мог получать callback-уведомления, для него необходима активация пермиссии: Разрешено выполнять callback операции.

descriptionANS..598нетОписание заказа в свободной форме.


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

pageViewANS..20нет

По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:

  • DESKTOP — для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html);

  • MOBILE — для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html и mobile_errors_<locale>.html);

  •  Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html.

Где:

locale — язык страницы в кодировке ISO 639-1. Например, ru для русского или en для английского.

Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.

clientIdAN..255нетНомер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.


Указание этого параметра при платежах по связке необходимо — в противном случае платёж будет неуспешен.

merchantLoginAN..255нетЧтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
jsonParamsСм. описаниенет

Блок для передачи дополнительных параметров мерчанта. Поля дополнительной информации для последующего хранения, передаются в виде:

{«<name1>«:»<value1>»,...,"<nameN>":"<valueN>«},

Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах.*

Включение данного функционала возможно по согласованию с банком в период интеграции.

Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен передаваться в этом блоке в параметре с именем email.

Тип данных

НазваниеТип
nameANS..255 байт
valueANS..2000 байт
subscritionPurposeANS..2000 байт
sbpTermNo*N..10
sessionTimeoutSecsN...9нет

Продолжительность жизни заказа в секундах.

В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут).

Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.

expirationDateANSнет

Дата и время окончания жизни заказа. Формат: yyyy-MM-ddTHH:mm:ss.

Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs.

bindingIdAN..255нетИдентификатор связки, созданной ранее. Может использоваться, только если у магазина есть разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает:
  1. Данный заказ может быть оплачен только с помощью связки;

  2. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.

featuresANS..255нет

Возможно использование следующих значений.

VERIFY — Если указать это значение после запроса на регистрацию заказа произойдёт верификация держателя карты без списания средств с его счёта, поэтому в запросе можно передавать нулевую сумму. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей.




Особенности передачи значения VERIFY

  • Даже если сумма платежа будет передана в запросе, она не будет списана со счёта покупателя.

  • После успешной регистрации заказ сразу переводится в статус REVERSED (отменён).



FORCE_CREATE_BINDING — Принудительное создание связки. Значение должно передаваться вместе с clientId.

FORCE_TDS — Принудительное проведение платежа с использованием 3-D Secure. Если карта не поддерживает 3-D Secure, транзакция не пройдёт. Если не удалось проверить вовлеченность карты в 3DS, оплата может пройти по SSL при наличии соответствующей пермиссии.

FORCE_SSL — Принудительное проведение платежа через SSL (без использования 3-D Secure).

FORCE_FULL_TDS — После проведения аутентификации с помощью 3-D Secure статус PaRes должен быть только Y, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдёт.

emailANS..40нетЭлектронная почта покупателя.
phoneANS.12нет

Номер телефона покупателя. Если в телефон включён код страны, номер должен начинаться со знака плюс («+«). Если телефон передаётся без знака плюс (»+»), то код страны указывать не следует. Таким образом, допустимы следующие варианты:

  • +79998887766;

  • 9998887766.

shippingPayerDataСм. описаниенетБлок с данными доставки клиента. Используется для дальнейшей 3DS аутентификации клиента.
orderPayerData

См. описание

нетБлок с данными о плательщике заказа. Используется для дальнейшей 3DS аутентификации клиента.
preOrderPayerDataСм. описаниенетБлок с данными предзаказа. Используется для дальнейшей 3DS аутентификации клиента.
billingAndShippingAddressMatchIndicatorA1нет

Индикатор совпадения адреса держателя карты для выставления счета и адреса доставки.

Возможные значения:

  • Y — адрес держателя карты для выставления счета и адрес доставки совпадают;

  • N — адрес держателя карты для выставления счета и адрес доставки не совпадают.

Этот параметр используется для дальнейшей 3DS аутентификации клиента.

* По умолчанию в процессинг банка передаются поля:

  • orderNumber — номер заказа в системе магазина;

  • description — описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).

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

НазваниеТипОбязательноОписание
orderIdANS36НетНомер заказа в платежной системе. Уникален в пределах системы. Отсутствует если регистрация заказа на удалась по причине ошибки, детализированной в errorCode.
formUrlAN..512НетURL платежной формы, на который надо перенаправить броузер клиента. Не возвращается если регистрация заказа не удалась по причине ошибки, детализированной в errorCode.
errorCodeN..2НетКод ошибки.
errorMessageAN..512нетОписание ошибки на языке, переданном в параметре language в запросе.

Коды ошибок (поле errorCode**):**

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1Заказ с таким номером уже обработан
1Заказ с таким номером был зарегистрирован, но не был оплачен
1Неверный номер заказа
3Неизвестная валюта
4Номер заказа не может быть пуст
4Имя мерчанта не может быть пустым
4Отсутствует сумма
4URL возврата не может быть пуст
4Пароль не может быть пуст
5Логин продавца неверен
5Неверная сумма
5Неправильный параметр ’Язык’
5Доступ запрещён
5Пользователь должен сменить свой пароль
5Доступ запрещён
5[jsonParams] неверен
7Системная ошибка
13Использование обоих значений Features FORCE_TDS/FORCE_SSL и AUTO_PAYMENT недопустимо
13Мерчант не имеет привилегии выполнять AUTO платежи
13Мерчант не имеет привилегии выполнять проверочные платежи
14Features указаны некорректно

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

amount=100&currency=810&language=ru&orderNumber=87654321&returnUrl=http://yoursite.com&pageView=DESKTOP&jsonParams={"param1":"value1","param2":"value2"}&expirationDate=2014-09-08T14:14:14&merchantLogin=merch_child&features=AUTO_PAYMENT

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

{"orderId":"70906e55-7114-41d6-8332-4609dc6590f4","formUrl":"https://server/application_context//merchants/test/payment_ru.html?mdOrder=70906e55-7114-41d6-8332-4609dc6590f4″}

Запрос регистрации заказа с предавторизацией (REST)

Для запроса регистрации заказа с предавторизацией используется запрос registerPreAuth.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
orderNumberAN.32да Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы
amountN.20да Сумма платежа в копейках (или центах)
currencyN3нетКод валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
returnUrlAN.512да Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
failUrlAN.512нетАдрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
descriptionANS.512нетОписание заказа в свободной форме
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language)
pageViewANS.20нет

По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:

  • DESKTOP – для загрузки страниц, вёрстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html );

  • MOBILE – для загрузки страниц, вёрстка которых предназначена для отображения на экранах мобильных устройств (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html и mobile_errors_<locale>.html );

  • Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html.

    где:

    • locale – язык страницы в кодировке ISO 639-1. Например, ru для русского или en для английского.

Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.

clientIdAN.255нет

Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.

Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.

merchantLoginAN.255нетЧтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
jsonParamsAN.1024нет

Блок для передачи дополнительных параметров мерчанта. Поля дополнительной информации для последующего хранения, передаются в виде:

{"<name1>":"<value1>",...,"<nameN>":"<valueN>"}

Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах. Включение данной функциональности возможно по согласованию с банком в период интеграции.

Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен передаваться в этом блоке в параметре с именем email.

sessionTimeoutSecsN…9нетПродолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
expirationDateANSнетДата и время окончания жизни заказа. Формат: yyyy-MM-ddTHH: mm: ss. Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs.
bindingIdAN.255нетИдентификатор связки, созданной ранее. Может использоваться, только если у магазина есть разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: 1. Данный заказ может быть оплачен только с помощью связки; 2. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
featuresANS.255нет

Возможно использование следующего значения:

  • VERIFY — Если указать это значение после запроса на регистрацию заказа произойдёт верификация держателя карты без списания средств с его счёта, поэтому в запросе можно передавать нулевую сумму. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей.

Особенности передачи значения VERIFY:

  • даже если сумма платежа будет передана в запросе, она не будет списана со счёта покупателя;

  • после успешной регистрации заказ сразу переводится в статус REVERSED (отменён).

По умолчанию в процессинг банка передаются поля:

  • orderNumber — номер заказа в системе магазина;

  • description — описание заказа (не более 99символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).

Если в заказе передать дополнительный параметр с именем merchantOrderId, то именно его значение будет передано в процессинг в качестве номера заказа (вместо значения поля orderNumber).

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

НазваниеТипОбязательноОписание
orderIdANS36НетНомер заказа в платёжной системе. Уникален в пределах системы. Отсутствует если регистрация заказа на удалась по причине ошибки, детализированной в errorCode.
formUrlAN.512НетURL платёжной формы, на который надо перенаправить броузер клиента. Не возвращается если регистрация заказа не удалась по причине ошибки, детализированной в errorCode.
errorCodeN3НетКод ошибки.
errorMessageAN.512нетОписание ошибки на языке, переданном в параметре language в запросе.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1Заказ с таким номером уже обработан
1Заказ с таким номером был зарегистрирован, но не был оплачен
1Неверный номер заказа
3Неизвестная валюта
4Номер заказа не может быть пуст
4Имя мерчанта не может быть пустым
4Отсутствует сумма
4URL возврата не может быть пуст
4Пароль не может быть пуст
5Неверная сумма
5Неправильный параметр 'Язык'
5Логин продавца неверен
5Доступ запрещён
5Пользователь должен сменить свой пароль
5Доступ запрещён
5jsonParams неверен
7Системная ошибка
13Использование обоих значений Features FORCE_TDS/FORCE_SSL и AUTO_PAYMENT недопустимо
13Мерчант не имеет привилегии выполнять AUTO платежи
13Мерчант не имеет привилегии выполнять проверочные платежи
14Features указаны некорректно

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

https://alfa.rbsuat.com/payment/rest/registerPreAuth.do?amount=100¤cy=810&language=ru&orderNumber=87654321&password=password&returnUrl=https://alfa.rbsuat.com/payment/finish.html&userName=userName&{jsonParams="param1»:"value1»,"param2»:"value2"}&pageView=MOBILE&merchantLogin=merch_child

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

amount=100&currency=810&language=ru&orderNumber=87654321&returnUrl=https://alfa.rbsuat.com/payment/finish.html&pageView=MOBILE&{jsonParams="param1»:"value1»,"param2»:"value2"}&merchantLogin=merch_child

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

{"orderId»:"61351fbd-ac25-484f-b930-4d0ce4101ab7»,"formUrl»:"https://alfa.rbsuat.com/payment/merchants/test/mobile_payment_ru.html?mdOrder=61351fbd-ac25-484f-b930-4d0ce4101ab7«}

Запрос отмены незавершенного заказа (REST)

Для отмены незавершённого заказа используется запрос decline.do. После успешного выполнения этого запроса заказ переводится в состояние Отменён.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN..30да Логин магазина, полученный при подключении
passwordAN..30да Пароль магазина, полученный при подключении
merchantLoginAN..255да Укажите имя мерчанта, для которого вы хотите отклонить заказ. Это может быть как логин основного мерчанта, так и логин дочернего мерчанта
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение об ошибке будет возвращено именно на этом языке
orderIdANS..36обязательно указать orderId или orderNumberНомер заказа в платёжной системе. Уникален в пределах системы
orderNumberANS..36обязательно указать orderId или orderNumberНомер (идентификатор) заказа в системе магазина

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

НазваниеТипОбязательноОписание
errorCodeN3да Код ошибки
errorMessageAN..512да Описание ошибки на языке, переданном в параметре language в запросе
userMessageANS..512нетСообщению пользователю с описанием кода результата

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

https://server_and_context/rest/decline.do?userName=username&password=password&orderId=8cf0409e-857e-7f95-8ab1-b6810009d884&merchantLogin=merch_test418&language=ru&orderNumber=12345678

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

{ "errorCode" : "0" , "errorMessage" : "Success" }

Запрос завершения оплаты заказа (REST)

Для запроса завершения ранее предавторизованного заказа используется запрос deposit.do (см. раздел Координаты подключения).
Данную операцию можно осуществлять, если есть соответствующие права в системе.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательностьОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
orderIdANS36да Номер заказа в платёжной системе. Уникален в пределах системы.
amountN.20да Сумма платежа в копейках (или центах)

Если указать в параметре amount ноль, завершение произойдёт на всю предавторизованную сумму.

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

НазваниеТипОбязательностьОписание
errorCodeN3НетКод ошибки.
errorMessageAN.512НетОписание ошибки на языке.

Коды ошибок (поле errorCode): Классификация:

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Ошибка значение параметра запроса
6Незарегистрированный OrderId
7Системная ошибка

Расшифровка:

ЗначениеОписание
5Доступ запрещён
5Пользователь должен сменить свой пароль
5Неверная сумма
5Сумма депозита должна быть равной нулю или не менее одного рубля
6Неверный номер заказа
7Платёж должен быть в корректном состоянии
7Ошибка системы

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

https://alfa.rbsuat.com/payment/rest/deposit.do?amount=100&currency=810&language=ru&orderId=e5b59d3d-746b-4828-9da4-06f126e01b68&password=password&userName=userName

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

amount=100&currency=810&language=ru&orderId=e5b59d3d-746b-4828-9da4-06f126e01b68

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

{"errorCode»: 0}

Запрос состояния заказа (REST)

Для получения текущего состояния заказа используется запрос getOrderStatus.do (см. раздел Координаты подключения). Статус заказа необходимо определять по значению параметра OrderStatus. Поле authCode является устаревшим.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательностьОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
orderIdANS36да Номер заказа в платёжной системе. Уникален в пределах системы.
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение ошибке будет возвращено именно на этом языке.

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

НазваниеТипОбязательностьОписание
OrderStatusN2НетПо значению этого параметра определяется состояние заказа в платёжной системе. Список возможных значений приведён в таблице ниже. Отсутствует, если заказ не был найден.
ErrorCodeN3НетКод ошибки.
ErrorMessageAN.512НетОписание ошибки на языке, переданном в параметре Language в запросе.
OrderNumberAN.32Да Номер (идентификатор) заказа в системе магазина
PanN.19нетМаскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа.
expirationN6нетСрок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа.
cardholderNameA.64нетИмя держателя карты. Указан только после оплаты заказа.
AmountN.20да Сумма платежа в копейках (или центах)
currencyN3нетКод валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли).
approvalCodeAN6нетКод авторизации МПС. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы.
authCodeN3нетЭто поле является устаревшим. Его значение всегда равно «2», независимо от состояния заказа и кода авторизации процессинговой системы.
IpAN.20нетIP адрес пользователя, который оплачивал заказ
BindingInfo —нет

Элемент состоит из параметров:

Название Тип Обязательно Описание
clientId AN..255 нет Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок.
bindingId AN..255 нет Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.

Поле OrderStatus может принимать следующие значения:

Номер состоянияОписание
0Заказ зарегистрирован, но не оплачен
1Предавторизованная сумма захолдирована (для двухстадийных платежей)
2Проведена полная авторизация суммы заказа
3Авторизация отменена
4По транзакции была проведена операция возврата
5Инициирована авторизация через ACS банка-эмитента
6Авторизация отклонена

Коды ошибок (поле ErrorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
2Заказ отклонен по причине ошибки в реквизитах платежа
5Доступ запрещён
5Пользователь должен сменить свой пароль
5orderId не указан
6Неверный номер заказа
7Системная ошибка

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

https://alfa.rbsuat.com/payment/rest/getOrderStatus.do?orderId=b8d70aa7-bfb3-4f94-b7bb-aec7273e1fce&language=ru&userName=userName&password=password

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

orderId=b8d70aa7-bfb3-4f94-b7bb-aec7273e1fce&language=ru

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

{"expiration»:"201512»,"cardholderName»:"tr tr»,"depositAmount»: 789789,"currency»:"810»,"approvalCode»:"123456»,"authCode»: 2,"clientId»:"666»,"bindingId»:"07a90a5d-cc60-4d1b-a9e6-ffd15974a74f»,"ErrorCode»:"0»,"ErrorMessage»:"Успешно»,"OrderStatus»: 2,"OrderNumber»:"23asdafaf»,"Pan»:"411111**1111»,"Amount»: 789789}

Расширенный запрос состояния заказа (REST)

Вы можете протестировать работу данного метода с помощью SWAGGER

Для запроса состояния зарегистрированного заказа используется запрос getOrderStatusExtended.do.

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

НазваниеТипОбязательностьОписание
userNameAN..100нет (нужно указать либо пару логин и пароль, либо токен)Логин магазина, полученный при подключении. Если вместо аутентификации по логину и паролю используется открытый токен (параметр token), параметр userName передавать не нужно.
passwordAN..200нет (нужно указать либо пару логин и пароль, либо токен)Пароль магазина, полученный при подключении. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), параметр password передавать не нужно.
tokenAN..256нет (нужно указать либо пару логин и пароль, либо токен)Открытый ключ, который можно использовать для аутентификации при выполнении запроса. Если для аутентификации используются логин и пароль, параметр token передавать не нужно.
orderIdANS36да*Номер заказа в платёжной системе. Уникален в пределах системы.


Если передан token, то необходимо передавать только orderId.

orderNumberANS..36да*Номер (идентификатор) заказа в системе магазина.
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение об ошибке будет возвращено именно на этом языке.

*В запросе должен присутствовать либо orderId, либо orderNumber. Если в запросе присутствуют оба параметра, то приоритетным считается orderId.

Существует несколько наборов параметров ответа. Какие именно наборы параметров будут возвращены, зависит от версии getOrderStatusExtended, указанной в настройках продавца.

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
orderNumberANS..36да Номер (идентификатор) заказа в системе магазина.01 и выше
orderStatusN2нет

По значению этого параметра определяется состояние заказа в платёжной системе. Список возможных значений приведён в списке ниже. Отсутствует, если заказ не был найден.

  • 0 — Заказ зарегистрирован, но не оплачен;

  • 1 — Предавторизованная сумма захолдирована (для двухстадийных платежей);

  • 2 — Проведена полная авторизация суммы заказа;

  • 3 — Авторизация отменена;

  • 4 — По транзакции была проведена операция возврата;

  • 5 — Инициирована авторизация через ACS банка-эмитента;

  • 6 — Авторизация отклонена.

01 и выше
actionCodeN3да Код ответа.01 и выше
actionCodeDescriptionAN..512да Расшифровка кода ответа на языке, переданном в параметре Language в запросе.01 и выше
originalActionCodestringнетКод ответа процессинга.01 и выше
errorCodeN..2нет

Код ошибки. Возможны следующие варианты.

  • 0 — Обработка запроса прошла без системных ошибок;

  • 1 — Ожидается [orderId] или [orderNumber];

  • 5 — Доступ запрещён;

  • 5 — Пользователь должен сменить свой пароль;

  • 6 — Заказ не найден;

  • 7 — Системная ошибка.

01 и выше
errorMessageAN..512нетОписание ошибки на языке, переданном в параметре Language в запросе.01 и выше
amountN..20да Сумма платежа в копейках (или центах).01 и выше
currencyN3нетКод валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли).01 и выше
dateANSда Дата регистрации заказа.01 и выше
depositedDateNнетДата оплаты заказа в формате UNIX-времени (POSIX-времени).10 и выше
orderDescriptionAN..512нетОписание заказа, переданное при его регистрации.01 и выше
ipANS..39да 

IP-адрес пользователя, который оплачивал заказ.


IPv6 поддерживается во всех запросах.

01 и выше
authRefNumAN..24нетУчётный номер авторизации платежа, который присваивается при регистрации платежа.01 и выше
С 27 версии заполняется всегда
refundedDateANSнетДата и время возврата средств.12 и выше
reversedDateANSнетДата и время отмены платежа.12 и выше
paymentWayAS..14да 

Способ совершения платежа (платёж с вводом карточных данных, оплата по связке и т. п.).

В этом параметре передаётся способ оплаты. Может принимать следующие значения:

  • CARD — оплата с вводом карточных данных;

  • CARD_BINDING — оплата связкой;

  • ALFA_ALFACLICK — для оплаты с помощью «Альфа-Клик» (через систему PayByClik);

  • ALFAPAY — оплата платёжной системой AlfaPay;

  • FILE_BINDING — оплата через файл;

  • FILE_SBP_C2B_BINDING — СБП оплата через файл;

  • P2P — перевод с карты на карту;

  • P2P_BINDING — перевод связкой;

  • PAYPAL — оплата со счёта PayPal;

  • APPLE_PAY — Apple Pay;

  • APPLE_PAY_BINDING — оплата связкой Apple Pay;

  • GOOGLE_PAY_CARD — Google Pay нетокенизированная;

  • GOOGLE_PAY_RAW — оплата Google Pay с данными по связке на стороне мерчанта (инициирующие и последующие платежи);

  • GOOGLE_PAY_CARD_BINDING — оплата связкой с нетокенизированной картой Google Pay;

  • GOOGLE_PAY_TOKENIZED — Google Pay токенизированная;

  • GOOGLE_PAY_TOKENIZED_BINDING — оплата связкой с токенизированной картой Google Pay;

  • SAMSUNG_PAY — Samsung Pay;

  • SAMSUNG_PAY_BINDING — оплата связкой Samsung Pay;

  • SAMSUNG_PAY_RAW — оплата Samsung Pay с данными по связке на стороне мерчанта (инициирующие и последующие платежи);

  • SENDY — оплата Sendy;

  • SBP_C2B — оплата СБП (Сервис быстрых платежей) для C2B;

  • SBP_C2B_BINDING — оплата связкой СБП (Сервис быстрых платежей) для C2B;

  • SBP_B2C — выплаты СБП;

  • ALFA_SBP — оплата СБП (Сервис быстрых платежей) для Alfa;

  • TOKEN_PAY — оплата токеном напрямую;

  • TOKEN_PAY_BINDING — оплата токенизированной связкой;

  • YANDEX_PAY_CARD — Yandex Pay нетокенизированная;

  • YANDEX_PAY_TOKENIZED — Yandex Pay токенизированная;

  • YANDEX_PAY_CARD_BINDING — оплата связкой с нетокенизированной картой Yandex Pay;

  • YANDEX_PAY_TOKENIZED_BINDING — оплата связкой с токенизированной картой Yandex Pay;

  • MIR_PAY — оплата платёжной системой Мир;

  • MIR_PAY_BINDING — оплата платёжной системой Мир по связке;

  • PODELI — оплата через сервис Альфа-Банка «Подели» BNPL (Buy Now Pay Later).

09 и выше
prepaymentMdOrderANS..36нетУникальный идентификатор заказа на предоплату в Платёжном Шлюзе. Используется для привязки заказа с предоплатой с чеком на постоплату.15 и выше
partpaymentMdOrdersANS..36нетmdOrder последующих заказов на частичную оплату.15 и выше
avsCodeA1нет

AVS Response Сode — код ответа AVS-проверки (проверка адреса и почтового индекса держателя карты). Возможные значения:

  • A — почтовый индекс и адрес совпадают;

  • B — адрес совпадает, почтовый индекс не совпадает;

  • C — почтовый индекс совпадает, адрес не совпадает;

  • D — почтовый индекс и адрес не совпадают;

  • E — проверка данных запрошена, но результат неуспешен;

  • F — некорректный формат запроса AVS/AVV проверки.

19 и выше
chargebackA..5нет

Были ли средства принудительно возвращены клиенту банком. Возможны следующие значения.

  • true (истина);

  • false (ложь).

06 и выше
authDateTimeANSнетДата и время авторизации в формате UNIX-времени (POSIX-времени).01 и выше
terminalIdAN..10нетИдентификатор терминала в процессинге, через который осуществлялась оплата.01 и выше
feUtrnnoN..18нетНомер транзакции FE.16 и выше
orderBundleСм. описаниенетОригинальная товарная корзина. Блок с атрибутами товарной корзины. Описание его атрибутов представлено ниже.01 и выше
ofdOrderBundleСм. описаниенетПересчитанная для ОФД остаточная корзина (с учётом возвратов). Описание его атрибутов представлено ниже.

24


В настоящее время реализовано исключительно для АТОЛ систем версии v5 (1.2).


Настоящая корзина отображается только при передаче бонусных баллов «Спасибо» при регистрации заказа.

Элемент merchantOrderParams — присутствует в ответе, если в заказе содержатся дополнительные параметры продавца. Каждый дополнительный параметр заказа представлен в отдельном элементе merchantOrderParams.

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
nameAN..20нетНазвание дополнительного параметра.01 и выше
valueAN..1024нетЗначение дополнительного параметра.01 и выше

Элемент attributes включает в себя следующие параметры:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
attributes.nameANS..255 байтнетНазвание дополнительного параметра.01 и выше
attributes.valueANS..2000 байтнетЗначение дополнительного параметра01 и выше

Элемент cardAuthInfo — в элементе лежит структура, состоящая из списка элемента secureAuthInfo и следующих параметров:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
maskedPanNS..19нетМаскированный номер карты, которая использовалась для оплаты.01 и выше
expirationN6нетСрок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа.01 и выше
cardholderNameA..64нетИмя держателя карты. Указан только после оплаты заказа.01 и выше
approvalCodeAN6нетКод авторизации платежа. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. Указан только после оплаты заказа.01 и выше
paymentSystemN..10да 

Наименование платёжной системы. Доступны следующие варианты.

  • VISA;

  • MASTERCARD;

  • AMEX;

  • JCB;

  • CUP;

  • MIR.

08 и выше
productAN..255да Дополнительные сведения о корпоративных картах. Эти сведения заполняются службой технической поддержки в консоли управления. Если такие сведения отсутствуют, возвращается пустое значение.08 и выше
productCategorystringда 

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

Возможные значения: DEBIT, CREDIT, PREPAID, NON_MASTERCARD, CHARGE, DIFFERED_DEBIT.

17 и выше
corporateCardA..5да 

Признак того, является ли карта корпоративной.

Возможные значения: false — не является корпоративной картой, true — является корпоративной картой. Также может по поиску возвращаться пустое значение, это означает, что значение не найдено.

35 и выше

Элемент payerData состоит из параметров.

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
emailANS..40нетЭлектронная почта покупателя.13 и выше
phoneN..12нет

Номер телефона покупателя. Всегда нужно указывать код страны, при этом можно указывать или не указывать знак +. Таким образом, допустимы следующие варианты:

  • +79998887766;

  • 79998887766.

13 и выше
postAddressANS..255нетАдрес доставки товара.13 и выше

Элемент secureAuthInfo.

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
eciN..4нетЭлектронный коммерческий индикатор.01 и выше
authTypeIndicatorNнет

Тип 3DS аутентификации. Возможные значения:

ЗначениеРасшифровкаОбязательность / правила автоматического определения
0SSL
Аутентификация по SSL
ECI = 07
1THREE_DS1_FULL
Аутентификация по 3DS1
ECI = 02, 05
2THREE_DS1_ATTEMPT
Попытка аутентификации 3DS1
ECI = 01, 06
3THREE_DS2_FULL
Строгая аутентификация (SCA)
Обязательно для 3DS 2.0
4THREE_DS2_FRICTIONLESS
Аутентификация на основе риска (RBA)
Обязательно для 3DS 2.0
5THREE_DS2_ATTEMPT
Попытка аутентификации (3DS 2.0)
Обязательно для 3DS 2.0
01 и выше
threeDsProtocolVersionN..12нет

Версия протокола 3DS. Возможные значения:

  • «1.0.2» для 3DS1;

  • «2.1.0» для 3DS2;

  • «2.2.0» для 3DS2.

30 и выше
rreqTransStatusA1нетСтатус транзакции из запроса для передачи результатов аутентификации пользователя от ACS (RReq). Передаётся при использовании 3DS2.30 и выше
aresTransStatusA1нетСтатус транзакции из ответа от ACS на запрос аутентификации (ARes). Передаётся при использовании 3DS2.30 и выше
Элемент threeDSInfo01 и выше
cavvANS..200нетЗначение проверки аутентификации владельца карты. Указан только после оплаты заказа и в случае соответствующего разрешения.01 и выше
xidANS..80нетЭлектронный коммерческий идентификатор транзакции.01 и выше

Элемент bindingInfo состоит из параметров:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
clientIdAN..255нетНомер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок.01 и выше
bindingIdAN..255нетИдентификатор связки, созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.01 и выше
externalCreatedbooleanнетПоявляется только при создании связки во внешнем сервисе (к примеру, Masterpass).20 и выше

Блок pluginInfo (представляющий собой JSON object) — присутствует в ответе, если оплата шла через payment plugin (платёжный плагин) и для конкретного платёжного метода требуется отображение какой-либо информации в getOrderStatusExtended (для продавца должна быть включена настройка payment.plugins.enabled). Состоит из параметров:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
pluginInfo.namestringда, если в ответе присутствует pluginInfoУникальное имя payment плагина.28 и выше
pluginInfo.paramsJSON objectда, если в ответе присутствует pluginInfoПараметры для конкретного платёжного метода. Параметр представляет собой словарь ключ: значение.28 и выше

Элемент paymentAmountInfo состоит из параметров:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
approvedAmountN..20нетСумма, захолдированная на карте (используется только при двухстадийных платежах).03 и выше
depositedAmountN..20нетСумма, подтверждённая для списания с карты.03 и выше
refundedAmountN..20нетСумма возврата.03 и выше
paymentStateA..10нетСостояние заказа.03 и выше
feeAmountN..20нетСумма комиссии.11 и выше
totalAmountN..20нетСумма заказа + fee (комиссия, если она была использована в заказе).18 и выше

Элемент bankInfo состоит из параметров:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
bankNameAN..200нетНаименование банка-эмитента.03 и выше
bankCountryCodeAN..4нетКод страны банка-эмитента.03 и выше
bankCountryNameAN..160нетНаименование страны банка-эмитента на языке, переданном в параметре language в запросе, или на языке пользователя, вызвавшего метод, если язык в запросе не указан.03 и выше

Блок refunds содержит информацию по возвратам. Добавляется в ответ на запрос getOrderStatusExtended 05 версии и выше и присутствует только, если есть возврат по заказу.

Параметры блока следующие:

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
referenceNumberN12нетСсылочный номер транзакции, присваиваемый платёжным шлюзом после её завершения.05 и выше
actionCodeN..5нетКоды ответа — цифровое обозначение результата, к которому привело обращение к системе со стороны пользователя.05 и выше
amountN..12нетСумма возврата в минимальных единицах валюты.05 и выше
dateANSнетДата возврата заказа в формате UNIX-времени.05 и выше
approvalCodeAN6нетКод авторизации платежа, может содержать цифры и латинские буквы.

Для заказов, оплаченных не картой: с 05 по 25 версии включительно.

Для заказов, оплаченных любым способом (включая картой): 26 версия и выше.

externalRefundIdAN..30нетИдентификатор возврата. При попытке повторного возврата проверяется externalRefundId: если возврат с таким идентификатором уже был, то возвращается успешный ответ с данными по предыдущему возврату, если нет, то выполняется новый возврат.21 и выше

Элемент transactionAttributes — присутствует в ответе, если в заказе содержатся дополнительные параметры транзакции.

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
transactionAttributes.nameANS..255нет

Название дополнительного параметра. Примеры:

  • bindingOriginalNetRefNum — идентификатор первого платежа по созданию связки;

  • paymentNetRefNum — идентификатор, полученный в ходе последней оплаты по связке;

  • originalPaymentNetRefNum — идентификатор инициирующей транзакции по созданию связки, передаётся мерчантами, хранящих связки на своей стороне (передаётся в paymentOrder).

14 и выше
transactionAttributes.valueANS..2000нетЗначение дополнительного параметра.14 и выше

Содержимое orderBundle

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
orderCreationDateANS..21нетДата создания заказа в формате YYYY-MM-DDTHH:MM:SS.01 и выше
customerDetailsСм. описаниенетБлок с атрибутами данных о покупателе. Описание его атрибутов представлено ниже.01 и выше
cartItemsСм. описаниенетБлок с атрибутами товарных позиции Корзины. Описание его атрибутов представлено ниже.01 и выше

Содержимое ofdOrderBundle

Блок доступен с 24 версии getOrderStatusExtended.

Элемент ofdOrderBundle состоит из параметров:

НазваниеТипОбязательноОписание
nameANS..100даНаименование или описание товарной позиции в свободной форме.
itemAmountN..18да Сумма стоимости всех товарных позиций одного positionId в деньгах в минимальных единицах валюты.
itemPriceN..18да

Стоимость одной товарной позиции в минимальных единицах валюты.

  • itemPrice не может быть меньше 0.

  • itemPrice может передаваться как строкой, так и целочисленным типом.

quantity Элемент, описывающий общее количество товарных позиций одного positionId и их меру измерения.
quantity.valueN..18да Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку.
quantity.measureANS..20даМера измерения количества товарной позиции.
itemAttributes

Тэг, предназначенный для передачи набора атрибутов товарной позиции. Атрибуты следует указывать следующим образом.

"itemAttributes": [{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}]

Описание доступных атрибутов представлено ниже.

itemAttributes["paymentMethod"]N..2да

Признак способа расчёта, доступны следующие значения:

  • 1 — полная предварительная оплата до момента передачи предмета расчёта;

  • 2 — частичная предварительная оплата до момента передачи предмета расчёта;

  • 3 — аванс;

  • 4 — полная оплата в момент передачи предмета расчёта;

  • 5 — частичная оплата предмета расчёта в момент его передачи с последующей оплатой в кредит;

  • 6 — передача предмета расчёта без его оплаты в момент его передачи с последующей оплатой в кредит;

  • 7 — оплата предмета расчёта после его передачи с оплатой в кредит.

itemAttributes["paymentObject"]N..2да

Признак предмета расчёта, доступны следующие значения:

  • 1 — товар;

  • 2 — подакцизный товар;

  • 3 — работа;

  • 4 — услуга;

  • 5 — ставка азартной игры;

  • 6 — выигрыш азартной игры;

  • 7 — лотерейный билет;

  • 8 — выигрыш лотереи;

  • 9 — предоставление РИД;

  • 10 — платёж;

  • 11 — агентское вознаграждение;

  • 12 — составной предмет расчёта;

  • 13 — иной предмет расчёта;

  • 14 — имущественное право;

  • 15* — внереализационный доход;

  • 16* — страховые взносы: о суммах расходов, уменьшающих сумму налога (авансовых платежей) в соответствии с пунктом 3.1 статьи 346.21 Налогового кодекса Российской Федерации;

  • 17 — торговый сбор: о суммах уплаченного торгового сбора;

  • 18 — курортный сбор;

  • 30 — реализуемый подакцизный товар, подлежащий маркировке средством идентификации, не имеющем код маркировки;

  • 31 — реализуемый подакцизный товар, подлежащий маркировке средством идентификации, имеющем код маркировки;

  • 32 — реализуемый товар, подлежащий маркировке средством идентификации, не имеющим код маркировки, за исключением подакцизного товара;

  • 33 — реализуемый товар, подлежащий маркировке средством идентификации, имеющим код маркировки, за исключением подакцизного товара.


*Примечание: для таких ОФД как Orange Data и OFD.RU при передаче признака предмета расчёта paymentObject=15 и paymentObject=16 валидируется наименование товара (позиции). Таким образом, наименование товара (позиции) должно принимать определённые значения. Смотреть поле orderBundle.cartItems.items.name.

taxTypeN..2да

Ставка НДС, доступны следующие значения:

  • 0 — без НДС;

  • 1 — НДС по ставке 0%;

  • 2 — НДС чека по ставке 10%;

  • 4 — НДС чека по расчётной ставке 10/110;

  • 6 — НДС чека по ставке 20%;

  • 7 — НДС чека по расчётной ставке 20/120.


Если в запросе не передаётся корзина с данными фискализации, оператору фискальных данных передаются значения по умолчанию, указанные в настройках личного кабинета (подробнее см. инструкцию по работе с личным кабинетом).

Содержимое customerDetails

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
emailANS..40нетЭлектронная почта покупателя.01 и выше
phoneANS..12нет

Номер телефона покупателя. Если в телефон включён код страны, номер должен начинаться со знака плюс («+»). Если телефон передаётся без знака плюс («+»), то код страны указывать не следует. Таким образом, допустимы следующие варианты:

  • +79998887766;

  • 9998887766.

01 и выше
fullNameANS..100нет

Фамилия, имя и отчество плательщика. Параметр возвращается только в том случае, если был передан партнёром при регистрации.


Если передаётся параметр fullName(ФИО) в параметрах CustomerDetails, то обязательно нужно передать дополнительные параметры: ИНН или данные документа (1243 гражданство, 1244 дата рождения, 1245 код документа, 1246 реквизиты документа, удостоверяющего личность).


Если в запросе на регистрацию указано только fullName без дополнительных параметров, то отобразится следующая ошибка: «Запрос не валиден: если ИНН клиента не был заполнен, то необходимо указать дату рождения клиента, код документа и данные документа».


Только для запросов по платежам с фискализацией.

01 и выше
passportANS..100нет

Серия и номер паспорта плательщика в следующем формате: 2222888888.

Только для запросов по платежам с фискализацией.

01 и выше
innN..12нет

Идентификационный номер налогоплательщика. Допускается передавать 10 или 12 символов.

Только для запросов по платежам с фискализацией.

01 и выше
contactAN..40нетСпособ связи с покупателем.01 и выше
deliveryInfoСм. описаниенетБлок с атрибутами адреса для доставки. Описание его атрибутов представлено ниже.01 и выше

Содержимое cartItems

Ниже представлены параметры блока cartItems

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
itemsСм. описаниеда 

Массив блоков, описывающих товарные позиции в корзине. Информация по каждой товарной позиции Корзины передаётся в отдельном блоке, входящем в состав items.

Описание содержимого блока представлено ниже.


Не используйте внутри этого блока сочетание символов «‘)», в противном случае это приведёт к ошибке на стороне шлюза.

03 и выше

Содержимое deliveryInfo


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

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
deliveryTypeANS..20нетТип доставки.01 и выше
countryA..2да Страна доставки.01 и выше
cityANS..40да Город доставки.01 и выше
postAddressANS..255да Адрес доставки товара.01 и выше

Содержимое items

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
positionIdANS..12нетУникальный идентификатор товарной позиции внутри корзины заказа.01 и выше
nameANS..100нет

Наименование или описание товарной позиции в свободной форме.


  • используйте \\ — для передачи \;

  • используйте \" — для передачи ".

01 и выше
quantityСм. описаниенетЭлемент, описывающий общее количество товарных позиций одного positionId и их меру измерения. Описание его атрибутов представлено ниже.03 и выше
itemAmountN..20нет

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


При расчёте параметра itemAmount = itemPrice * quantity результат округляется до второго знака после десятичного разделителя. Например, если результат вычислений равен 100,55, то итоговый результат будет равен 101.

01 и выше
depositedItemAmountN..18нетСумма в минимальных единицах валюты (например, в копейках) одного positionId, подтверждённая для списания с карты.07 и выше
itemCurrencyN3нетКод валюты товарной позиции ISO 4217. Если не указан, считается равным валюте заказа.01 и выше
itemCodeANS..100нетНомер (идентификатор) товарной позиции в системе магазина.01 и выше
itemPriceN..18нет

Стоимость одной товарной позиции в минимальных единицах валюты.


  • itemPrice не может быть меньше 0.

  • itemPrice может передаваться как строкой, так и целочисленным типом.

01 и выше
itemDetailsСм. описаниенетДополнительный блок с параметрами описания товарной позиции. Описание его атрибутов представлено ниже.01 и выше
taxСм. описаниенетДополнительный блок с атрибутами описания налога.01 и выше
discountСм. описаниенетДополнительный блок с атрибутами описания скидки для товарной позиции. Описание его атрибутов представлено ниже.01 и выше
agentInterestСм. описаниенетДополнительный блок с атрибутами описания агентской комиссии за продажу товара. Описание его атрибутов представлено ниже.01 и выше
itemAttributesСм. описаниенетБлок, предназначенный для передачи набора атрибутов товарной позиции. Описание доступных атрибутов представлено ниже.01 и выше

Содержимое quantity

Ниже представлены параметры блока quantity

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
valueN..18да Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку.01 и выше
measureANS..20да Мера измерения количества товарной позиции.01 и выше

Содержимое itemDetails


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

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
valueANS..255да Дополнительная информация по товарной позиции.01 и выше
nameANS..255да Наименование параметра описания детализации товарной позиции.01 и выше

Содержимое discount


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

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
discountTypeANS..20да Тип скидки на товарную позицию.01 и выше
discountValueN..20да Значение скидки на товарную позицию.01 и выше

Содержимое agentInterest


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

НазваниеТипОбязательноОписаниеВерсия getOrderStatusExtended
interestTypeANS..20да Тип агентской комиссии за продажу товара.01 и выше
interestValueN..20да Значение агентской комиссии за продажу товара.01 и выше

Содержимое tax

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


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

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

Ставка НДС, доступны следующие значения:

  • 0 — без НДС;

  • 1 — НДС по ставке 0%;

  • 2 — НДС чека по ставке 10%;

  • 4 — НДС чека по расчётной ставке 10/110;

  • 6 — НДС чека по ставке 20%;

  • 7 — НДС чека по расчётной ставке 20/120.


Если в запросе не передаётся корзина с данными фискализации, оператору фискальных данных передаются значения по умолчанию, указанные в настройках личного кабинета (подробнее см. инструкцию по работе с личным кабинетом).

taxSumN..18нетСумма налога, высчитанная продавцом. Указывается в минимальных единицах валюты.

Содержимое itemAttributes

Блок itemAttributes содержит блок attributes, включающий следующие параметры:

Атрибуты заказа в платёжной системе (номер заказа).

НазваниеТипОбязательноОписание
nameANS..255 байтда Название дополнительного параметра.
valueANS..2000 байтда Значение дополнительного параметра

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

orderId=b9054496-c65a-4975-9418-1051d101f1b9&language=ru&merchantOrderNumber=0784sse49d0s134567890

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

{"errorCode":"0","errorMessage":"Успешно","orderNumber":"0784sse49d0s134567890","orderStatus":6,"actionCode":-2007,
"actionCodeDescription":"Время сессии истекло","amount":33000,"currency":"810",
"date":1383819429914,
"orderDescription":" ","merchantOrderParams":[{"name":"email","value":"yap"}],"attributes":[{"name":"mdOrder",
"value":"b9054496-c65a-4975-9418-1051d101f1b9"}],"cardAuthInfo":{"expiration":"201912",
"cardholderName":"Ivan","secureAuthInfo": {"eci":6,"threeDSInfo": {"xid":"MDAwMDAwMDEzODM4MTk0MzAzMjM="}},
"pan":"411111**1111"},"terminalId":"333333"}

Пример ответа на запрос getOrderStatusExtended с 3DS 2:

1{
2  "errorCode": "0",
3  "errorMessage": "Success",
4  "orderNumber": "87520",
5  "orderStatus": 2,
6  "actionCode": 0,
7  "actionCodeDescription": "",
8  "amount": 10000,
9  "currency": "978",
10  "date": 1681676561910,
11  "depositedDate": 1681676563641,
12  "orderDescription": "",
13  "ip": "10.99.50.51",
14  "merchantOrderParams": [
15    {
16      "name": "browser_language_param",
17      "value": "en"
18    }, 
19    {
20      "name": "browser_os_param",
21      "value": "UNKNOWN"
22    }, 
23    {
24      "name": "browser_name_param",
25      "value": "DOWNLOAD"
26    }, 
27    {
28        "name": "user_agent",
29        "value": "Apache-HttpClient/4.5.12 (Java/11.0.18)"
30    }
31  ],
32  "transactionAttributes": [
33    {
34      "name": "cvcExist",
35      "value": "true"
36    }, 
37    {
38      "name": "merchantIp",
39      "value": "10.99.50.51"
40    }, 
41    {
42      "name": "tii",
43      "value": "CI"
44    }, 
45    {
46      "name": "paymentNetRefNum",
47      "value": "MCA015913"
48    }
49  ],
50  "attributes": [
51    {
52      "name": "mdOrder",
53      "value": "b820f801-e98e-7d82-be15-a5a608873a40"
54    }
55  ],
56  "cardAuthInfo": {
57    "maskedPan": "525899**0075",
58    "expiration": "202412",
59    "cardholderName": "Integration Tester",
60    "approvalCode": "232243",
61    "paymentSystem": "MASTERCARD",
62    "secureAuthInfo": {
63      "eci": 2,
64      "threeDSInfo": {
65        "xid": "9cff1833-95fb-42b1-90c5-f8563d11bf88",
66        "cavv": "kBMSeAAAHnoTYhRQktfpAWQxx3Zg"
67      },
68      "authTypeIndicator": 3,
69      "threeDsProtocolVersion": "2.1.0",
70      "rreqTransStatus": "Y",
71      "aresTransStatus": "C"
72    },
73    "pan": "525899**0075"
74  },
75  "bindingInfo": {
76    "clientId": "d96b40c4-2d69-4709-9944-a5622b86da57",
77    "bindingId": "0f15c7e3-9a4e-7696-8dc7-160708873a40"
78  },
79  "authDateTime": 1681676563580,
80  "terminalId": "22222222",
81  "authRefNum": "310689170161",
82  "paymentAmountInfo": {
83    "paymentState": "DEPOSITED",
84    "approvedAmount": 10000,
85    "depositedAmount": 10000,
86    "refundedAmount": 0,
87    "feeAmount": 0,
88    "totalAmount": 10000
89  },
90  "bankInfo": {
91    "bankCountryCode": "UNKNOWN",
92    "bankCountryName": "<Unknown>"
93  },
94  "chargeback": false,
95  "paymentWay": "CARD"
96}

Запрос отмены оплаты заказа (REST)

Для отмены оплаты заказа используется запрос reverse.do (см. раздел Координаты подключения).
Функция отмены доступна в течение ограниченного времени после оплаты, точные сроки необходимо уточнять в Банке.
Операция отмены оплаты может быть совершена только один раз. Если она закончится ошибкой, то повторная операция отмены платежа не пройдёт.
Данная функция доступна магазинам по согласованию с Банком. Для выполнения операции отмены пользователь должен обладать соответствующими правами.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательностьОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
orderIdANS36да Номер заказа в платёжной системе. Уникален в пределах системы.
languageA2нетЯзык в кодировке ISO 639-1. Описание ошибки возвращается на этом языке. Если параметр отсутствует, используется язык по умолчанию, указанный в настройках мерчанта.

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

НазваниеТипОбязательностьОписание
errorCodeN3НетКод ошибки.
errorMessageAN.512НетОписание ошибки на языке.

Коды ошибок (поле ErrorCode):

Классификация:

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Ошибка значение параметра запроса
6Незарегистрированный OrderId
7Системная ошибка

Расшифровка:

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Доступ запрещён
5Пользователь должен сменить свой пароль
5orderId не задан
6Неверный номер заказа
7Операция невозможна для текущего состояния платежа
7Реверсал невозможен. Причина: неверные внутренние значения, проверьте суммы холда, депозита
7Ошибка системы

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

https://alfa.rbsuat.com/payment/rest/reverse.do?language=ru&orderId=9231a838-ac68-4a3e-bddb-d9781433d852&password=password&userName=userName

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

language=ru&orderId=9231a838-ac68-4a3e-bddb-d9781433d852

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

{"errorCode»:"0»,"errorMessage»:"Успешно"}

Запрос возврата средств оплаты заказа (REST)

Для возврата средств используется запрос refund.do.

По этому запросу средства по указанному заказу будут возвращены плательщику. Запрос закончится ошибкой в случае, если средства по этому заказу не были списаны. Система позволяет возвращать средства более одного раза, но в общей сложности не более первоначальной суммы списания.

Для выполнения операции возврата необходимо наличие соответствующих права в системе.

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

НазваниеТипОбязательностьОписание
userNameAN.30даЛогин магазина, полученный при подключении
passwordAN.30даПароль магазина, полученный при подключении
orderIdANS36даНомер заказа в платежной системе. Уникален в пределах системы.
amountN.12даСумма платежа в копейках (или центах)
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение ошибке будет возвращено именно на этом языке.
jsonParamsСм. описаниенет

Поля дополнительной информации для последующего хранения, вида {"param":value,"param2":value 2,"param3":value 3}. Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах.Тип данных:

НазваниеТип

Возможные значения:

  • subscriptionPurpose

  • sbpTermNo*

ANS..255 байт

  • ANS..2000 байт

  • N..10

*Включение данного функционала возможно по согласованию с банком в период интеграции.

expectedDepositedAmountN.12нетПараметр служит в качестве определения, что запрос повторный. Если параметр передан, то его значение сравнивается с текущим значением depositedAmount в заказе. Операция будет проведена, только если значения совпадают. Если придут два возврата с одинаковым expectedDepositedAmount, то будет проведен только один возврат. Этот возврат изменит значение depositedAmount, и тогда второй возврат будет отклонен.
externalRefundIdAN.30нет

Идентификатор возврата. При попытке повторного возврата проверяется externalRefundId: если возврат с таким идентификатором уже был, то возвращается успешный ответ с данными по предыдущему возврату, если нет, то выполняется новый возврат.

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

НазваниеТипОбязательностьОписание
errorCodeN.2НетКод ошибки.
errorMessageAN.512НетОписание ошибки на языке.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Ошибка значение параметра запроса
6Незарегистрированный OrderId
7Системная ошибка

Расшифровка:

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Доступ запрещён
5Пользователь должен сменить свой пароль
5[orderId] не задан
6Неверный номер заказа
7Платёж должен быть в корректном состоянии
7Неверная сумма депозита (менее одного рубля)
7Ошибка системы

Запрос проверки вовлечённости карты в 3DS (REST)

Для проверки вовлечённости карты в 3DSиспользуется запрос verifyEnrollment.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательностьОписание
userNameAN.30да Логин пользователя (API)
passwordAN.30да Пароль пользователя (API)
panN12…19да Номер карты

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

НазваниеТипОбязательностьОписание
errorCodeN3нетКод ошибки.
errorMessageAN.512нетОписание ошибки.
enrolledA1нетПризнак вовлечённости карты в 3DS. Возможные значения: Y, N, U.
emitterNameAN.160нетНаименование банка-эмитента.
emitterCountryCodeAN.4нетКод страны банка-эмитента.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1Не указан номер карты
1Номер карты должен быть числом, содержащим от 13 до 19 цифр
5Пользователь должен изменить свой пароль.
5Доступ запрещён
6По заданному номеру карты информация не найдена.
7Произошла системная ошибка.

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

https://alfa.rbsuat.com/payment/rest/verifyEnrollment.do?userName=userName&password=password&pan=4111111111111111

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

pan=4111111111111111

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

{"errorCode»:"0»,"errorMessage»:"Успешно»,"emitterName»:"TEST CARD»,"emitterCountryCode»:"RU»,"enrolled»:"Y"}

Запрос добавления дополнительных параметров к заказу (REST)

Для добавления к заказу новых дополнительных параметров используется запрос addParams.do (см. раздел Координаты подключения).
Если в заказе уже существует дополнительный параметр, то при добавлении параметра с тем же именемв заказе сохранится последнее переданное значение.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
orderIdANS36да Номер заказа в платёжной системе. Уникален в пределах системы.
languageA2нетЯзык в кодировке ISO 639-1. Описание ошибки возвращается на этом языке. Если параметр отсутствует, используется язык по умолчанию, указанный в настройках мерчанта.
paramsAN.1024да Поля для передачи дополнительных параметров, вида {"param»:"value»,"param2»:"value2"}.

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

НазваниеТипОбязательноОписание
errorCodeN3да Код ошибки.
errorMessageAN.512нетОписание ошибки. Отсутствует при успешном выполнении запроса.

Коды ошибок (поле ErrorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Доступ запрещён
5Пользователь должен сменить свой пароль
6Не указан orderId
6Неверный номер заказа
7Произошла системная ошибка

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

https://alfa.rbsuat.com/payment/rest/addParams.do?language=ru&orderId=769b8dad-2318-4c01-bfc4-94532522fa68&password=password&userName=userName&params={"addParams1»:"value1»,"addParams2»:"value2"}

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

language=ru&orderId=769b8dad-2318-4c01-bfc4-94532522fa68&params={"addParams1»:"value1»,"addParams2»:"value2"}

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

{"errorCode»: 0}

Запрос статистики по платежам за период (REST)

Для получения статистики по платежам за определённый период используется запрос getLastOrdersForMerchants.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении.
passwordAN.30да Пароль магазина, полученный при подключении.
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение ошибке будет возвращено именно на этом языке.
pageNнетПри обработке запроса будет сформирован список, разбитый на страницы (с количеством записей size на одной странице). В ответе возвращается страница под номером, указанным в параметре page. Нумерация страниц начинается с 0. Если параметр не указан, будет возвращена страница под номером 0.
sizeN.3да Количество элементов на странице (максимальное значение = 200).
fromANSда Дата и время начала периода для выборки заказов в формате YYYYMMDDHHmmss.
toANSда Дата и время окончания периода для выборки заказов в формате YYYYMMDDHHmmss.
transactionStatesA.9да В этом блоке необходимо перечислить требуемые состояния заказов. Только заказы, находящиеся в одном из указанных состояний, попадут в отчёт. Несколько значений указываются через запятую. Возможные значения: CREATED, APPROVED, DEPOSITED, DECLINED, REVERSED, REFUNDED.
merchantsANSда Список Логинов мерчантов, чьи транзакции должны попасть в отчёт. Несколько значений указываются через запятую. Оставьте это поле пустым, чтобы получить список отчётов по всем доступным мерчантам (дочерним мерчантам и мерчантам, указанным в настройках пользователя).
searchByCreatedDateA.5нетВозможные значения: · true — поиск заказов, дата создания которых попадает в заданный период. · false — поиск заказов, дата оплаты которых попадает в заданный период (таким образом, в отчёте не могут присутствовать заказы в статусе CREATED и DECLINED). Значение по умолчанию — false.

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

НазваниеТипОбязательноОписание
errorCodeN.2да Код ошибки. Описание возможных кодов представлено ниже в таблице «Коды ошибок (поле errorCode)»
errorMessageAN.512нетОписание ошибки. Присутствует только при наличии ошибки (errorCode не равно 0).
orderStatuses — —Блок, содержащий информацию о заказах, попавших в отчёт. См. ниже таблицу «Параметры блока orderStatuses».
totalCountNда Общее количество элементов во отчёте (на всех страницах).
pageNда Номер текущей страницы (равный номеру страницы, переданному в запросе).
pageSizeN.3да Максимальное количество записей на странице (равно размеру страницы, переданному в запросе).

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

НазваниеТипОбязательноОписание
orderNumberAN.32да Номер (идентификатор) заказа в системе магазина.
orderStatusN.2да Состояние заказа в платёжной системе. Возможные значения представлены ниже в таблице «Поле orderStatus:».
actionCodeN.3да Код ответа.
actionCodeDescriptionAN.512да Расшифровка кода ответа.
amountN.20да Сумма платежа в минимальных единицах валюты.
currencyN3да Код валюты платежа ISO 4217. Если не указан, считается равным валюте по умолчанию.
dateANSда Дата регистрации заказа.
orderDescriptionAN.512нетОписание заказа, переданное при его регистрации
ipAN.20нетIP адрес покупателя. Указан только после оплаты.
errorCodeN.2да Код ошибки.
merchantOrderParams —нетТэг с атрибутами, в которых передаются дополнительные параметры мерчанта. См. ниже таблицу «Параметры блока merchantOrderParams».
attributes —да Атрибуты заказа в платёжной системе (номер заказа). См. ниже таблицу «Параметры блока attributes».
cardAuthInfo —нетТэг с атрибутами платежа. См. ниже таблицу «Параметры блока cardAuthInfo».
bindingInfo —нетТэг с информацией о связке, с помощью которой осуществлена оплата. См. ниже таблицу «Параметры блока bindingInfo».
authDateTimeANSнетДата/время авторизации
terminalIdAN.10нетId терминала
authRefNumAN.24нетReference number
paymentAmountInfo —нетТэг с информацией о суммах подтверждения, списания, возврата. См. ниже таблицу «Параметры блока paymentAmountInfo».
bankInfo —нетТэг с информацией о Банке-эмитенте. См. ниже таблицу «Параметры блока bankInfo».

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

НазваниеТипОбязательноОписание
nameAN.20да Название дополнительного параметра мерчанта
valueAN.1024да Значение дополнительного параметра мерчанта

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

НазваниеТипОбязательноОписание
nameA7да Название атрибута — «mdOrder».
valueANS36да Значение атрибута — номер заказа в платёжной системе (уникален в пределах системы).
Параметры блока cardAuthInfo:
НазваниеТипОбязательноОписание
------------------------------------------------------------------------------------------------
panN.19нетМаскированный номер карты, которая использовалась для оплаты.
expirationN6нетСрок истечения действия карты в формате YYYYMM.
cardholderNameA.64нетИмя держателя карты.
approvalCodeAN6нетКод авторизации платежа. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы.

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

НазваниеТипОбязательноОписание
clientIdAN.255нетНомер (идентификатор) клиента в системе магазина.
bindingIdAN.255нетИдентификатор связки, использованной для оплаты.

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

НазваниеТипОбязательноОписание
paymentStateN.9нетСостояние платежа
approvedAmountN.20нетСумма, подтверждённая к списанию.
depositedAmountN.20нетСумма списания с карты.
refundedAmountN.20нетСумма возврата.

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

НазваниеТипОбязательноОписание
bankNameAN.200нетНаименование Банка-эмитента.
bankCountryCodeAN.4нетКод страны Банка-эмитента
bankCountryNameAN.160нетНаименование страны банка-эмитента на языке, переданном в параметре language в запросе, или на языке пользователя, вызвавшего метод, если язык в запросе не указан.

Поле orderStatus может принимать следующие значения:

ЗначениеОписание
0Заказ зарегистрирован, но не оплачен
1Предавторизованная сумма захолдирована (для двухстадийных платежей)
2Проведена полная авторизация суммы заказа
3Авторизация отменена
4По транзакции была проведена операция возврата
5Инициирована авторизация через ACS банка-эмитента
6Авторизация отклонена

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
5Не заполнено одно из обязательных полей
5Неверный формат параметра transactionStates
5Доступ запрещён
7Системная ошибка
10Значение параметра size превышает максимально допустимое
10Недостаточно прав для просмотра транзакций указанного мерчанта

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

https://alfa.rbsuat.com/payment/rest/getLastOrdersForMerchants.do?userName=userName&password=password&language=ru&page=0&size=100&from=20141009160000&to=20141111000000&transactionStates=DEPOSITED,REVERSED&merchants=SevenEightNine&searchByCreatedDate=false

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

language=ru&page=0&size=100&from=20141009160000&to=20141111000000&transactionStates=DEPOSITED, REVERSED&merchants=SevenEightNine&searchByCreatedDate=false

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

{"errorCode»: 0,

«orderStatuses»: [

{"errorCode»:"0»,"orderNumber»:"58drs0Pes459Hdsddd0567a0»,"orderStatus»: 2,"actionCode»: 0,"actionCodeDescription»:"Запрос успешно обработан»,"amount»: 250000,"currency»:"810»,"date»: 1414485649233,"orderDescription»:"Opisanie»,"ip»:"212.5.125.194»,"merchantOrderParams»: [{"name»:"registr1»,"value»:"registr1"}],"attributes»: [{"name»:"mdOrder»,"value»:"f1a3365b-542c-4c8d-b34c-e9a7ee8dbc9c"}],"cardAuthInfo»: {"expiration»:"201512»,"cardholderName»:"Ivan»,"approvalCode»:"123456»,"pan»:"411111**1111"},"bindingInfo»: {"clientId»:"666»,"bindingId»:"1eabfb8e-b90e-4dc8-bef6-14bd392b1cec"},"authDateTime»: 1414485661207,"terminalId»:"111113»,"authRefNum»:"111111111111»,"paymentAmountInfo»: {"paymentState»:"DEPOSITED»,"approvedAmount»: 250000,"depositedAmount»: 250000,"refundedAmount»: 0},"bankInfo»: {"bankName»:"TEST CARD»,"bankCountryCode»:"RU»,"bankCountryName»:"Россия"}},

{"errorCode»:"0»,"orderNumber»:"57drs0Pes459Hdsddd0567a0»,"orderStatus»: 2,"actionCode»: 0,"actionCodeDescription»:"Запрос успешно обработан»,"amount»: 250000,"currency»:"810»,"date»: 1414485277286,"orderDescription»:"Opisanie»,"ip»:"212.5.125.194»,"merchantOrderParams»: [{"name»:"registr1»,"value»:"registr1"}],"attributes»: [{"name»:"mdOrder»,"value»:"09489184-bc5e-44a7-b6c4-3ca1feb8ef69"}],"cardAuthInfo»: {"expiration»:"201512»,"cardholderName»:"Ivan»,"approvalCode»:"123456»,"pan»:"411111**1111"},"bindingInfo»: {"clientId»:"666»,"bindingId»:"1eabfb8e-b90e-4dc8-bef6-14bd392b1cec"},"authDateTime»: 1414485296046,"terminalId»:"111113»,"authRefNum»:"111111111111»,"paymentAmountInfo»: {"paymentState»:"DEPOSITED»,"approvedAmount»: 250000,"depositedAmount»: 250000,"refundedAmount»: 0},"bankInfo»: {"bankName»:"TEST CARD»,"bankCountryCode»:"RU»,"bankCountryName»:"Россия"}}],

«totalCount»: 2,"page»: 0,"pageSize»: 100}

Запрос оплаты через внешнюю платёжную систему (REST)

Для оплаты заказа через внешнюю платёжную систему используется запрос paymentotherway.do (см. раздел Координаты подключения) со специальными параметрами. Возможен только запрос POST. Данная операция доступна при наличии соответствующих прав в системе.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
MDORDERANS36да Номер заказа, полученный при регистрации заказа
paymentWayANS.*да В этом параметре передаётся способ оплаты. Возможные значения: · ALFA_ALFACLICK — для оплаты с помощью «Альфа-Клик» (через систему PayByClik). · UPOP — для оплаты через систему UPOP, доступно для держателей карт China UnionPay.
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.

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

НазваниеТипОбязательноОписание
errorCodeN1да Код ошибки
errorANS.*(при ошибке)Сообщение об ошибке
infoANS.*нет

При успешном ответе. Результат попытки оплаты. Возможные значения представлены ниже:

  • Ваш платёж обработан, происходит переадресация...

  • Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. Происходит переадресация...

  • Извините, платёж не может быть совершён. Происходит переадресация...

  • Операция отклонена. Обратитесь в магазин. Происходит переадресация...

  • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...

  • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...

  • Нет связи с банком. Повторите позже. Происходит переадресация...

  • Истёк срок ожидания ввода данных. Происходит переадресация...

  • Не получен ответ от банка. Повторите позже. Происходит переадресация...

redirectANS.*нетАдрес возврата после оплаты

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1Способ оплаты не задан или указано неверное значение
2Заказ не найден
5Таймаут сесси
5Доступ запрещён
5Пользователь должен сменить свой пароль
5Системная ошибка

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

language=ru&MDORDER=c96a734c-e2c9-429c-8fda-aaa0030c8a92&paymentWay=ALFA_ALFACLICK

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

{"redirect»:"http://testjmb.alfabank.ru/PayByClick/login.jsp?orderId=b37da970-e2b8-4729-a196-b4c2ab5bb401&backUrl=+»,"info»:"Your
 order is proceeded, redirecting…»,"errorCode»: 0}

Запрос проведения платежа по связке (REST)

Для проведения платежа по связкам используется запрос paymentOrderBinding.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER. По истечении срока действия карты связка становиться недоступна для использования в оплате.

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении.
passwordAN.30да Пароль магазина, полученный при подключении.
mdOrderANS36да Номер заказа в платёжной системе. Уникален в пределах системы.
bindingIdAN.255да Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.
ipNS.15да ip-адрес плательщика.
cvcN.3нетCVC код. Этот параметр обязателен, если для мерчанта не выбрано разрешение «Может проводить оплату без подтверждения CVC».
emailANS.*нетАдрес электронной почты плательщика.
tiiA2нет

Параметр, указывающий на то, какой тип операции будет проводиться со стороны инициатора (мерчанта). Возможные значения:

  • U - внеплановая MIT CoF операция

  • F - последующая CIT CoF операция

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

НазваниеТипОбязательноОписание
redirectANS.*нетПри успешном ответе в случае SSL-платежа. URL, на который производится переадресация после платежа.
infoANS.*нет

При успешном ответе. Результат попытки оплаты. Возможные значения представлены ниже:

  • Ваш платёж обработан, происходит переадресация...

  • Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. Происходит переадресация...

  • Извините, платёж не может быть совершён. Происходит переадресация...

  • Операция отклонена. Обратитесь в магазин. Происходит переадресация...

  • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация...

  • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация...

  • Нет связи с банком. Повторите позже. Происходит переадресация...

  • Истёк срок ожидания ввода данных. Происходит переадресация...

  • Не получен ответ от банка. Повторите позже. Происходит переадресация...

errorCodeN1да Код ошибки.
errorMessageAN.*нетПри ответе с ошибкой. Сообщение об ошибке.
errorAN.*нетПри ответе с ошибкой. Сообщение об ошибке.
processingErrorTypeANS.*нетТип ошибки процессинга. Передаётся, когда ошибка происходит на стороне процессинга, а не в платёжном шлюзе, при том что попытки проведения платежа ещё не исчерпаны и переадресации на финальную страницу не происходит. Расшифровка ошибки передаётся в параметре error.
acsUrlANS.*нетПри успешном ответе в случае 3DS-платежа. URL для перехода на ACS.
paReqANS.*нетПри успешном ответе в случае 3DS-платежа. Payment Authentication Request.
termUrlANS.*нетПри успешном ответе в случае 3DS-платежа. URL для возврата с ACS.

Коды ошибок (поле success):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1Необходимо указать CVC2/CVV2, поскольку у мерчатна нет разрешения на проведение оплаты без CVC
1Неверный формат CVC
1Неверный язык
2Связка не найдена
2Заказ с таким номером не найден
5Доступ запрещён
5Пользователь, осуществляющий вызов сервиса, должен изменить свой пароль
7Системная ошибка

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

mdOrder=eb49300c-95b7-4dcd-9739-eee6c61f2ac4&bindingId=308042e8-2b28-484a-811e-f786c9776c3b&cvc=123

Пример успешного ответа при SSL-платеже:

{"redirect»:"http://ya.ru?orderId=eb49300c-95b7-4dcd-9739-eee6c61f2ac4»,"info»:"Ваш платёж обработан, происходит переадресация…»,"errorCode»: 0}

Пример успешного ответа при 3DS-платеже:

{"info»:"Ваш платёж обработан, происходит переадресация…»,"acsUrl»:"https://alfa.rbsuat.com/payment/acs/auth/start.do»,"paReq»:"eJxVUdtugkAQ/RXCOy7LRdQMa2ixKU28pGrfyTICqSzKpcW/765AbR8mOWcyOWfmDCy74qx9YVXn\npfB1OjF1DQUvk1ykvn48vBgzfcngkFWI4R55WyGDNdZ1nKKWJ74+TVz05tPE8NyZbThOfDJmFjcN\ni55Mz+MJzu25zmAXvOOVwWDEpM/EAjJSqVjxLBYNg5hfn6INcyxvappABgoFVlHIPCA9ABEXyPb4\nhWKVp1mzyQUCuTeBl61oqhubOjaQkUBbnVnWNJcFId5sPuFlAUT1gDy8d61CtdTo8oStw+C7r5W5\nCVNZx9v6ENmyfCBqApK4QWaZ1KXUcjVqLVx7Ycu77n2IC2XOqDqjh3BRDsGj/5eDDLeS2Y+bjwyw\nu5QC5YRU/sVAHts+v6rceCODyfbb7m3bfmzD22dnlycaFHF+DGl0y6hK8z6kFHMZity7l1QEiJIh\nw6PI8GOJ/v3+BweMtyE=»,"termUrl»:"https://web.rbsuat.com/:443/ab/rest/finish3ds.do»,"errorCode»: 0}

Пример ответа с ошибкой:

{"error»:"Access denied»,"errorCode»: 5,"errorMessage»:"Access denied"}

Запрос деактивации связки (REST)

Для того чтобы сделать существующую связку неактивной используется запрос unBindCard.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении.
passwordAN.30да Пароль магазина, полученный при подключении.
bindingIdAN.255да Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.

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

НазваниеТипОбязательноОписание
errorCodeN3нетКод ошибки.
errorMessageAN.512нетОписание ошибки.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
2Неверное состояние связки (при попытке деактивировать неактивную связку)
2Связка не найдена
5Доступ запрещён
5Пользователь должен сменить свой пароль
7Системная ошибка

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

https://alfa.rbsuat.com/payment/rest/unBindCard.do?userName=userName&password=password&bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

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

bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

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

{"errorCode»:"2»,"errorMessage»:"Binging isn't active"}

Запрос активации связки (REST)

Для активации деактивированной ранее связки используется запрос bindCard.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении.
passwordAN.30да Пароль магазина, полученный при подключении.
bindingIdAN.255да Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.

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

НазваниеТипОбязательноОписание
errorCodeN3нетКод ошибки.
errorMessageAN.512нетОписание ошибки.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
2Неверное состояние связки (при попытке активировать активную связку)
2Связка не найдена
5Доступ запрещён
5Пользователь должен сменить свой пароль
7Системная ошибка

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

https://alfa.rbsuat.com/payment/rest/bindCard.do?userName=userName&password=password&bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

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

bindingId=fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc

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

{"errorCode»:"2»,"errorMessage»:"Binding is active"}

Запрос изменения срока действия связки (REST)

Для продления срока действия связки используется запрос extendBinding.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении.
passwordAN.30да Пароль магазина, полученный при подключении.
bindingIdANS36да Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.
newExpiryN6да Новая дата (год и месяц) окончания срока действия связки в формате YYYYMM.
languageA2нетЯзык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).

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

НазваниеТипОбязательноОписание
errorCodeN1да Код завершения
errorMessageANS.*(при ошибке)Сообщение об ошибке

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1Не указан или неверно указан один или несколько обязательных параметров
2Связка не найдена
5Доступ запрещён
5Пользователь должен сменить свой пароль
7Системная ошибка

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

https://alfa.rbsuat.com/payment/rest/extendBinding.do?userName=userName&password=password&bindingId=1eabfb8e-b90e-4dc8-bef6-14bd392b1cec&newExpiry=201612&language=ru

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

bindingId=1eabfb8e-b90e-4dc8-bef6-14bd392b1cec&newExpiry=201612&language=ru

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

{"errorCode»:"0»,"errorMessage»:"Успешно"}

Запрос списка связок клиента (REST)

Для получения списка связок по идентификатору клиента используется запрос getBindings.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении.
passwordAN.30да Пароль магазина, полученный при подключении.
clientIdAN.255да Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок.

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

НазваниеТипОбязательноОписание
errorCodeN1да Код завершения
errorMessageANS.*(при ошибке)Сообщение об ошибке

Элемент binding (состоит из bindingId, maskedPan и expiryDate):

НазваниеТипОбязательноОписание
bindingIdAN.255нетИдентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок.
maskedPanN.19нетМаскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа.
expiryDateN6нетСрок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок
1clientId не задан
2Информация не найдена
5Доступ запрещён
5Пользователь должен сменить свой пароль
7Системная ошибка

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

https://alfa.rbsuat.com/payment/rest/getBindings.do?userName=userName&password=password&clientId=client

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

clientId=client

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

{"bindings»: [{"bindingId»:"fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc»,"maskedPan»:"4000 00** **** **02»,"expiryDate»:"201512"}],"errorCode»:"0»,"errorMessage»:"Успешно"}

Запрос списка связок банковской карты (REST)

Для получения списка связок банковской карты используется метод getBindingsByCardOrId.do (см. раздел Координаты подключения).
При наличии соответствующих разрешений магазин может запросить список всех связок, относящихся к определённой банковской карте. Сделать это можно по номеру карты или по известному идентификатору связки.При наличии соответствующих разрешений магазин может запросить список всех связок, относящихся к определённой банковской карте. Сделать это можно по номеру карты или по известному идентификатору связки.
В ответе возвращаются все связки, доступные мерчанту в соответствии с его настройками.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

НазваниеТипОбязательноОписание
userNameAN.30да Логин магазина, полученный при подключении
passwordAN.30да Пароль магазина, полученный при подключении
panN.19нетНомер карты. Обязательно, если не указан bindingId. Поиск по полному номеру карты доступен магазинам только при наличии соответствующего разрешения.
bindingIdAN.255нетИдентификатор связки. Обязательно, если не указан pan. Если в запросе передаётся pan, то значение bindingId игнорируется.
showExpiredbooleanнетПараметр определяет необходимость отображать связки с истёкшим сроком действия карты. Возможные значения: true, false. По умолчанию параметр принимает значение false.

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

НазваниеТипОбязательноОписание
errorCodeN1да Код завершения.
errorMessageANS.*да Описание кода завершения.

Элемент bindings (содержит блоки, состоящие из параметров bindingId, maskedPan, expiryDate и clientId):

НазваниеТипОбязательноОписание
bindingIdAN.255нетИдентификатор связки.
maskedPanN.19нетМаскированный номер карты, которая использовалась для оплаты.
expiryDateN6нетСрок истечения действия карты в формате YYYYMM.
clientIdAN.255нетНомер (идентификатор) клиента в системе мерчанта.

Коды ошибок (поле errorCode):

ЗначениеОписание
0Обработка запроса прошла без системных ошибок.
1Не указан ни номер карты, ни идентификатор связки.
2Информация не найдена.
5Доступ запрещён.
5Пользователь должен сменить свой пароль.
7Системная ошибка.

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

https://alfa.rbsuat.com/payment/rest/getBindingsByCardOrId.do?userName=login&password=password&pan=4111111111111111

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

{"errorCode»:"0»,"errorMessage»:"Успешно»,"bindings»: [{"bindingId»:"0b8edeb2-8380-4092-bf7e-1e1a78f2b15e»,"maskedP
an»:"411111**1111»,"expiryDate»:"201912»,"clientId»:"12"}, {"bindingId»:"6a8c0738-cc88-4200-acf6-afc264d66cb0»,"mas
kedPan»:"411111**1111»,"expiryDate»:"201912»,"clientId»:"666"}, {"bindingId»:"97a70989-c1fb-49f7-8a42-27c19dc160dw»
,"maskedPan»:"411111**1111»,"expiryDate»:"201512»,"clientId»:"666"}]}

Запрос на оплату через Apple Pay (REST)

Для регистрации заказа используется запрос payment.do (см. раздел Координаты подключения).

Для операций отмены, возврата и завершения платежа следует использовать стандартные запросы к платёжному шлюзу.

Вы можете протестировать работу данного метода с помощью SWAGGER

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

{"merchant»:"merchant_name»,"orderNumber»:"applepay123456794»,"description»:"descritpion_text», «paymentToken»:"eyJ2ZXJzaW9uIjoiRUNfdjEiLCJkYXRhIjoiNTFhUTNGOXl0Q1YwYTdpQS9mMUh0RGc1TnBvSVZtc2RFa1FvTlpoOW95ZVA3eGgvVDk4dXJkenJDN0dOQ3o4c1FodXpXOVZNWUhGU25DTytTWXo0eDYrTnZwZjdCUzhOcnlUWk1Keldtcml0VUZJVytwVjNvNWY4M0F3OU55c1BCMlAxZGZicS9hZDVzV1RwZTMwTnV2UDltRGhaUStET1M3RzB6MDZSNHRXY0R0VFErT0U5YlI1OHFQRUdnTTRiSmRmUklZb25oQlJrdWY2cGw4aU9PQ0VvS01QN2lRck84Z2IrVGNnSjVZSDdDL3J3enBDUVZjMGQxNWJuME9wbE1SOGwxMDcrMDR4ZVVWT3BUMGI3cHRmYnA3VmVaeHVXaHhSTTlHYlF5QmVkVlJHQ2toN3kyREtZY3BRdjJqM1h2L0NjNzRKaVBZM09DTFVEMEIvS0UwUFo1TnJvUEJFUmZ2a1B4WUFzV1ZmM1E3UUtTcTk4Z3p5UXlrWEpwTmFwcEt6cENDMkNKU09XdzVkenNPWjAiLCAic2lnbmF0dXJlIjoiTUlBR0NTcUdTSWIzRFFFSEFxQ0FNSUFDQVFFeER6QU5CZ2xnaGtnQlpRTUVBZ0VGQURDQUJna3Foa2lHOXcwQkJ3RUFBS0NBTUlJRDVqQ0NBNHVnQXdJQkFnSUlhR0QybWRuTXB3OHdDZ1lJS29aSXpqMEVBd0l3ZWpFdU1Dd0dBMVVFQXd3bFFYQndiR1VnUVhCd2JHbGpZWFJwYjI0Z1NXNTBaV2R5WVhScGIyNGdRMEVnTFNCSE16RW1NQ1FHQTFVRUN3d2RRWEJ3YkdVZ1EyVnlkR2xtYVdOaGRHbHZiaUJCZFhSb2IzSnBkSGt4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRFMk1EWXdNekU0TVRZME1Gb1hEVEl4TURZd01qRTRNVFkwTUZvd1lqRW9NQ1lHQTFVRUF3d2ZaV05qTFhOdGNDMWljbTlyWlhJdGMybG5ibDlWUXpRdFUwRk9SRUpQV0RFVU1CSUdBMVVFQ3d3TGFVOVRJRk41YzNSbGJYTXhFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRWdqRDlxOE9jOTE0Z0xGRFptMFVTNWpmaXFRSGRiTFBnc2MxTFVtZVkrTTlPdmVnYUphakNIa3d6M2M2T0twYkM5cStoa3dORnhPaDZSQ2JPbFJzU2xhT0NBaEV3Z2dJTk1FVUdDQ3NHQVFVRkJ3RUJCRGt3TnpBMUJnZ3JCZ0VGQlFjd0FZWXBhSFIwY0RvdkwyOWpjM0F1WVhCd2JHVXVZMjl0TDI5amMzQXdOQzFoY0hCc1pXRnBZMkV6TURJd0hRWURWUjBPQkJZRUZBSWtNQXVhN3UxR01aZWtwbG9wbmtKeGdoeEZNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVJL0pKeEUrVDVPOG41c1QyS0d3L29ydjlMa3N3Z2dFZEJnTlZIU0FFZ2dFVU1JSUJFRENDQVF3R0NTcUdTSWIzWTJRRkFUQ0IvakNCd3dZSUt3WUJCUVVIQWdJd2diWU1nYk5TWld4cFlXNWpaU0J2YmlCMGFHbHpJR05sY25ScFptbGpZWFJsSUdKNUlHRnVlU0J3WVhKMGVTQmhjM04xYldWeklHRmpZMlZ3ZEdGdVkyVWdiMllnZEdobElIUm9aVzRnWVhCd2JHbGpZV0pzWlNCemRHRnVaR0Z5WkNCMFpYSnRjeUJoYm1RZ1kyOXVaR2wwYVc5dWN5QnZaaUIxYzJVc0lHTmxjblJwWm1sallYUmxJSEJ2YkdsamVTQmhibVFnWTJWeWRHbG1hV05oZEdsdmJpQndjbUZqZEdsalpTQnpkR0YwWlcxbGJuUnpMakEyQmdnckJnRUZCUWNDQVJZcWFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyMHZZMlZ5ZEdsbWFXTmhkR1ZoZFhSb2IzSnBkSGt2TURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dVlYQndiR1V1WTI5dEwyRndjR3hsWVdsallUTXVZM0pzTUE0R0ExVWREd0VCL3dRRUF3SUhnREFQQmdrcWhraUc5Mk5rQmgwRUFnVUFNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURhSEdPdWkrWDJUNDRSNkdWcE43bTJuRWNyNlQ2c01qT2haNU51U28xZWd3SWhBTDFhKy9ocDg4REtKMHN2M2VUM0Z4V2NzNzF4bWJMS0QvUUozbVdhZ3JKTk1JSUM3akNDQW5XZ0F3SUJBZ0lJU1cwdnZ6cVkycGN3Q2dZSUtvWkl6ajBFQXdJd1p6RWJNQmtHQTFVRUF3d1NRWEJ3YkdVZ1VtOXZkQ0JEUVNBdElFY3pNU1l3SkFZRFZRUUxEQjFCY0hCc1pTQkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFVE1CRUdBMVVFQ2d3S1FYQndiR1VnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13SGhjTk1UUXdOVEEyTWpNME5qTXdXaGNOTWprd05UQTJNak0wTmpNd1dqQjZNUzR3TEFZRFZRUUREQ1ZCY0hCc1pTQkJjSEJzYVdOaGRHbHZiaUJKYm5SbFozSmhkR2×2YmlCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUd0Z4R0VHZGRraGRVYVhpV0JCM2JvZ0tMdjNudXVUZUNOL0V1VDRUTlcxV1piTmE0aTBKZDJEU0pPZTdvSS9YWVh6b2pMZHJ0bWNMN0k2Q21FLzFSRm80SDNNSUgwTUVZR0NDc0dBUVVGQndFQkJEb3dPREEyQmdnckJnRUZCUWN3QVlZcWFIUjBjRG92TDI5amMzQXVZWEJ3YkdVdVkyOXRMMjlqYzNBd05DMWhjSEJzWlhKdmIzUmpZV2N6TUIwR0ExVWREZ1FXQkJRajhrbkVUNVBrN3lmbXhQWW9iRCtpdS8wdVN6QVBCZ05WSFJNQkFmOEVCVEFEQVFIL01COEdBMVVkSXdRWU1CYUFGTHV3M3FGWU00aWFwSXFaM3I2OTY2L2F5eVNyTURjR0ExVWRId1F3TUM0d0xLQXFvQ2lHSm1oMGRIQTZMeTlqY213dVlYQndiR1V1WTI5dEwyRndjR3hsY205dmRHTmhaek11WTNKc01BNEdBMVVkRHdFQi93UUVBd0lCQmpBUUJnb3Foa2lHOTJOa0JnSU9CQUlGQURBS0JnZ3Foa2pPUFFRREFnTm5BREJrQWpBNnozS0RVUmFac1liN05jTld5bUsvOUJmdDJROTFUYUtPdnZHY2dWNUN0NG40bVBlYldaK1kxVUVOajUzcHd2NENNREl0MVVRaHNLTUZkMnhkOHpnN2tHZjlGM3dzSVcyV1Q4WnlhWUlTYjFUNGVuMGJtY3ViQ1lraFlRYVpEd21TSFFBQU1ZSUJYekNDQVZzQ0FRRXdnWVl3ZWpFdU1Dd0dBMVVFQXd3bFFYQndiR1VnUVhCd2JHbGpZWFJwYjI0Z1NXNTBaV2R5WVhScGIyNGdRMEVnTFNCSE16RW1NQ1FHQTFVRUN3d2RRWEJ3YkdVZ1EyVnlkR2xtYVdOaGRHbHZiaUJCZFhSb2IzSnBkSGt4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRBZ2hvWVBhWjJjeW5EekFOQmdsZ2hrZ0JaUU1FQWdFRkFLQnBNQmdHQ1NxR1NJYjNEUUVKQXpFTEJna3Foa2lHOXcwQkJ3RXdIQVlKS29aSWh2Y05BUWtGTVE4WERURTJNVEV3TVRBNU5UY3dObG93THdZSktvWklodmNOQVFrRU1TSUVJQWpSdk9nWkxDa0w5ZmNCZjdOSm5RY3hsd2ltL09ieHkrcEltZ1M0TGRUYU1Bb0dDQ3FHU000OUJBTUNCRWN3UlFJZ1BKaHlkTXE5UDdTaHJFT2RxVk5KUk84QnN1MC93SXNCS0Y1cnlFR0JPSDRDSVFEeWo4Wml3VVV5alRJUFRUZDBKTTlaMExIdGZTQVhOWVN2T0t4eGN3MTlod0FBQUFBQUFBPT0iLCJoZWFkZXIiOnsiZXBoZW1lcmFsUHVibGljS2V5IjoiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNUdmb2t2U2Z3WnV3aXYwSGxKVE1MS0dlMS96dWtjejczSFlvVjh5cjNGNWdmZmthVmNQTmptNjFhdFNOZm9UZUxiSnQ1aHBLWkJuSWlwZlVXSXZxMmc9PSIsInB1YmxpY0tleUhhc2giOiJLMG9KcmJiYURVUDh6YitSUEZhTmxVUTdTU2I3T1FEWERVeU9vM0JXdDJzPSIsInRyYW5zYWN0aW9uSWQiOiIyYTNkZjhjNDg0Y2JmMDg1OTgyN2Y0ZDBkZjhkYjY4YjYyNjBlNTIxYWUwZmI4YjI1NDRmNzNiM2RlMDVlYjE5In19»,"language»:"ru»,"additionalParameters»: {},"preAuth»:"true"}

Описание параметров запроса приведено в таблице ниже.

Для корректной обработки запроса необходимо добавить заголовок с определением типа содержимого — Content-Type: application/json.

ПараметрТип данныхОбязательный параметрОписание
merchantAN.30Да Имя входа продавца в системе платёжного шлюза.
orderNumberAN.32Да Уникальный номер заказа на стороне продавца.
descriptionANS.512НетОписание заказа.
languageA2НетЯзык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.
additionalParametersAN.1024НетДополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Дополнительные параметры следует указывать в следующем формате. «имя_параметра»: «значение_параметра» Каждую новую пару имени и значения параметра следует отделять запятой.
clientIdANS.255НетНомер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей.
preAuthA.5НетПараметр, определяющий необходимость предварительной авторизации (блокирования средств на счёте клиента до их списания). Доступны следующие значения: · true (истина) — параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания); · false (ложь) — параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу.
paymentTokenAN.8192Да 

Параметр paymentToken должен содержать закодированное в Base64 значение свойства paymentData, полученного из объекта PKPaymentToken Object от системы Apple Pay (подробнее см. документацию Apple Pay).

Таким образом, чтобы сделать запрос на оплату в платёжный шлюз, продавец должен:

  1. получить от системы Apple Pay объект PKPaymentToken Object, содержащий свойство paymentData;

  2. извлечь значение свойства paymentData и закодировать его в Base64;

  3. включить закодированное значение свойства paymentData в качестве значения парамера paymentToken в запросе на оплату, который продавец направит в платёжный шлюз.

Пример получаемого продавцом от Apple PKPaymentToken Object выглядит следующим образом:

1{
2  «paymentData»: {
3    «data»: «vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN/aQQEThe2pQ0c7hgzzZlA6TpkIR/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwXp6mOwJZ6ZFO/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1/dFvQJjDYbMorKQ8GJbWtlsVbKsy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7/404kMGpnHgkNVqFc/4SN0U2XQ5rrb14DM8M69w=»,
4    «signature»: «MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDkyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O/0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22\/VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnwSoyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou\/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7\/S5LMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwowV3bF3zODuQZ/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDMxNzEwMzgzOVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgvL+q07/reM0N/5b0hwWT7TJReVTdS9QX5SPhiqeie+cwCgYIKoZIzj0EAwIERzBFAiEAttC68Xyzs6I0+tAKmg6x+0UrqmkQN/V5c8RMMIEJHooCIHIgUHbAt2p5WrFHQKrAVL4c7nohRplZWVbVu6wbBeCgAAAAAAAA»,
5    «header»: {
6      «publicKeyHash»: «fpvAnSDwQFX4NX4pghdjpNwUFhoTH/DDGhew94uJaRA=»,
7      «ephemeralPublicKey»: «MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==»,
8      «transactionId»: «38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2»
9    },
10    «version»: «EC_v1»
11  },
12  «transactionIdentifier»: «38E4C267EF1DE62A343D0ECCADA3F7E19F6B22FFC7EDE899C039865432BA6AA2»,
13  «paymentMethod»: {
14    «network»: «Visa»,
15    «type»: «debit»,
16    «displayName»: «Visa5223»
17  }
18}

Значение свойства paymentData (из примера выше), которое нужно закодировать в Base64 и передать в запросе на оплату в платёжный шлюз, выглядит следующим образом:

{
    «data»: «vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN\/aQQEThe2pQ0c7hgzzZlA6TpkIR\/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwX+p6mOwJZ6ZFO\/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1\/dFvQJjDYbMorKQ8+GJbWtlsVb+Ksy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7\/404kMGpnHgkNVqFc\/4SN0U2XQ5rrb14DM8M69w=»,"signature»:"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDkyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O\/0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22\/VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB\/wQCMAAwHwYDVR0jBBgwFoAUI\/JJxE+T5O8n5sT2KGw\/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB\/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB\/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnw+Soyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+\/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou\/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT\/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7\/S5LMA8GA1UdEwEB\/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH\/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr\/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC\/gIwMi3VRCGwowV3bF3zODuQZ\/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDMxNzEwMzgzOVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgvL+q07\/reM0N\/5b0hwWT7TJReVTdS9QX5SPhiqeie+cwCgYIKoZIzj0EAwIERzBFAiEAttC68Xyzs6I0+tAKmg6x+0UrqmkQN\/V5c8RMMIEJHooCIHIgUHbAt2p5WrFHQKrAVL4c7nohRplZWVbVu6wbBeCgAAAAAAAA»,
    «header»: {
        «publicKeyHash»:"fpvAnSDwQFX4NX4pghdjpNwUFhoTH\/DDGhew94uJaRA=»,
        «ephemeralPublicKey»:"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB\/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==»,
        «transactionId»:"38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2»
    },
    «version»:"EC_v1»
}

Примеры и описание ответа

Успешная оплата

{
«success»: true,
«data»: {
    «orderId»: «12312312123»
  }
}

Неуспешная оплата

{
  «error»: {
    «code»: 1,
    «description»: «Processing Error»,
    «message»: «Недостаточно средств на карте»
  },
  «success»: false
}

Описание параметров ответа приведено в таблице ниже.

ПараметрВложенный параметрТип данныхОбязательный параметрОписание
successНе актуальноA.5Да Указывает на успешность проведения платежа. Доступны следующие значения: true (истина) — платёж прошёл успешно; false (ложь) — платёж не прошёл.
data (возвращается, только если платёж прошёл успешно)orderIdANS36Да Уникальный для продавца номер заказа в платёжной системе.
error (возвращается, только если платёж не прошёл)codeN.2Да Код ошибки.
description —ANS.512Да Подробное техническое объяснение ошибки — содержимое этого параметра не предназначено для отображения пользователю.
message —AN.512Да Понятное описание ошибки — предназначено для отображения пользователю.

Запрос на проведение рекуррентных платежей через Apple Pay (REST)

Для регистрации заказа используется запрос recurrentPayment.do (см. раздел Координаты подключения).

Вы можете протестировать работу данного метода с помощью SWAGGER

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

1{
2  «userName»: «userName»,
3  «password»: «password»,
4  «orderNumber»: «UAF-203974-DE-12»,
5  «language»: «RU»,
6  «bindingId»: «binding_id»,
7  «amount»: 12 300,
8  «currency»: «810»,
9  «description»: «Test description»,
10  «additionalParameters»: {
11    «firstParamName»: «firstParamValue»,
12    «secondParamName»: «secondParamValue»
13  }
14 }

Описание параметров представлено в таблице ниже.

ПараметрОбязательноОписание
userNameДа Имя пользователя с доступом к API платёжного шлюза.
passwordДа Пароль пользователя с доступом к API платёжного шлюза.
orderNumberДа Номер заказа.
languageНетДвухбуквенный код языка.
bindingIdДа Идентификатор связки.
amountДа Сумма заказа в минимальных единицах валюты (например, в копейках).
currencyНетЦифровой код валюты ISO 4217.
descriptionНетОписание заказа.
additionalParametersНет«имя параметра 1»: «значение параметра 1», «имя параметра 2»: «значение параметра 2»

Примеры и описания ответа

Ниже представлен пример успешной оплаты.

{"success»: true,"data»: {"orderId»:"f7beebe4-7c9a-43cf-8e26-67ab741f9b9e"},"orderStatus»: {"errorCode»:"0»,"orderNumber»:"UAF-203974-DE-12»,"orderStatus»: 2,"actionCode»: 0,"actionCodeDescription»:»»,"amount»: 12300,"currency»:"810»,"date»: 1491333938243,"orderDescription»:"Test description»,"merchantOrderParams»: [{"name»:"firstParamName»,"value»:"firstParamValue"}, {"name»:"secondParamName»,"value»:"secondParamValue"}],"attributes»: [],"cardAuthInfo»: {"expiration»:"201912»,"cardholderName»:"sdf sdf»,"approvalCode»:"123456»,"paymentSystem»:"VISA»,"pan»:"411111**1111"},"authDateTime»: 1491333939454,"terminalId»:"11111»,"authRefNum»:"111111111111»,"paymentAmountInfo»: {"paymentState»:"DEPOSITED»,"approvedAmount»: 12300,"depositedAmount»: 12300,"refundedAmount»: 0},"bankInfo»: {"bankCountryName»:"<Неизвестно>"},"chargeback»: false,"operations»: [{"amount»: 12300,"cardHolder»:"sdf sdf»,"authCode»:"123456"}]}}

Ниже представлен пример неуспешной оплаты.

{
  «error»: {
    «code»: «10»,
    «description»: «Заказ с таким номером уже зарегистрирован.»,
    «message»: «Заказ с таким номером уже зарегистрирован.»
  },
  «success»: false
}

Описание параметров ответа приведено в таблице ниже.

ПараметрВложенный параметрОбязательный параметрОписание
successНе актуальноДа Указывает на успешность проведения платежа. Доступны следующие значения: true (истина) — платёж прошёл успешно; false (ложь) — платёж не прошёл.
data (возвращается, только если платёж прошёл успешно)orderIdДа Уникальный для продавца номер заказа в платёжной системе.
error (возвращается, только если платёж не прошёл)codeДа Код ошибки.
description —Да Подробное техническое объяснение ошибки — содержимое этого параметра не предназначено для отображения пользователю.
message —Да Понятное описание ошибки — предназначено для отображения пользователю.

Коды ошибок

Код ошибкиСообщение
0Обработка прошла без системных ошибок.
1Неверные данные платежа.
1Невозможно использовать связку для повторяющихся платежей.
1Неверные параметры платежа.
1Неверный номер заказа.
4Неверный идентификатор связки.
5Возможность использования связок отключена.
5Неверная сумма.
5Неверное имя пользователя.
5Неверный пароль.
5Ошибка аутентификации.
5Ошибка аутентификации.
10Заказ с таким номером уже зарегистрирован.

Запрос на оплату через Google Pay (REST)

Для регистрации заказа используется запрос payment.do (см. раздел Координаты подключения).

Для операций отмены, возврата и завершения платежа следует использовать стандартные запросы к платёжному шлюзу.

Вы можете протестировать работу данного метода с помощью SWAGGER

Описание параметров представлено в таблице ниже.

ПараметрОбязательноОписание
merchantДа Имя входа продавца в системе платёжного шлюза.
orderNumberДа Уникальный номер заказа на стороне продавца.
descriptionНетОписание заказа.
languageНетЯзык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.
additionalParametersНет

Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Дополнительные параметры следует указывать в следующем формате.

"имя_параметра": "значение_параметра"

Каждую новую пару имени и значения параметра следует отделять запятой.

Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека.

preAuthНетПараметр, определяющий необходимость предварительной авторизации (блокирования средств на счету клиента до их списания). Доступны следующие значения: — true (истина) — параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания); — false (ложь) — параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу.
clientIdНетНомер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей.
paymentTokenДаТокен, полученный от Google Pay и закодированный в Base64.
ipДаIP-адрес плательщика.
amountДаСумма платежа в минимальный единицах валюты (например, в копейках).
currencyCodeНетЦифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль).
emailНет (см. описание)Адрес электронной почты. Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона.
phoneНет (см. описание)Номер телефона. Обязателен, если у интернет-магазина настроена фискализация и не указан адрес электронной почты.

Ниже представлен пример запроса на оплату.

Для корректной обработки запроса необходимо добавить заголовок с определением типа содержимого — Content-Type: application/json.

1{
2    «merchant»: «OurBestMerchantLogin»,
3    «orderNumber»: «UAF-203974-DE»,
4    «language»: «RU»,
5    «preAuth»: true,
6    «description»: «Test description»,
7    «additionalParameters»:
8    {
9        «firstParamName»: «firstParamValue»,
10        «secondParamName»: «secondParamValue»
11    },
12    «paymentToken»: «eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=»,
13    «ip»: «127.0.0.1»,
14    «amount»: «230000»,
15    «currencyCode»: 643
16}

Описание параметров ответа приведены в таблице ниже.

ПараметрВложенный параметрОбязательный параметрОписание
successНе актуальноДа Указывает на успешность проведения платежа. Доступны следующие значения: true (истина) — платёж прошёл успешно; false (ложь) — платёж не прошёл.
data (возвращается, только если платёж прошёл успешно)orderIdДа Уникальный для продавца номер заказа в платёжной системе.
error (возвращается, только если платёж не прошёл)codeДа Код ошибки.
errordescriptionДа Подробное техническое объяснение ошибки — содержимое этого параметра не предназначено для отображения пользователю.
errormessageДа Понятное описание ошибки — предназначено для отображения пользователю.
termUrlНе актуальноНетНе используется при платежах, не требующих дополнительной аутентификации на ACS банка-эмитента.
acsUrlНе актуальноНетНе используется при платежах, не требующих дополнительной аутентификации на ACS банка-эмитента.
paReqНе актуальноНетНе используется при платежах, не требующих дополнительной аутентификации на ACS банка-эмитента.

Примеры и описание ответа

Успешная оплата

{
«success»: true,
«data»: {
 «orderId»: «12312312123»
 }

Не успешная оплата

{
  «error»: {
    «code»: 1,
    «description»:
«Processing Error»,
    «message»:
«Недостаточно средств на карте»
  },
  «success»: false
}

Описание возможных кодов ошибок представлено в таблице ниже.

Код ошибкиСообщение об ошибке
0Обработка запроса прошла без системных ошибок
1Недостаточно средств на карте
5Доступ запрещён
5Пользователь должен сменить свой пароль
7Системная ошибка
10Некорректное значение параметра paymentToken
10Некорректное значение параметра orderNumber
10Некорректное значение параметра merchant
10Некорректное значение параметра ip
10Расшифровка переданных данных неуспешна
10Отсутствует приватный ключ

Запрос на оплату чере AlfaPay (/alfapay/payment.do)

Для регистрации и инициации оплаты c помощью AlfaPay используется метод /alfapay/payment.do. (см. раздел Координаты подключения).
Метод: HTTP POST.
Параметры запроса:

ПараметрТип данныхОбязательный параметрОписание
userNameAN..30Да API-логин, переданный продавцу при регистрации в ПШ.
passwordAN..30Да Пароль от API-логина продавца, переданный продавцу при регистрации в ПШ.
orderNumberANS..32Да Уникальный номер (идентификатор) заказа в системе продавца.
description ANS..598Нет Описание заказа в свободной форме. Чтобы получить возможность отправлять это поле в процессинг, обратитесь в техническую поддержку.
language A2Нет Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.
feeInput N..8Нет (см. описание) 

Сумма комиссии в минимальных единицах валюты.

Параметр передается только при включении соответствующей пермиссии.

additionalParameters См. описаниеНет 

Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Дополнительные параметры следует указывать в следующем формате.

"имя_параметра": "значение_параметра"

Каждую новую пару имени и значения параметра следует отделять запятой.

Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека.

preAuth booleanНет 

Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счету клиента до их списания). Доступны следующие значения:

  • true (истина) - параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания);

  • false (ложь) - параметр выключен (списание происходит сразу) - значение по умолчанию.

Возможность проводить двухстадийные платежи предоставляется по отдельному запросу.

ipANS..39Да

IP-адрес пользователя, который оплачивал заказ (IPv4/IPv6).

Если IP не собирается на стороне продавца, то допустимо выставить 0.0.0.0

amountN..12ДаСумма платежа в минимальных единицах валюты.
currencyCodeN3НетЦифровой код валюты платежа ISO 4217.
emailANS..40Нет (см. описание)Электронная почта покупателя. Можно указать несколько адресов электронной почты через запятую и без пробелов - в этом случае чек будет отправлен на все указанные адреса.
phoneANS..12Нет (см. описание)

Номер телефона клиента. Если клиент из РФ, то номер можно вводить и с кодом, и без кода страны (+7). Например:

  • +79998887766;

  • 9998887766

Если при определении IP клиента, окажется, что он из любой другой страны, кроме РФ, то номер телефона вводится и возвращается с кодом страны (+380.../+56...и т. д.).

В случае передачи номера в отдельном параметре и в дополнительных параметрах, в качестве основного использоваться будет номер, указанный в настоящем параметре phone.

.
returnUrlANS..512Да

Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru/ вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.

Адрес нельзя указывать относительным путем, т.е. он не должен начинаться на "." и "/". В противном случае вернется ошибка 4: "URL возврата некорректен"

Например:

failUrlANS..512Нет

Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru/ вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.

Адрес нельзя указывать относительным путем, т.е. он не должен начинаться на "." и "/". В противном случае вернется ошибка 4: "URL возврата некорректен"

Например:

dynamicCallbackUrlANS..512Нет

Параметр для передачи динамического адреса, для получения "платежных" callback-уведомления по заказу, активированные для продавца (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа).

Не "платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес.

billingPayerDataСм. описание нижеНетБлок c регистрационными данными клиента (адрес, почтовый индекс), необходимыми для прохождения проверки адреса в рамках сервисов AVS/AVV.

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

НазваниеТипОбязательноОписание
billingCityAN...50Нет Город, зарегистрированный по конкретной карте у Банка Эмитента
billingCountryAN...50Нет Страна, зарегистрированная по конкретной карте у Банка Эмитента (ISO 3166-1, numeric)
billingAddressLine1AN...50

Нет

Обязательно, если у Мерчанта активирована пермиссия "Разрешено использование AVS/AVV".

 
Адрес, зарегистрированный по конкретной карте у Банка Эмитента Строка 1.
billingAddressLine2AN...50Нет Адрес, зарегистрированный по конкретной карте у Банка Эмитента Строка 2.
billingAddressLine3AN...50Нет Адрес, зарегистрированный по конкретной карте у Банка Эмитента Строка 3.
billingPostalCodeAN...9

Нет

Обязательно, если у Мерчанта активирована пермиссия "Разрешено использование AVS/AVV".

 
Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента
billingStateAN...50Нет Штат, зарегистрированный по конкретной карте у Банка Эмитента (ISO 3166-2)

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

1{
2    "username":"test",
3    "password":"testPass",
4    "orderNumber": "UAF-203974-DE",
5    "language": "RU",
6    "preAuth": false,
7    "description" : "Test description",
8    "additionalParameters":
9    {
10        "firstParamName": "firstParamValue",
11        "secondParamName": "secondParamValue"
12    },
13    "ip" : "127.0.0.1",
14    "amount" : "230000",
15    "currencyCode" : 643,
16    "failUrl" : "https://test.ru"
17    "returnUrl" : "https://test_return.ru"
18  }
19}

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

ПараметрВложенный параметрТипОбязательный параметрОписание
successНе актуальноboolean Да

Указывает на успешность проведения платежа. Доступны следующие значения:

  • true (истина) - запрос обработан успешно;

  • false (ложь) - запрос не прошёл.

data (возвращается, только если запрос прошёл успешно)orderIdANS36 ДаНомер заказа в платёжной системе. Уникален в пределах системы. Отсутствует, если регистрация заказа на удалась по причине ошибки.
data (возвращается, только если запрос прошёл успешно)redirectAN..512 Только если требуется авторизация клиента в системе AlfaPay

URL платёжной формы, на который надо перенаправить браузер клиента.

Не возвращается, если запрос отклонён по причине ошибки, детализированной в error.сode.

error (возвращается, только если запрос завершился с ошибкой)codeN..3 Да

URL платёжной формы, на который надо перенаправить браузер клиента.

Не возвращается, если запрос отклонён по причине ошибки, детализированной в error.сode.

Код ошибкиСообщение клиенту
1Заказ с таким номером уже обработан
1Неверный номер заказа
1Ошибка создания заказа
3Неизвестная валюта
4Номер заказа не может быть пуст
4Имя мерчанта не может быть пустым
4Отсутствует сумма
4URL возврата не может быть пуст
4Пароль не может быть пуст
4Отсутствует обязательный параметр запроса
5Логин продавца неверен
5Неверная сумма
5Неправильный параметр 'Язык'
5Пользователь должен сменить свой пароль
5[additionalParameters] неверен
5Доступ запрещён
5Пользователь отключён
7Системная ошибка
10Некорректное значение параметра [amount]
10Некорректное значение параметра [orderNumber]
10Некорректное значение параметра [returnUrl]
10Некорректное значение параметра [failUrl]
10Некорректное значение параметра [currencyCode]
10Некорректное значение параметра [ip]
error (возвращается, только если запрос завершился с ошибкой)messageAN..512 ДаПонятное описание ошибки - предназначено для отображения пользователю.

Пример успешного ответа:

{
"success":true,
"data": {
    "orderId": "e757d0cf-a028-7bdc-acb9-44480008afa2"
    "redirect": "https://alfapay.com"
 }
}

Пример неуспешного ответа:

{
"success": false,
"error": {
    "code": 7,
    "message": "Системная ошибка"
  }
}