Использование функций или функциональности системы не описанных в настоящем документе не допустимо.
Для регистрации заказа используется запрос register.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательность | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
userName | AN..100 | нет (нужно указать либо пару логин и пароль, либо токен) | AN..100 | ||||||||||
password | AN..200 | нет (нужно указать либо пару логин и пароль, либо токен) | AN..200 | ||||||||||
token | ANS..256 | нет (нужно указать либо пару логин и пароль, либо токен) | ANS..256 | ||||||||||
orderNumber | ANS..36 | да | Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы | ||||||||||
amount | N..12 | да | Сумма платежа в копейках (или центах) | ||||||||||
feeInput | N..8 | нет (см. описание) | Сумма комиссии в минимальных единицах валюты.
| ||||||||||
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию. | ||||||||||
returnUrl | ANS..512 | да | Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
| ||||||||||
failUrl | ANS..512 | нет | Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
| ||||||||||
dynamicCallbackUrl | ANS..512 | нет | Параметр позволяет использовать функциональность динамической отправки callback-уведомлений. В нем можно передать адрес, на который будут отправляться все «платежные» callback-уведомления, активированные для мерчанта. Под платежными понимаются callback-уведомления о следующих событиях: успешный холд, платеж отклонен по таймауту, платеж cardpresent отклонен, успешное списание, возврат, отмена. При этом активированные для мерчанта callback-уведомления, не относящиеся к платежам (включение/выключение связки, создание связки), будут отправляться на статический адрес для callback-ов.
Для использования функциональности динамической отправки callback-уведомлений необходимо, чтобы у мерчанта была выставлена соответствующая настройка: Тип callback-а: Динамический (CALLBACK_TYPE = DYNAMIC).
| ||||||||||
description | ANS..598 | нет | Описание заказа в свободной форме.
| ||||||||||
pageView | ANS..20 | нет | По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
locale — язык страницы в кодировке ISO 639-1. Например, ru для русского или en для английского. Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP. | ||||||||||
clientId | AN..255 | нет | Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.
| ||||||||||
merchantLogin | AN..255 | нет | Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре. | ||||||||||
jsonParams | См. описание | нет | Блок для передачи дополнительных параметров мерчанта. Поля дополнительной информации для последующего хранения, передаются в виде: {«<name1>«:»<value1>»,...,"<nameN>":"<valueN>«}, Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах.* Включение данного функционала возможно по согласованию с банком в период интеграции. Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен передаваться в этом блоке в параметре с именем email. Тип данных
| ||||||||||
sessionTimeoutSecs | N...9 | нет | Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. | ||||||||||
expirationDate | ANS | нет | Дата и время окончания жизни заказа. Формат: yyyy-MM-ddTHH:mm:ss. Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs. | ||||||||||
bindingId | AN..255 | нет | Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает:
| ||||||||||
features | ANS..255 | нет | Возможно использование следующих значений. VERIFY — Если указать это значение после запроса на регистрацию заказа произойдёт верификация держателя карты без списания средств с его счёта, поэтому в запросе можно передавать нулевую сумму. Верификация позволяет убедиться, что карта находится в руках владельца, и впоследствии списывать с этой карты средства, не прибегая к проверке аутентификационных данных (CVC, 3D-Secure) при совершении последующих платежей.
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, что гарантирует успешную аутентификацию пользователя. В противном случае транзакция не пройдёт. | ||||||||||
ANS..40 | нет | Электронная почта покупателя. | |||||||||||
phone | ANS.12 | нет | Номер телефона покупателя. Если в телефон включён код страны, номер должен начинаться со знака плюс («+«). Если телефон передаётся без знака плюс (»+»), то код страны указывать не следует. Таким образом, допустимы следующие варианты:
| ||||||||||
shippingPayerData | См. описание | нет | Блок с данными доставки клиента. Используется для дальнейшей 3DS аутентификации клиента. | ||||||||||
orderPayerData | См. описание | нет | Блок с данными о плательщике заказа. Используется для дальнейшей 3DS аутентификации клиента. | ||||||||||
preOrderPayerData | См. описание | нет | Блок с данными предзаказа. Используется для дальнейшей 3DS аутентификации клиента. | ||||||||||
billingAndShippingAddressMatchIndicator | A1 | нет | Индикатор совпадения адреса держателя карты для выставления счета и адреса доставки. Возможные значения:
Этот параметр используется для дальнейшей 3DS аутентификации клиента. |
* По умолчанию в процессинг банка передаются поля:
orderNumber — номер заказа в системе магазина;
description — описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | Нет | Номер заказа в платежной системе. Уникален в пределах системы. Отсутствует если регистрация заказа на удалась по причине ошибки, детализированной в errorCode. |
formUrl | AN..512 | Нет | URL платежной формы, на который надо перенаправить броузер клиента. Не возвращается если регистрация заказа не удалась по причине ошибки, детализированной в errorCode. |
errorCode | N..2 | Нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре language в запросе. |
Коды ошибок (поле errorCode**):**
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Заказ с таким номером уже обработан |
1 | Заказ с таким номером был зарегистрирован, но не был оплачен |
1 | Неверный номер заказа |
3 | Неизвестная валюта |
4 | Номер заказа не может быть пуст |
4 | Имя мерчанта не может быть пустым |
4 | Отсутствует сумма |
4 | URL возврата не может быть пуст |
4 | Пароль не может быть пуст |
5 | Логин продавца неверен |
5 | Неверная сумма |
5 | Неправильный параметр ’Язык’ |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | Доступ запрещён |
5 | [jsonParams] неверен |
7 | Системная ошибка |
13 | Использование обоих значений Features FORCE_TDS/FORCE_SSL и AUTO_PAYMENT недопустимо |
13 | Мерчант не имеет привилегии выполнять AUTO платежи |
13 | Мерчант не имеет привилегии выполнять проверочные платежи |
14 | Features указаны некорректно |
Пример запроса POST:
amount=100¤cy=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″}
Для запроса регистрации заказа с предавторизацией используется запрос registerPreAuth.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
orderNumber | AN.32 | да | Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы |
amount | N.20 | да | Сумма платежа в копейках (или центах) |
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию. |
returnUrl | AN.512 | да | Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>. |
failUrl | AN.512 | нет | Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>. |
description | ANS.512 | нет | Описание заказа в свободной форме |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language) |
pageView | ANS.20 | нет | По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP. |
clientId | AN.255 | нет | Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок. Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен. |
merchantLogin | AN.255 | нет | Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре. |
jsonParams | AN.1024 | нет | Блок для передачи дополнительных параметров мерчанта. Поля дополнительной информации для последующего хранения, передаются в виде:
Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах. Включение данной функциональности возможно по согласованию с банком в период интеграции. Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен передаваться в этом блоке в параметре с именем email. |
sessionTimeoutSecs | N…9 | нет | Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. |
expirationDate | ANS | нет | Дата и время окончания жизни заказа. Формат: yyyy-MM-ddTHH: mm: ss. Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs. |
bindingId | AN.255 | нет | Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: 1. Данный заказ может быть оплачен только с помощью связки; 2. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC. |
features | ANS.255 | нет | Возможно использование следующего значения:
Особенности передачи значения VERIFY:
|
По умолчанию в процессинг банка передаются поля:
orderNumber — номер заказа в системе магазина;
description — описание заказа (не более 99символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
Если в заказе передать дополнительный параметр с именем merchantOrderId, то именно его значение будет передано в процессинг в качестве номера заказа (вместо значения поля orderNumber).
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | Нет | Номер заказа в платёжной системе. Уникален в пределах системы. Отсутствует если регистрация заказа на удалась по причине ошибки, детализированной в errorCode. |
formUrl | AN.512 | Нет | URL платёжной формы, на который надо перенаправить броузер клиента. Не возвращается если регистрация заказа не удалась по причине ошибки, детализированной в errorCode. |
errorCode | N3 | Нет | Код ошибки. |
errorMessage | AN.512 | нет | Описание ошибки на языке, переданном в параметре language в запросе. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Заказ с таким номером уже обработан |
1 | Заказ с таким номером был зарегистрирован, но не был оплачен |
1 | Неверный номер заказа |
3 | Неизвестная валюта |
4 | Номер заказа не может быть пуст |
4 | Имя мерчанта не может быть пустым |
4 | Отсутствует сумма |
4 | URL возврата не может быть пуст |
4 | Пароль не может быть пуст |
5 | Неверная сумма |
5 | Неправильный параметр 'Язык' |
5 | Логин продавца неверен |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | Доступ запрещён |
5 | jsonParams неверен |
7 | Системная ошибка |
13 | Использование обоих значений Features FORCE_TDS/FORCE_SSL и AUTO_PAYMENT недопустимо |
13 | Мерчант не имеет привилегии выполнять AUTO платежи |
13 | Мерчант не имеет привилегии выполнять проверочные платежи |
14 | Features указаны некорректно |
Пример запроса 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¤cy=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«}
Для отмены незавершённого заказа используется запрос decline.do. После успешного выполнения этого запроса заказ переводится в состояние Отменён.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN..30 | да | Логин магазина, полученный при подключении |
password | AN..30 | да | Пароль магазина, полученный при подключении |
merchantLogin | AN..255 | да | Укажите имя мерчанта, для которого вы хотите отклонить заказ. Это может быть как логин основного мерчанта, так и логин дочернего мерчанта |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение об ошибке будет возвращено именно на этом языке |
orderId | ANS..36 | обязательно указать orderId или orderNumber | Номер заказа в платёжной системе. Уникален в пределах системы |
orderNumber | ANS..36 | обязательно указать orderId или orderNumber | Номер (идентификатор) заказа в системе магазина |
Параметры ответа
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | да | Код ошибки |
errorMessage | AN..512 | да | Описание ошибки на языке, переданном в параметре language в запросе |
userMessage | ANS..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" }
Для запроса завершения ранее предавторизованного заказа используется запрос deposit.do (см. раздел Координаты подключения).
Данную операцию можно осуществлять, если есть соответствующие права в системе.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательность | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
amount | N.20 | да | Сумма платежа в копейках (или центах) |
Если указать в параметре amount ноль, завершение произойдёт на всю предавторизованную сумму.
Параметры ответа:
Название | Тип | Обязательность | Описание |
---|---|---|---|
errorCode | N3 | Нет | Код ошибки. |
errorMessage | AN.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¤cy=810&language=ru&orderId=e5b59d3d-746b-4828-9da4-06f126e01b68&password=password&userName=userName
Пример запроса POST:
amount=100¤cy=810&language=ru&orderId=e5b59d3d-746b-4828-9da4-06f126e01b68
Пример ответа:
{"errorCode»: 0}
Для получения текущего состояния заказа используется запрос getOrderStatus.do (см. раздел Координаты подключения). Статус заказа необходимо определять по значению параметра OrderStatus. Поле authCode является устаревшим.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательность | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение ошибке будет возвращено именно на этом языке. |
Параметры ответа:
Название | Тип | Обязательность | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OrderStatus | N2 | Нет | По значению этого параметра определяется состояние заказа в платёжной системе. Список возможных значений приведён в таблице ниже. Отсутствует, если заказ не был найден. | ||||||||||||
ErrorCode | N3 | Нет | Код ошибки. | ||||||||||||
ErrorMessage | AN.512 | Нет | Описание ошибки на языке, переданном в параметре Language в запросе. | ||||||||||||
OrderNumber | AN.32 | Да | Номер (идентификатор) заказа в системе магазина | ||||||||||||
Pan | N.19 | нет | Маскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа. | ||||||||||||
expiration | N6 | нет | Срок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа. | ||||||||||||
cardholderName | A.64 | нет | Имя держателя карты. Указан только после оплаты заказа. | ||||||||||||
Amount | N.20 | да | Сумма платежа в копейках (или центах) | ||||||||||||
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли). | ||||||||||||
approvalCode | AN6 | нет | Код авторизации МПС. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. | ||||||||||||
authCode | N3 | нет | Это поле является устаревшим. Его значение всегда равно «2», независимо от состояния заказа и кода авторизации процессинговой системы. | ||||||||||||
Ip | AN.20 | нет | IP адрес пользователя, который оплачивал заказ | ||||||||||||
BindingInfo | — | нет | Элемент состоит из параметров:
|
Поле OrderStatus может принимать следующие значения:
Номер состояния | Описание |
---|---|
0 | Заказ зарегистрирован, но не оплачен |
1 | Предавторизованная сумма захолдирована (для двухстадийных платежей) |
2 | Проведена полная авторизация суммы заказа |
3 | Авторизация отменена |
4 | По транзакции была проведена операция возврата |
5 | Инициирована авторизация через ACS банка-эмитента |
6 | Авторизация отклонена |
Коды ошибок (поле ErrorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
2 | Заказ отклонен по причине ошибки в реквизитах платежа |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | orderId не указан |
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}
Вы можете протестировать работу данного метода с помощью SWAGGER
Для запроса состояния зарегистрированного заказа используется запрос getOrderStatusExtended.do.
Параметры запроса:
Название | Тип | Обязательность | Описание |
---|---|---|---|
userName | AN..100 | нет (нужно указать либо пару логин и пароль, либо токен) | Логин магазина, полученный при подключении. Если вместо аутентификации по логину и паролю используется открытый токен (параметр token), параметр userName передавать не нужно. |
password | AN..200 | нет (нужно указать либо пару логин и пароль, либо токен) | Пароль магазина, полученный при подключении. Если для аутентификации при регистрации вместо логина и пароля используется открытый токен (параметр token), параметр password передавать не нужно. |
token | AN..256 | нет (нужно указать либо пару логин и пароль, либо токен) | Открытый ключ, который можно использовать для аутентификации при выполнении запроса. Если для аутентификации используются логин и пароль, параметр token передавать не нужно. |
orderId | ANS36 | да* | Номер заказа в платёжной системе. Уникален в пределах системы.
|
orderNumber | ANS..36 | да* | Номер (идентификатор) заказа в системе магазина. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение об ошибке будет возвращено именно на этом языке. |
*В запросе должен присутствовать либо orderId, либо orderNumber. Если в запросе присутствуют оба параметра, то приоритетным считается orderId.
Существует несколько наборов параметров ответа. Какие именно наборы параметров будут возвращены, зависит от версии getOrderStatusExtended, указанной в настройках продавца.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
orderNumber | ANS..36 | да | Номер (идентификатор) заказа в системе магазина. | 01 и выше |
orderStatus | N2 | нет | По значению этого параметра определяется состояние заказа в платёжной системе. Список возможных значений приведён в списке ниже. Отсутствует, если заказ не был найден.
| 01 и выше |
actionCode | N3 | да | Код ответа. | 01 и выше |
actionCodeDescription | AN..512 | да | Расшифровка кода ответа на языке, переданном в параметре Language в запросе. | 01 и выше |
originalActionCode | string | нет | Код ответа процессинга. | 01 и выше |
errorCode | N..2 | нет | Код ошибки. Возможны следующие варианты.
| 01 и выше |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре Language в запросе. | 01 и выше |
amount | N..20 | да | Сумма платежа в копейках (или центах). | 01 и выше |
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли). | 01 и выше |
date | ANS | да | Дата регистрации заказа. | 01 и выше |
depositedDate | N | нет | Дата оплаты заказа в формате UNIX-времени (POSIX-времени). | 10 и выше |
orderDescription | AN..512 | нет | Описание заказа, переданное при его регистрации. | 01 и выше |
ip | ANS..39 | да | IP-адрес пользователя, который оплачивал заказ.
| 01 и выше |
authRefNum | AN..24 | нет | Учётный номер авторизации платежа, который присваивается при регистрации платежа. | 01 и выше С 27 версии заполняется всегда |
refundedDate | ANS | нет | Дата и время возврата средств. | 12 и выше |
reversedDate | ANS | нет | Дата и время отмены платежа. | 12 и выше |
paymentWay | AS..14 | да | Способ совершения платежа (платёж с вводом карточных данных, оплата по связке и т. п.). В этом параметре передаётся способ оплаты. Может принимать следующие значения:
| 09 и выше |
prepaymentMdOrder | ANS..36 | нет | Уникальный идентификатор заказа на предоплату в Платёжном Шлюзе. Используется для привязки заказа с предоплатой с чеком на постоплату. | 15 и выше |
partpaymentMdOrders | ANS..36 | нет | mdOrder последующих заказов на частичную оплату. | 15 и выше |
avsCode | A1 | нет | AVS Response Сode — код ответа AVS-проверки (проверка адреса и почтового индекса держателя карты). Возможные значения:
| 19 и выше |
chargeback | A..5 | нет | Были ли средства принудительно возвращены клиенту банком. Возможны следующие значения.
| 06 и выше |
authDateTime | ANS | нет | Дата и время авторизации в формате UNIX-времени (POSIX-времени). | 01 и выше |
terminalId | AN..10 | нет | Идентификатор терминала в процессинге, через который осуществлялась оплата. | 01 и выше |
feUtrnno | N..18 | нет | Номер транзакции FE. | 16 и выше |
orderBundle | См. описание | нет | Оригинальная товарная корзина. Блок с атрибутами товарной корзины. Описание его атрибутов представлено ниже. | 01 и выше |
ofdOrderBundle | См. описание | нет | Пересчитанная для ОФД остаточная корзина (с учётом возвратов). Описание его атрибутов представлено ниже. | 24
|
Элемент merchantOrderParams — присутствует в ответе, если в заказе содержатся дополнительные параметры продавца. Каждый дополнительный параметр заказа представлен в отдельном элементе merchantOrderParams.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
name | AN..20 | нет | Название дополнительного параметра. | 01 и выше |
value | AN..1024 | нет | Значение дополнительного параметра. | 01 и выше |
Элемент attributes включает в себя следующие параметры:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
attributes.name | ANS..255 байт | нет | Название дополнительного параметра. | 01 и выше |
attributes.value | ANS..2000 байт | нет | Значение дополнительного параметра | 01 и выше |
Элемент cardAuthInfo — в элементе лежит структура, состоящая из списка элемента secureAuthInfo и следующих параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
maskedPan | NS..19 | нет | Маскированный номер карты, которая использовалась для оплаты. | 01 и выше |
expiration | N6 | нет | Срок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа. | 01 и выше |
cardholderName | A..64 | нет | Имя держателя карты. Указан только после оплаты заказа. | 01 и выше |
approvalCode | AN6 | нет | Код авторизации платежа. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. Указан только после оплаты заказа. | 01 и выше |
paymentSystem | N..10 | да | Наименование платёжной системы. Доступны следующие варианты.
| 08 и выше |
product | AN..255 | да | Дополнительные сведения о корпоративных картах. Эти сведения заполняются службой технической поддержки в консоли управления. Если такие сведения отсутствуют, возвращается пустое значение. | 08 и выше |
productCategory | string | да | Дополнительные сведения о категории корпоративных карт. Эти сведения заполняются службой технической поддержки в консоли управления. Если такие сведения отсутствуют, возвращается пустое значение. Возможные значения: DEBIT, CREDIT, PREPAID, NON_MASTERCARD, CHARGE, DIFFERED_DEBIT. | 17 и выше |
corporateCard | A..5 | да | Признак того, является ли карта корпоративной. Возможные значения: false — не является корпоративной картой, true — является корпоративной картой. Также может по поиску возвращаться пустое значение, это означает, что значение не найдено. | 35 и выше |
Элемент payerData состоит из параметров.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
ANS..40 | нет | Электронная почта покупателя. | 13 и выше | |
phone | N..12 | нет | Номер телефона покупателя. Всегда нужно указывать код страны, при этом можно указывать или не указывать знак +. Таким образом, допустимы следующие варианты:
| 13 и выше |
postAddress | ANS..255 | нет | Адрес доставки товара. | 13 и выше |
Элемент secureAuthInfo.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
eci | N..4 | нет | Электронный коммерческий индикатор. | 01 и выше | |||||||||||||||||||||
authTypeIndicator | N | нет | Тип 3DS аутентификации. Возможные значения:
| 01 и выше | |||||||||||||||||||||
threeDsProtocolVersion | N..12 | нет | Версия протокола 3DS. Возможные значения:
| 30 и выше | |||||||||||||||||||||
rreqTransStatus | A1 | нет | Статус транзакции из запроса для передачи результатов аутентификации пользователя от ACS (RReq). Передаётся при использовании 3DS2. | 30 и выше | |||||||||||||||||||||
aresTransStatus | A1 | нет | Статус транзакции из ответа от ACS на запрос аутентификации (ARes). Передаётся при использовании 3DS2. | 30 и выше | |||||||||||||||||||||
Элемент threeDSInfo | 01 и выше | ||||||||||||||||||||||||
cavv | ANS..200 | нет | Значение проверки аутентификации владельца карты. Указан только после оплаты заказа и в случае соответствующего разрешения. | 01 и выше | |||||||||||||||||||||
xid | ANS..80 | нет | Электронный коммерческий идентификатор транзакции. | 01 и выше |
Элемент bindingInfo состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
clientId | AN..255 | нет | Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок. | 01 и выше |
bindingId | AN..255 | нет | Идентификатор связки, созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. | 01 и выше |
externalCreated | boolean | нет | Появляется только при создании связки во внешнем сервисе (к примеру, Masterpass). | 20 и выше |
Блок pluginInfo (представляющий собой JSON object) — присутствует в ответе, если оплата шла через payment plugin (платёжный плагин) и для конкретного платёжного метода требуется отображение какой-либо информации в getOrderStatusExtended (для продавца должна быть включена настройка payment.plugins.enabled). Состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
pluginInfo.name | string | да, если в ответе присутствует pluginInfo | Уникальное имя payment плагина. | 28 и выше |
pluginInfo.params | JSON object | да, если в ответе присутствует pluginInfo | Параметры для конкретного платёжного метода. Параметр представляет собой словарь ключ: значение. | 28 и выше |
Элемент paymentAmountInfo состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
approvedAmount | N..20 | нет | Сумма, захолдированная на карте (используется только при двухстадийных платежах). | 03 и выше |
depositedAmount | N..20 | нет | Сумма, подтверждённая для списания с карты. | 03 и выше |
refundedAmount | N..20 | нет | Сумма возврата. | 03 и выше |
paymentState | A..10 | нет | Состояние заказа. | 03 и выше |
feeAmount | N..20 | нет | Сумма комиссии. | 11 и выше |
totalAmount | N..20 | нет | Сумма заказа + fee (комиссия, если она была использована в заказе). | 18 и выше |
Элемент bankInfo состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
bankName | AN..200 | нет | Наименование банка-эмитента. | 03 и выше |
bankCountryCode | AN..4 | нет | Код страны банка-эмитента. | 03 и выше |
bankCountryName | AN..160 | нет | Наименование страны банка-эмитента на языке, переданном в параметре language в запросе, или на языке пользователя, вызвавшего метод, если язык в запросе не указан. | 03 и выше |
Блок refunds содержит информацию по возвратам. Добавляется в ответ на запрос getOrderStatusExtended 05 версии и выше и присутствует только, если есть возврат по заказу.
Параметры блока следующие:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
referenceNumber | N12 | нет | Ссылочный номер транзакции, присваиваемый платёжным шлюзом после её завершения. | 05 и выше |
actionCode | N..5 | нет | Коды ответа — цифровое обозначение результата, к которому привело обращение к системе со стороны пользователя. | 05 и выше |
amount | N..12 | нет | Сумма возврата в минимальных единицах валюты. | 05 и выше |
date | ANS | нет | Дата возврата заказа в формате UNIX-времени. | 05 и выше |
approvalCode | AN6 | нет | Код авторизации платежа, может содержать цифры и латинские буквы. | Для заказов, оплаченных не картой: с 05 по 25 версии включительно. Для заказов, оплаченных любым способом (включая картой): 26 версия и выше. |
externalRefundId | AN..30 | нет | Идентификатор возврата. При попытке повторного возврата проверяется externalRefundId: если возврат с таким идентификатором уже был, то возвращается успешный ответ с данными по предыдущему возврату, если нет, то выполняется новый возврат. | 21 и выше |
Элемент transactionAttributes — присутствует в ответе, если в заказе содержатся дополнительные параметры транзакции.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
transactionAttributes.name | ANS..255 | нет | Название дополнительного параметра. Примеры:
| 14 и выше |
transactionAttributes.value | ANS..2000 | нет | Значение дополнительного параметра. | 14 и выше |
Содержимое orderBundle
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
orderCreationDate | ANS..21 | нет | Дата создания заказа в формате YYYY-MM-DDTHH:MM:SS. | 01 и выше |
customerDetails | См. описание | нет | Блок с атрибутами данных о покупателе. Описание его атрибутов представлено ниже. | 01 и выше |
cartItems | См. описание | нет | Блок с атрибутами товарных позиции Корзины. Описание его атрибутов представлено ниже. | 01 и выше |
Содержимое ofdOrderBundle
Блок доступен с 24 версии getOrderStatusExtended.
Элемент ofdOrderBundle состоит из параметров:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | ANS..100 | да | Наименование или описание товарной позиции в свободной форме. |
itemAmount | N..18 | да | Сумма стоимости всех товарных позиций одного positionId в деньгах в минимальных единицах валюты. |
itemPrice | N..18 | да |
Стоимость одной товарной позиции в минимальных единицах валюты.
|
quantity | Элемент, описывающий общее количество товарных позиций одного positionId и их меру измерения. | ||
quantity.value | N..18 | да | Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. |
quantity.measure | ANS..20 | да | Мера измерения количества товарной позиции. |
itemAttributes |
Тэг, предназначенный для передачи набора атрибутов товарной позиции. Атрибуты следует указывать следующим образом.
"itemAttributes": [{"name":"paymentMethod","value":"1"},{"name":"paymentObject","value":"1"}] Описание доступных атрибутов представлено ниже. | ||
itemAttributes["paymentMethod"] | N..2 | да | Признак способа расчёта, доступны следующие значения:
|
itemAttributes["paymentObject"] | N..2 | да | Признак предмета расчёта, доступны следующие значения:
|
taxType | N..2 | да | Ставка НДС, доступны следующие значения:
|
Содержимое customerDetails
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
ANS..40 | нет | Электронная почта покупателя. | 01 и выше | |
phone | ANS..12 | нет | Номер телефона покупателя. Если в телефон включён код страны, номер должен начинаться со знака плюс («+»). Если телефон передаётся без знака плюс («+»), то код страны указывать не следует. Таким образом, допустимы следующие варианты:
| 01 и выше |
fullName | ANS..100 | нет | Фамилия, имя и отчество плательщика. Параметр возвращается только в том случае, если был передан партнёром при регистрации. Если передаётся параметр fullName(ФИО) в параметрах CustomerDetails, то обязательно нужно передать дополнительные параметры: ИНН или данные документа (1243 гражданство, 1244 дата рождения, 1245 код документа, 1246 реквизиты документа, удостоверяющего личность). Если в запросе на регистрацию указано только fullName без дополнительных параметров, то отобразится следующая ошибка: «Запрос не валиден: если ИНН клиента не был заполнен, то необходимо указать дату рождения клиента, код документа и данные документа». Только для запросов по платежам с фискализацией. | 01 и выше |
passport | ANS..100 | нет | Серия и номер паспорта плательщика в следующем формате: 2222888888. Только для запросов по платежам с фискализацией. | 01 и выше |
inn | N..12 | нет | Идентификационный номер налогоплательщика. Допускается передавать 10 или 12 символов. Только для запросов по платежам с фискализацией. | 01 и выше |
contact | AN..40 | нет | Способ связи с покупателем. | 01 и выше |
deliveryInfo | См. описание | нет | Блок с атрибутами адреса для доставки. Описание его атрибутов представлено ниже. | 01 и выше |
Содержимое cartItems
Ниже представлены параметры блока cartItems
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
items | См. описание | да | Массив блоков, описывающих товарные позиции в корзине. Информация по каждой товарной позиции Корзины передаётся в отдельном блоке, входящем в состав items. Описание содержимого блока представлено ниже.
| 03 и выше |
Содержимое deliveryInfo
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
deliveryType | ANS..20 | нет | Тип доставки. | 01 и выше |
country | A..2 | да | Страна доставки. | 01 и выше |
city | ANS..40 | да | Город доставки. | 01 и выше |
postAddress | ANS..255 | да | Адрес доставки товара. | 01 и выше |
Содержимое items
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
positionId | ANS..12 | нет | Уникальный идентификатор товарной позиции внутри корзины заказа. | 01 и выше |
name | ANS..100 | нет | Наименование или описание товарной позиции в свободной форме.
| 01 и выше |
quantity | См. описание | нет | Элемент, описывающий общее количество товарных позиций одного positionId и их меру измерения. Описание его атрибутов представлено ниже. | 03 и выше |
itemAmount | N..20 | нет | Сумма стоимости всех товарных позиций одного positionId в минимальных единицах валюты. itemAmount обязателен к передаче, только если не был передан параметр itemPrice. В противном случае передача itemAmount не требуется. Если же в запросе передаются оба параметра: itemPrice и itemAmount, то itemAmount должен равняться itemPrice * quantity, в противном случае запрос завершится с ошибкой. При расчёте параметра itemAmount = itemPrice * quantity результат округляется до второго знака после десятичного разделителя. Например, если результат вычислений равен 100,55, то итоговый результат будет равен 101. | 01 и выше |
depositedItemAmount | N..18 | нет | Сумма в минимальных единицах валюты (например, в копейках) одного positionId, подтверждённая для списания с карты. | 07 и выше |
itemCurrency | N3 | нет | Код валюты товарной позиции ISO 4217. Если не указан, считается равным валюте заказа. | 01 и выше |
itemCode | ANS..100 | нет | Номер (идентификатор) товарной позиции в системе магазина. | 01 и выше |
itemPrice | N..18 | нет | Стоимость одной товарной позиции в минимальных единицах валюты.
| 01 и выше |
itemDetails | См. описание | нет | Дополнительный блок с параметрами описания товарной позиции. Описание его атрибутов представлено ниже. | 01 и выше |
tax | См. описание | нет | Дополнительный блок с атрибутами описания налога. | 01 и выше |
discount | См. описание | нет | Дополнительный блок с атрибутами описания скидки для товарной позиции. Описание его атрибутов представлено ниже. | 01 и выше |
agentInterest | См. описание | нет | Дополнительный блок с атрибутами описания агентской комиссии за продажу товара. Описание его атрибутов представлено ниже. | 01 и выше |
itemAttributes | См. описание | нет | Блок, предназначенный для передачи набора атрибутов товарной позиции. Описание доступных атрибутов представлено ниже. | 01 и выше |
Содержимое quantity
Ниже представлены параметры блока quantity
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
value | N..18 | да | Количество товарных позиций данного positionId. Для указания дробных чисел используйте десятичную точку. | 01 и выше |
measure | ANS..20 | да | Мера измерения количества товарной позиции. | 01 и выше |
Содержимое itemDetails
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
value | ANS..255 | да | Дополнительная информация по товарной позиции. | 01 и выше |
name | ANS..255 | да | Наименование параметра описания детализации товарной позиции. | 01 и выше |
Содержимое discount
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
discountType | ANS..20 | да | Тип скидки на товарную позицию. | 01 и выше |
discountValue | N..20 | да | Значение скидки на товарную позицию. | 01 и выше |
Содержимое agentInterest
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
interestType | ANS..20 | да | Тип агентской комиссии за продажу товара. | 01 и выше |
interestValue | N..20 | да | Значение агентской комиссии за продажу товара. | 01 и выше |
Содержимое tax
Ниже представлены параметры блока tax.
Обязательность параметров указана для использования в рамках блока. Если блок необязательный и в запросе отсутствует, то и входящие в него параметры не должны передаваться.
Название | Тип | Обязательно | Описание |
---|---|---|---|
taxType | N..2 | да | Ставка НДС, доступны следующие значения:
|
taxSum | N..18 | нет | Сумма налога, высчитанная продавцом. Указывается в минимальных единицах валюты. |
Содержимое itemAttributes
Блок itemAttributes содержит блок attributes, включающий следующие параметры:
Атрибуты заказа в платёжной системе (номер заказа).
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | ANS..255 байт | да | Название дополнительного параметра. |
value | ANS..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}
Для отмены оплаты заказа используется запрос reverse.do (см. раздел Координаты подключения).
Функция отмены доступна в течение ограниченного времени после оплаты, точные сроки необходимо уточнять в Банке.
Операция отмены оплаты может быть совершена только один раз. Если она закончится ошибкой, то повторная операция отмены платежа не пройдёт.
Данная функция доступна магазинам по согласованию с Банком. Для выполнения операции отмены пользователь должен обладать соответствующими правами.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательность | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
language | A2 | нет | Язык в кодировке ISO 639-1. Описание ошибки возвращается на этом языке. Если параметр отсутствует, используется язык по умолчанию, указанный в настройках мерчанта. |
Параметры ответа:
Название | Тип | Обязательность | Описание |
---|---|---|---|
errorCode | N3 | Нет | Код ошибки. |
errorMessage | AN.512 | Нет | Описание ошибки на языке. |
Коды ошибок (поле ErrorCode):
Классификация:
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Ошибка значение параметра запроса |
6 | Незарегистрированный OrderId |
7 | Системная ошибка |
Расшифровка:
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | orderId не задан |
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»:"Успешно"}
Для возврата средств используется запрос refund.do.
По этому запросу средства по указанному заказу будут возвращены плательщику. Запрос закончится ошибкой в случае, если средства по этому заказу не были списаны. Система позволяет возвращать средства более одного раза, но в общей сложности не более первоначальной суммы списания.
Для выполнения операции возврата необходимо наличие соответствующих права в системе.
Параметры запроса:
Название | Тип | Обязательность | Описание | ||||
---|---|---|---|---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении | ||||
password | AN.30 | да | Пароль магазина, полученный при подключении | ||||
orderId | ANS36 | да | Номер заказа в платежной системе. Уникален в пределах системы. | ||||
amount | N.12 | да | Сумма платежа в копейках (или центах) | ||||
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение ошибке будет возвращено именно на этом языке. | ||||
jsonParams | См. описание | нет | Поля дополнительной информации для последующего хранения, вида {"param":value,"param2":value 2,"param3":value 3}. Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах.Тип данных:
*Включение данного функционала возможно по согласованию с банком в период интеграции. | ||||
expectedDepositedAmount | N.12 | нет | Параметр служит в качестве определения, что запрос повторный. Если параметр передан, то его значение сравнивается с текущим значением depositedAmount в заказе. Операция будет проведена, только если значения совпадают. Если придут два возврата с одинаковым expectedDepositedAmount, то будет проведен только один возврат. Этот возврат изменит значение depositedAmount, и тогда второй возврат будет отклонен. | ||||
externalRefundId | AN.30 | нет | Идентификатор возврата. При попытке повторного возврата проверяется externalRefundId: если возврат с таким идентификатором уже был, то возвращается успешный ответ с данными по предыдущему возврату, если нет, то выполняется новый возврат. |
Параметры ответа:
Название | Тип | Обязательность | Описание |
---|---|---|---|
errorCode | N.2 | Нет | Код ошибки. |
errorMessage | AN.512 | Нет | Описание ошибки на языке. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Ошибка значение параметра запроса |
6 | Незарегистрированный OrderId |
7 | Системная ошибка |
Расшифровка:
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | [orderId] не задан |
6 | Неверный номер заказа |
7 | Платёж должен быть в корректном состоянии |
7 | Неверная сумма депозита (менее одного рубля) |
7 | Ошибка системы |
Для проверки вовлечённости карты в 3DSиспользуется запрос verifyEnrollment.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательность | Описание |
---|---|---|---|
userName | AN.30 | да | Логин пользователя (API) |
password | AN.30 | да | Пароль пользователя (API) |
pan | N12…19 | да | Номер карты |
Параметры ответа:
Название | Тип | Обязательность | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN.512 | нет | Описание ошибки. |
enrolled | A1 | нет | Признак вовлечённости карты в 3DS. Возможные значения: Y, N, U. |
emitterName | AN.160 | нет | Наименование банка-эмитента. |
emitterCountryCode | AN.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"}
Для добавления к заказу новых дополнительных параметров используется запрос addParams.do (см. раздел Координаты подключения).
Если в заказе уже существует дополнительный параметр, то при добавлении параметра с тем же именемв заказе сохранится последнее переданное значение.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
language | A2 | нет | Язык в кодировке ISO 639-1. Описание ошибки возвращается на этом языке. Если параметр отсутствует, используется язык по умолчанию, указанный в настройках мерчанта. |
params | AN.1024 | да | Поля для передачи дополнительных параметров, вида {"param»:"value»,"param2»:"value2"}. |
Параметры ответа
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | да | Код ошибки. |
errorMessage | AN.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¶ms={"addParams1»:"value1»,"addParams2»:"value2"}
Пример запроса POST:
language=ru&orderId=769b8dad-2318-4c01-bfc4-94532522fa68¶ms={"addParams1»:"value1»,"addParams2»:"value2"}
Пример ответа:
{"errorCode»: 0}
Для получения статистики по платежам за определённый период используется запрос getLastOrdersForMerchants.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении. |
password | AN.30 | да | Пароль магазина, полученный при подключении. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык — русский. Сообщение ошибке будет возвращено именно на этом языке. |
page | N | нет | При обработке запроса будет сформирован список, разбитый на страницы (с количеством записей size на одной странице). В ответе возвращается страница под номером, указанным в параметре page. Нумерация страниц начинается с 0. Если параметр не указан, будет возвращена страница под номером 0. |
size | N.3 | да | Количество элементов на странице (максимальное значение = 200). |
from | ANS | да | Дата и время начала периода для выборки заказов в формате YYYYMMDDHHmmss. |
to | ANS | да | Дата и время окончания периода для выборки заказов в формате YYYYMMDDHHmmss. |
transactionStates | A.9 | да | В этом блоке необходимо перечислить требуемые состояния заказов. Только заказы, находящиеся в одном из указанных состояний, попадут в отчёт. Несколько значений указываются через запятую. Возможные значения: CREATED, APPROVED, DEPOSITED, DECLINED, REVERSED, REFUNDED. |
merchants | ANS | да | Список Логинов мерчантов, чьи транзакции должны попасть в отчёт. Несколько значений указываются через запятую. Оставьте это поле пустым, чтобы получить список отчётов по всем доступным мерчантам (дочерним мерчантам и мерчантам, указанным в настройках пользователя). |
searchByCreatedDate | A.5 | нет | Возможные значения: · true — поиск заказов, дата создания которых попадает в заданный период. · false — поиск заказов, дата оплаты которых попадает в заданный период (таким образом, в отчёте не могут присутствовать заказы в статусе CREATED и DECLINED). Значение по умолчанию — false. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N.2 | да | Код ошибки. Описание возможных кодов представлено ниже в таблице «Коды ошибок (поле errorCode)» |
errorMessage | AN.512 | нет | Описание ошибки. Присутствует только при наличии ошибки (errorCode не равно 0). |
orderStatuses | — | — | Блок, содержащий информацию о заказах, попавших в отчёт. См. ниже таблицу «Параметры блока orderStatuses». |
totalCount | N | да | Общее количество элементов во отчёте (на всех страницах). |
page | N | да | Номер текущей страницы (равный номеру страницы, переданному в запросе). |
pageSize | N.3 | да | Максимальное количество записей на странице (равно размеру страницы, переданному в запросе). |
Параметры блока orderStatuses:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderNumber | AN.32 | да | Номер (идентификатор) заказа в системе магазина. |
orderStatus | N.2 | да | Состояние заказа в платёжной системе. Возможные значения представлены ниже в таблице «Поле orderStatus:». |
actionCode | N.3 | да | Код ответа. |
actionCodeDescription | AN.512 | да | Расшифровка кода ответа. |
amount | N.20 | да | Сумма платежа в минимальных единицах валюты. |
currency | N3 | да | Код валюты платежа ISO 4217. Если не указан, считается равным валюте по умолчанию. |
date | ANS | да | Дата регистрации заказа. |
orderDescription | AN.512 | нет | Описание заказа, переданное при его регистрации |
ip | AN.20 | нет | IP адрес покупателя. Указан только после оплаты. |
errorCode | N.2 | да | Код ошибки. |
merchantOrderParams | — | нет | Тэг с атрибутами, в которых передаются дополнительные параметры мерчанта. См. ниже таблицу «Параметры блока merchantOrderParams». |
attributes | — | да | Атрибуты заказа в платёжной системе (номер заказа). См. ниже таблицу «Параметры блока attributes». |
cardAuthInfo | — | нет | Тэг с атрибутами платежа. См. ниже таблицу «Параметры блока cardAuthInfo». |
bindingInfo | — | нет | Тэг с информацией о связке, с помощью которой осуществлена оплата. См. ниже таблицу «Параметры блока bindingInfo». |
authDateTime | ANS | нет | Дата/время авторизации |
terminalId | AN.10 | нет | Id терминала |
authRefNum | AN.24 | нет | Reference number |
paymentAmountInfo | — | нет | Тэг с информацией о суммах подтверждения, списания, возврата. См. ниже таблицу «Параметры блока paymentAmountInfo». |
bankInfo | — | нет | Тэг с информацией о Банке-эмитенте. См. ниже таблицу «Параметры блока bankInfo». |
Параметры блока merchantOrderParams:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | AN.20 | да | Название дополнительного параметра мерчанта |
value | AN.1024 | да | Значение дополнительного параметра мерчанта |
Параметры блока attributes:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | A7 | да | Название атрибута — «mdOrder». |
value | ANS36 | да | Значение атрибута — номер заказа в платёжной системе (уникален в пределах системы). |
Параметры блока cardAuthInfo: | |||
Название | Тип | Обязательно | Описание |
-------------- | ------- | --------------- | ------------------------------------------------------------ |
pan | N.19 | нет | Маскированный номер карты, которая использовалась для оплаты. |
expiration | N6 | нет | Срок истечения действия карты в формате YYYYMM. |
cardholderName | A.64 | нет | Имя держателя карты. |
approvalCode | AN6 | нет | Код авторизации платежа. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. |
Параметры блока bindingInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
clientId | AN.255 | нет | Номер (идентификатор) клиента в системе магазина. |
bindingId | AN.255 | нет | Идентификатор связки, использованной для оплаты. |
Параметры блока paymentAmountInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
paymentState | N.9 | нет | Состояние платежа |
approvedAmount | N.20 | нет | Сумма, подтверждённая к списанию. |
depositedAmount | N.20 | нет | Сумма списания с карты. |
refundedAmount | N.20 | нет | Сумма возврата. |
Параметры блока bankInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
bankName | AN.200 | нет | Наименование Банка-эмитента. |
bankCountryCode | AN.4 | нет | Код страны Банка-эмитента |
bankCountryName | AN.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}
Для оплаты заказа через внешнюю платёжную систему используется запрос paymentotherway.do (см. раздел Координаты подключения) со специальными параметрами. Возможен только запрос POST. Данная операция доступна при наличии соответствующих прав в системе.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
MDORDER | ANS36 | да | Номер заказа, полученный при регистрации заказа |
paymentWay | ANS.* | да | В этом параметре передаётся способ оплаты. Возможные значения: · ALFA_ALFACLICK — для оплаты с помощью «Альфа-Клик» (через систему PayByClik). · UPOP — для оплаты через систему UPOP, доступно для держателей карт China UnionPay. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код ошибки |
error | ANS.* | (при ошибке) | Сообщение об ошибке |
info | ANS.* | нет | При успешном ответе. Результат попытки оплаты. Возможные значения представлены ниже:
|
redirect | ANS.* | нет | Адрес возврата после оплаты |
Коды ошибок (поле 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}
Для проведения платежа по связкам используется запрос paymentOrderBinding.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER. По истечении срока действия карты связка становиться недоступна для использования в оплате.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении. |
password | AN.30 | да | Пароль магазина, полученный при подключении. |
mdOrder | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
bindingId | AN.255 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
ip | NS.15 | да | ip-адрес плательщика. |
cvc | N.3 | нет | CVC код. Этот параметр обязателен, если для мерчанта не выбрано разрешение «Может проводить оплату без подтверждения CVC». |
ANS.* | нет | Адрес электронной почты плательщика. | |
tii | A2 | нет | Параметр, указывающий на то, какой тип операции будет проводиться со стороны инициатора (мерчанта). Возможные значения:
|
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
redirect | ANS.* | нет | При успешном ответе в случае SSL-платежа. URL, на который производится переадресация после платежа. |
info | ANS.* | нет | При успешном ответе. Результат попытки оплаты. Возможные значения представлены ниже:
|
errorCode | N1 | да | Код ошибки. |
errorMessage | AN.* | нет | При ответе с ошибкой. Сообщение об ошибке. |
error | AN.* | нет | При ответе с ошибкой. Сообщение об ошибке. |
processingErrorType | ANS.* | нет | Тип ошибки процессинга. Передаётся, когда ошибка происходит на стороне процессинга, а не в платёжном шлюзе, при том что попытки проведения платежа ещё не исчерпаны и переадресации на финальную страницу не происходит. Расшифровка ошибки передаётся в параметре error. |
acsUrl | ANS.* | нет | При успешном ответе в случае 3DS-платежа. URL для перехода на ACS. |
paReq | ANS.* | нет | При успешном ответе в случае 3DS-платежа. Payment Authentication Request. |
termUrl | ANS.* | нет | При успешном ответе в случае 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"}
Для того чтобы сделать существующую связку неактивной используется запрос unBindCard.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении. |
password | AN.30 | да | Пароль магазина, полученный при подключении. |
bindingId | AN.255 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN.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"}
Для активации деактивированной ранее связки используется запрос bindCard.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении. |
password | AN.30 | да | Пароль магазина, полученный при подключении. |
bindingId | AN.255 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN.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"}
Для продления срока действия связки используется запрос extendBinding.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении. |
password | AN.30 | да | Пароль магазина, полученный при подключении. |
bindingId | ANS36 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
newExpiry | N6 | да | Новая дата (год и месяц) окончания срока действия связки в формате YYYYMM. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language). |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения |
errorMessage | ANS.* | (при ошибке) | Сообщение об ошибке |
Коды ошибок (поле 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»:"Успешно"}
Для получения списка связок по идентификатору клиента используется запрос getBindings.do (см. раздел Координаты подключения).
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении. |
password | AN.30 | да | Пароль магазина, полученный при подключении. |
clientId | AN.255 | да | Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения |
errorMessage | ANS.* | (при ошибке) | Сообщение об ошибке |
Элемент binding (состоит из bindingId, maskedPan и expiryDate):
Название | Тип | Обязательно | Описание |
---|---|---|---|
bindingId | AN.255 | нет | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
maskedPan | N.19 | нет | Маскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа. |
expiryDate | N6 | нет | Срок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | clientId не задан |
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»:"Успешно"}
Для получения списка связок банковской карты используется метод getBindingsByCardOrId.do (см. раздел Координаты подключения).
При наличии соответствующих разрешений магазин может запросить список всех связок, относящихся к определённой банковской карте. Сделать это можно по номеру карты или по известному идентификатору связки.При наличии соответствующих разрешений магазин может запросить список всех связок, относящихся к определённой банковской карте. Сделать это можно по номеру карты или по известному идентификатору связки.
В ответе возвращаются все связки, доступные мерчанту в соответствии с его настройками.
Вы можете протестировать работу данного метода с помощью SWAGGER
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
userName | AN.30 | да | Логин магазина, полученный при подключении |
password | AN.30 | да | Пароль магазина, полученный при подключении |
pan | N.19 | нет | Номер карты. Обязательно, если не указан bindingId. Поиск по полному номеру карты доступен магазинам только при наличии соответствующего разрешения. |
bindingId | AN.255 | нет | Идентификатор связки. Обязательно, если не указан pan. Если в запросе передаётся pan, то значение bindingId игнорируется. |
showExpired | boolean | нет | Параметр определяет необходимость отображать связки с истёкшим сроком действия карты. Возможные значения: true, false. По умолчанию параметр принимает значение false. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения. |
errorMessage | ANS.* | да | Описание кода завершения. |
Элемент bindings (содержит блоки, состоящие из параметров bindingId, maskedPan, expiryDate и clientId):
Название | Тип | Обязательно | Описание |
---|---|---|---|
bindingId | AN.255 | нет | Идентификатор связки. |
maskedPan | N.19 | нет | Маскированный номер карты, которая использовалась для оплаты. |
expiryDate | N6 | нет | Срок истечения действия карты в формате YYYYMM. |
clientId | AN.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"}]}
Для регистрации заказа используется запрос payment.do (см. раздел Координаты подключения).
Для операций отмены, возврата и завершения платежа следует использовать стандартные запросы к платёжному шлюзу.
Вы можете протестировать работу данного метода с помощью SWAGGER
Пример запроса POST
{"merchant»:"merchant_name»,"orderNumber»:"applepay123456794»,"description»:"descritpion_text», «paymentToken»:"eyJ2ZXJzaW9uIjoiRUNfdjEiLCJkYXRhIjoiNTFhUTNGOXl0Q1YwYTdpQS9mMUh0RGc1TnBvSVZtc2RFa1FvTlpoOW95ZVA3eGgvVDk4dXJkenJDN0dOQ3o4c1FodXpXOVZNWUhGU25DTytTWXo0eDYrTnZwZjdCUzhOcnlUWk1Keldtcml0VUZJVytwVjNvNWY4M0F3OU55c1BCMlAxZGZicS9hZDVzV1RwZTMwTnV2UDltRGhaUStET1M3RzB6MDZSNHRXY0R0VFErT0U5YlI1OHFQRUdnTTRiSmRmUklZb25oQlJrdWY2cGw4aU9PQ0VvS01QN2lRck84Z2IrVGNnSjVZSDdDL3J3enBDUVZjMGQxNWJuME9wbE1SOGwxMDcrMDR4ZVVWT3BUMGI3cHRmYnA3VmVaeHVXaHhSTTlHYlF5QmVkVlJHQ2toN3kyREtZY3BRdjJqM1h2L0NjNzRKaVBZM09DTFVEMEIvS0UwUFo1TnJvUEJFUmZ2a1B4WUFzV1ZmM1E3UUtTcTk4Z3p5UXlrWEpwTmFwcEt6cENDMkNKU09XdzVkenNPWjAiLCAic2lnbmF0dXJlIjoiTUlBR0NTcUdTSWIzRFFFSEFxQ0FNSUFDQVFFeER6QU5CZ2xnaGtnQlpRTUVBZ0VGQURDQUJna3Foa2lHOXcwQkJ3RUFBS0NBTUlJRDVqQ0NBNHVnQXdJQkFnSUlhR0QybWRuTXB3OHdDZ1lJS29aSXpqMEVBd0l3ZWpFdU1Dd0dBMVVFQXd3bFFYQndiR1VnUVhCd2JHbGpZWFJwYjI0Z1NXNTBaV2R5WVhScGIyNGdRMEVnTFNCSE16RW1NQ1FHQTFVRUN3d2RRWEJ3YkdVZ1EyVnlkR2xtYVdOaGRHbHZiaUJCZFhSb2IzSnBkSGt4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRFMk1EWXdNekU0TVRZME1Gb1hEVEl4TURZd01qRTRNVFkwTUZvd1lqRW9NQ1lHQTFVRUF3d2ZaV05qTFhOdGNDMWljbTlyWlhJdGMybG5ibDlWUXpRdFUwRk9SRUpQV0RFVU1CSUdBMVVFQ3d3TGFVOVRJRk41YzNSbGJYTXhFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRWdqRDlxOE9jOTE0Z0xGRFptMFVTNWpmaXFRSGRiTFBnc2MxTFVtZVkrTTlPdmVnYUphakNIa3d6M2M2T0twYkM5cStoa3dORnhPaDZSQ2JPbFJzU2xhT0NBaEV3Z2dJTk1FVUdDQ3NHQVFVRkJ3RUJCRGt3TnpBMUJnZ3JCZ0VGQlFjd0FZWXBhSFIwY0RvdkwyOWpjM0F1WVhCd2JHVXVZMjl0TDI5amMzQXdOQzFoY0hCc1pXRnBZMkV6TURJd0hRWURWUjBPQkJZRUZBSWtNQXVhN3UxR01aZWtwbG9wbmtKeGdoeEZNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVJL0pKeEUrVDVPOG41c1QyS0d3L29ydjlMa3N3Z2dFZEJnTlZIU0FFZ2dFVU1JSUJFRENDQVF3R0NTcUdTSWIzWTJRRkFUQ0IvakNCd3dZSUt3WUJCUVVIQWdJd2diWU1nYk5TWld4cFlXNWpaU0J2YmlCMGFHbHpJR05sY25ScFptbGpZWFJsSUdKNUlHRnVlU0J3WVhKMGVTQmhjM04xYldWeklHRmpZMlZ3ZEdGdVkyVWdiMllnZEdobElIUm9aVzRnWVhCd2JHbGpZV0pzWlNCemRHRnVaR0Z5WkNCMFpYSnRjeUJoYm1RZ1kyOXVaR2wwYVc5dWN5QnZaaUIxYzJVc0lHTmxjblJwWm1sallYUmxJSEJ2YkdsamVTQmhibVFnWTJWeWRHbG1hV05oZEdsdmJpQndjbUZqZEdsalpTQnpkR0YwWlcxbGJuUnpMakEyQmdnckJnRUZCUWNDQVJZcWFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyMHZZMlZ5ZEdsbWFXTmhkR1ZoZFhSb2IzSnBkSGt2TURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dVlYQndiR1V1WTI5dEwyRndjR3hsWVdsallUTXVZM0pzTUE0R0ExVWREd0VCL3dRRUF3SUhnREFQQmdrcWhraUc5Mk5rQmgwRUFnVUFNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURhSEdPdWkrWDJUNDRSNkdWcE43bTJuRWNyNlQ2c01qT2haNU51U28xZWd3SWhBTDFhKy9ocDg4REtKMHN2M2VUM0Z4V2NzNzF4bWJMS0QvUUozbVdhZ3JKTk1JSUM3akNDQW5XZ0F3SUJBZ0lJU1cwdnZ6cVkycGN3Q2dZSUtvWkl6ajBFQXdJd1p6RWJNQmtHQTFVRUF3d1NRWEJ3YkdVZ1VtOXZkQ0JEUVNBdElFY3pNU1l3SkFZRFZRUUxEQjFCY0hCc1pTQkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFVE1CRUdBMVVFQ2d3S1FYQndiR1VnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13SGhjTk1UUXdOVEEyTWpNME5qTXdXaGNOTWprd05UQTJNak0wTmpNd1dqQjZNUzR3TEFZRFZRUUREQ1ZCY0hCc1pTQkJjSEJzYVdOaGRHbHZiaUJKYm5SbFozSmhkR2×2YmlCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUd0Z4R0VHZGRraGRVYVhpV0JCM2JvZ0tMdjNudXVUZUNOL0V1VDRUTlcxV1piTmE0aTBKZDJEU0pPZTdvSS9YWVh6b2pMZHJ0bWNMN0k2Q21FLzFSRm80SDNNSUgwTUVZR0NDc0dBUVVGQndFQkJEb3dPREEyQmdnckJnRUZCUWN3QVlZcWFIUjBjRG92TDI5amMzQXVZWEJ3YkdVdVkyOXRMMjlqYzNBd05DMWhjSEJzWlhKdmIzUmpZV2N6TUIwR0ExVWREZ1FXQkJRajhrbkVUNVBrN3lmbXhQWW9iRCtpdS8wdVN6QVBCZ05WSFJNQkFmOEVCVEFEQVFIL01COEdBMVVkSXdRWU1CYUFGTHV3M3FGWU00aWFwSXFaM3I2OTY2L2F5eVNyTURjR0ExVWRId1F3TUM0d0xLQXFvQ2lHSm1oMGRIQTZMeTlqY213dVlYQndiR1V1WTI5dEwyRndjR3hsY205dmRHTmhaek11WTNKc01BNEdBMVVkRHdFQi93UUVBd0lCQmpBUUJnb3Foa2lHOTJOa0JnSU9CQUlGQURBS0JnZ3Foa2pPUFFRREFnTm5BREJrQWpBNnozS0RVUmFac1liN05jTld5bUsvOUJmdDJROTFUYUtPdnZHY2dWNUN0NG40bVBlYldaK1kxVUVOajUzcHd2NENNREl0MVVRaHNLTUZkMnhkOHpnN2tHZjlGM3dzSVcyV1Q4WnlhWUlTYjFUNGVuMGJtY3ViQ1lraFlRYVpEd21TSFFBQU1ZSUJYekNDQVZzQ0FRRXdnWVl3ZWpFdU1Dd0dBMVVFQXd3bFFYQndiR1VnUVhCd2JHbGpZWFJwYjI0Z1NXNTBaV2R5WVhScGIyNGdRMEVnTFNCSE16RW1NQ1FHQTFVRUN3d2RRWEJ3YkdVZ1EyVnlkR2xtYVdOaGRHbHZiaUJCZFhSb2IzSnBkSGt4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRBZ2hvWVBhWjJjeW5EekFOQmdsZ2hrZ0JaUU1FQWdFRkFLQnBNQmdHQ1NxR1NJYjNEUUVKQXpFTEJna3Foa2lHOXcwQkJ3RXdIQVlKS29aSWh2Y05BUWtGTVE4WERURTJNVEV3TVRBNU5UY3dObG93THdZSktvWklodmNOQVFrRU1TSUVJQWpSdk9nWkxDa0w5ZmNCZjdOSm5RY3hsd2ltL09ieHkrcEltZ1M0TGRUYU1Bb0dDQ3FHU000OUJBTUNCRWN3UlFJZ1BKaHlkTXE5UDdTaHJFT2RxVk5KUk84QnN1MC93SXNCS0Y1cnlFR0JPSDRDSVFEeWo4Wml3VVV5alRJUFRUZDBKTTlaMExIdGZTQVhOWVN2T0t4eGN3MTlod0FBQUFBQUFBPT0iLCJoZWFkZXIiOnsiZXBoZW1lcmFsUHVibGljS2V5IjoiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFNUdmb2t2U2Z3WnV3aXYwSGxKVE1MS0dlMS96dWtjejczSFlvVjh5cjNGNWdmZmthVmNQTmptNjFhdFNOZm9UZUxiSnQ1aHBLWkJuSWlwZlVXSXZxMmc9PSIsInB1YmxpY0tleUhhc2giOiJLMG9KcmJiYURVUDh6YitSUEZhTmxVUTdTU2I3T1FEWERVeU9vM0JXdDJzPSIsInRyYW5zYWN0aW9uSWQiOiIyYTNkZjhjNDg0Y2JmMDg1OTgyN2Y0ZDBkZjhkYjY4YjYyNjBlNTIxYWUwZmI4YjI1NDRmNzNiM2RlMDVlYjE5In19»,"language»:"ru»,"additionalParameters»: {},"preAuth»:"true"}
Описание параметров запроса приведено в таблице ниже.
Для корректной обработки запроса необходимо добавить заголовок с определением типа содержимого — Content-Type: application/json.
Параметр | Тип данных | Обязательный параметр | Описание |
---|---|---|---|
merchant | AN.30 | Да | Имя входа продавца в системе платёжного шлюза. |
orderNumber | AN.32 | Да | Уникальный номер заказа на стороне продавца. |
description | ANS.512 | Нет | Описание заказа. |
language | A2 | Нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
additionalParameters | AN.1024 | Нет | Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Дополнительные параметры следует указывать в следующем формате. «имя_параметра»: «значение_параметра» Каждую новую пару имени и значения параметра следует отделять запятой. |
clientId | ANS.255 | Нет | Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей. |
preAuth | A.5 | Нет | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счёте клиента до их списания). Доступны следующие значения: · true (истина) — параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания); · false (ложь) — параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу. |
paymentToken | AN.8192 | Да | Параметр paymentToken должен содержать закодированное в Base64 значение свойства paymentData, полученного из объекта PKPaymentToken Object от системы Apple Pay (подробнее см. документацию Apple Pay). Таким образом, чтобы сделать запрос на оплату в платёжный шлюз, продавец должен:
|
Пример получаемого продавцом от 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 (возвращается, только если платёж прошёл успешно) | orderId | ANS36 | Да | Уникальный для продавца номер заказа в платёжной системе. |
error (возвращается, только если платёж не прошёл) | code | N.2 | Да | Код ошибки. |
description | — | ANS.512 | Да | Подробное техническое объяснение ошибки — содержимое этого параметра не предназначено для отображения пользователю. |
message | — | AN.512 | Да | Понятное описание ошибки — предназначено для отображения пользователю. |
Для регистрации заказа используется запрос 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 | Заказ с таким номером уже зарегистрирован. |
Для регистрации заказа используется запрос 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 (российский рубль). |
Нет (см. описание) | Адрес электронной почты. Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона. | |
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 | Да | Код ошибки. |
error | description | Да | Подробное техническое объяснение ошибки — содержимое этого параметра не предназначено для отображения пользователю. |
error | message | Да | Понятное описание ошибки — предназначено для отображения пользователю. |
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 | Отсутствует приватный ключ |
Для регистрации и инициации оплаты c помощью AlfaPay используется метод /alfapay/payment.do. (см. раздел Координаты подключения).
Метод: HTTP POST.
Параметры запроса:
Параметр | Тип данных | Обязательный параметр | Описание |
---|---|---|---|
userName | AN..30 | Да | API-логин, переданный продавцу при регистрации в ПШ. |
password | AN..30 | Да | Пароль от API-логина продавца, переданный продавцу при регистрации в ПШ. |
orderNumber | ANS..32 | Да | Уникальный номер (идентификатор) заказа в системе продавца. |
description | ANS..598 | Нет | Описание заказа в свободной форме. Чтобы получить возможность отправлять это поле в процессинг, обратитесь в техническую поддержку. |
language | A2 | Нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
feeInput | N..8 | Нет (см. описание) | Сумма комиссии в минимальных единицах валюты. Параметр передается только при включении соответствующей пермиссии. |
additionalParameters | См. описание | Нет | Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Дополнительные параметры следует указывать в следующем формате. "имя_параметра": "значение_параметра" Каждую новую пару имени и значения параметра следует отделять запятой. Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека. |
preAuth | boolean | Нет | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счету клиента до их списания). Доступны следующие значения:
Возможность проводить двухстадийные платежи предоставляется по отдельному запросу. |
ip | ANS..39 | Да | IP-адрес пользователя, который оплачивал заказ (IPv4/IPv6). Если IP не собирается на стороне продавца, то допустимо выставить 0.0.0.0 |
amount | N..12 | Да | Сумма платежа в минимальных единицах валюты. |
currencyCode | N3 | Нет | Цифровой код валюты платежа ISO 4217. |
ANS..40 | Нет (см. описание) | Электронная почта покупателя. Можно указать несколько адресов электронной почты через запятую и без пробелов - в этом случае чек будет отправлен на все указанные адреса. | |
phone | ANS..12 | Нет (см. описание) | Номер телефона клиента. Если клиент из РФ, то номер можно вводить и с кодом, и без кода страны (+7). Например:
Если при определении IP клиента, окажется, что он из любой другой страны, кроме РФ, то номер телефона вводится и возвращается с кодом страны (+380.../+56...и т. д.). В случае передачи номера в отдельном параметре и в дополнительных параметрах, в качестве основного использоваться будет номер, указанный в настоящем параметре phone. . |
returnUrl | ANS..512 | Да | Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru/ вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>. Адрес нельзя указывать относительным путем, т.е. он не должен начинаться на "." и "/". В противном случае вернется ошибка 4: "URL возврата некорректен" Например:
|
failUrl | ANS..512 | Нет | Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru/ вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>. Адрес нельзя указывать относительным путем, т.е. он не должен начинаться на "." и "/". В противном случае вернется ошибка 4: "URL возврата некорректен" Например:
|
dynamicCallbackUrl | ANS..512 | Нет | Параметр для передачи динамического адреса, для получения "платежных" callback-уведомления по заказу, активированные для продавца (успешная авторизация, успешное списание, возврат, отмена, отклонение платежа по таймауту, отклонение card present платежа). Не "платежные" callback-уведомления (включение/выключение связки, создание связки), будут отправляться на статический callback адрес. |
billingPayerData | См. описание ниже | Нет | Блок c регистрационными данными клиента (адрес, почтовый индекс), необходимыми для прохождения проверки адреса в рамках сервисов AVS/AVV. |
Ниже представлены параметры блока billingPayerData (данные об адресе регистрации клиента).
Название | Тип | Обязательно | Описание |
---|---|---|---|
billingCity | AN...50 | Нет | Город, зарегистрированный по конкретной карте у Банка Эмитента |
billingCountry | AN...50 | Нет | Страна, зарегистрированная по конкретной карте у Банка Эмитента (ISO 3166-1, numeric) |
billingAddressLine1 | AN...50 | Нет Обязательно, если у Мерчанта активирована пермиссия "Разрешено использование AVS/AVV". | Адрес, зарегистрированный по конкретной карте у Банка Эмитента Строка 1. |
billingAddressLine2 | AN...50 | Нет | Адрес, зарегистрированный по конкретной карте у Банка Эмитента Строка 2. |
billingAddressLine3 | AN...50 | Нет | Адрес, зарегистрированный по конкретной карте у Банка Эмитента Строка 3. |
billingPostalCode | AN...9 | Нет Обязательно, если у Мерчанта активирована пермиссия "Разрешено использование AVS/AVV". | Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента |
billingState | AN...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 | Да | Указывает на успешность проведения платежа. Доступны следующие значения:
| ||||||||||||||||||||||||||||||||||||||||||||||||||
data (возвращается, только если запрос прошёл успешно) | orderId | ANS36 | Да | Номер заказа в платёжной системе. Уникален в пределах системы. Отсутствует, если регистрация заказа на удалась по причине ошибки. | ||||||||||||||||||||||||||||||||||||||||||||||||||
data (возвращается, только если запрос прошёл успешно) | redirect | AN..512 | Только если требуется авторизация клиента в системе AlfaPay | URL платёжной формы, на который надо перенаправить браузер клиента. Не возвращается, если запрос отклонён по причине ошибки, детализированной в error.сode. | ||||||||||||||||||||||||||||||||||||||||||||||||||
error (возвращается, только если запрос завершился с ошибкой) | code | N..3 | Да | URL платёжной формы, на который надо перенаправить браузер клиента. Не возвращается, если запрос отклонён по причине ошибки, детализированной в error.сode.
| ||||||||||||||||||||||||||||||||||||||||||||||||||
error (возвращается, только если запрос завершился с ошибкой) | message | AN..512 | Да | Понятное описание ошибки - предназначено для отображения пользователю. |
Пример успешного ответа:
{ "success":true, "data": { "orderId": "e757d0cf-a028-7bdc-acb9-44480008afa2" "redirect": "https://alfapay.com" } }
Пример неуспешного ответа:
{ "success": false, "error": { "code": 7, "message": "Системная ошибка" } }