Использование функций или функциональности системы не описанных в настоящем документе не допустимо.
Для регистрации заказа используется запрос register.do (см. раздел Координаты подключения).
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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
Важно: 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 & currency = 810 & language = ru & orderNumber = 87654321 & returnUrl = https: //alfa.rbsuat.com/payment/finish.html&pageView=MOBILE&{jsonParams="param1»:"value1»,"param2»:"value2"}&merchantLogin=merch_child
Пример ответа:
{ "orderId": "61351fbd-ac25-484f-b930-4d0ce4101ab7", "formUrl": "https://alfa.rbsuat.com/payment/merchants/test/mobile_payment_ru.html?mdOrder=61351fbd-ac25-484f-b930-4d0ce4101ab7" }
Для отмены незавершённого заказа используется запрос decline.do. После успешного выполнения этого запроса заказ переводится в состояние Отменён.
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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
Важно: 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
Важно: 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
Пример ответа:
1{ 2 "expiration": "201512", 3 "cardholderName": "tr tr", 4 "depositAmount": 789789, 5 "currency": "810", 6 "approvalCode": "123456", 7 "authCode": 2, 8 "clientId": "666", 9 "bindingId": "07a90a5d-cc60-4d1b-a9e6-ffd15974a74f", 10 "ErrorCode": "0", 11 "ErrorMessage": "Успешно", 12 "OrderStatus": 2, 13 "OrderNumber": "23asdafaf", 14 "Pan": "411111**1111", 15 "Amount": 789789 16}
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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
Пример ответа:
1{ 2 "errorCode": "0", 3 "errorMessage": "Успешно", 4 "orderNumber": "0784sse49d0s134567890", 5 "orderStatus": 6, 6 "actionCode": -2007, 7 "actionCodeDescription": "Время сессии истекло", 8 "amount": 33000, 9 "currency": "810", 10 "date": 1383819429914, 11 "orderDescription": " ", 12 "merchantOrderParams": [{ 13 "name": "email", 14 "value": "yap" 15 }], 16 "attributes": [{ 17 "name": "mdOrder", 18 "value": "b9054496-c65a-4975-9418-1051d101f1b9" 19 }], 20 "cardAuthInfo": { 21 "expiration": "201912", 22 "cardholderName": "Ivan", 23 "secureAuthInfo": { 24 "eci": 6, 25 "threeDSInfo": { 26 "xid": "MDAwMDAwMDEzODM4MTk0MzAzMjM=" 27 } 28 }, 29 "pan": "411111**1111" 30 }, 31 "terminalId": "333333" 32}
Пример ответа на запрос 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 "name": "browser_language_param", 16 "value": "en" 17 }, 18 { 19 "name": "browser_os_param", 20 "value": "UNKNOWN" 21 }, 22 { 23 "name": "browser_name_param", 24 "value": "DOWNLOAD" 25 }, 26 { 27 "name": "user_agent", 28 "value": "Apache-HttpClient/4.5.12 (Java/11.0.18)" 29 } 30 ], 31 "transactionAttributes": [{ 32 "name": "cvcExist", 33 "value": "true" 34 }, 35 { 36 "name": "merchantIp", 37 "value": "10.99.50.51" 38 }, 39 { 40 "name": "tii", 41 "value": "CI" 42 }, 43 { 44 "name": "paymentNetRefNum", 45 "value": "MCA015913" 46 } 47 ], 48 "attributes": [{ 49 "name": "mdOrder", 50 "value": "b820f801-e98e-7d82-be15-a5a608873a40" 51 }], 52 "cardAuthInfo": { 53 "maskedPan": "525899**0075", 54 "expiration": "202412", 55 "cardholderName": "Integration Tester", 56 "approvalCode": "232243", 57 "paymentSystem": "MASTERCARD", 58 "secureAuthInfo": { 59 "eci": 2, 60 "threeDSInfo": { 61 "xid": "9cff1833-95fb-42b1-90c5-f8563d11bf88", 62 "cavv": "kBMSeAAAHnoTYhRQktfpAWQxx3Zg" 63 }, 64 "authTypeIndicator": 3, 65 "threeDsProtocolVersion": "2.1.0", 66 "rreqTransStatus": "Y", 67 "aresTransStatus": "C" 68 }, 69 "pan": "525899**0075" 70 }, 71 "bindingInfo": { 72 "clientId": "d96b40c4-2d69-4709-9944-a5622b86da57", 73 "bindingId": "0f15c7e3-9a4e-7696-8dc7-160708873a40" 74 }, 75 "authDateTime": 1681676563580, 76 "terminalId": "22222222", 77 "authRefNum": "310689170161", 78 "paymentAmountInfo": { 79 "paymentState": "DEPOSITED", 80 "approvedAmount": 10000, 81 "depositedAmount": 10000, 82 "refundedAmount": 0, 83 "feeAmount": 0, 84 "totalAmount": 10000 85 }, 86 "bankInfo": { 87 "bankCountryCode": "UNKNOWN", 88 "bankCountryName": "<Unknown>" 89 }, 90 "chargeback": false, 91 "paymentWay": "CARD" 92}
Для отмены оплаты заказа используется запрос reverse.do (см. раздел Координаты подключения).
Функция отмены доступна в течение ограниченного времени после оплаты, точные сроки необходимо уточнять в Банке.
Операция отмены оплаты может быть совершена только один раз. Если она закончится ошибкой, то повторная операция отмены платежа не пройдёт.
Данная функция доступна магазинам по согласованию с Банком. Для выполнения операции отмены пользователь должен обладать соответствующими правами.
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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.
По этому запросу средства по указанному заказу будут возвращены плательщику. Запрос закончится ошибкой в случае, если средства по этому заказу не были списаны. Система позволяет возвращать средства более одного раза, но в общей сложности не более первоначальной суммы списания.
Для выполнения операции возврата необходимо наличие соответствующих права в системе.
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: Swagger служит только для тестирования и не заменяет официальную документацию.
Параметры запроса:
Название | Тип | Обязательность | Описание | ||||
---|---|---|---|---|---|---|---|
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
Важно: 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
Важно: 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
Важно: 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
Пример ответа:
1{ 2 "errorCode": 0, 3 4 "orderStatuses": [ 5 6 { 7 "errorCode": "0", 8 "orderNumber": "58drs0Pes459Hdsddd0567a0", 9 "orderStatus": 2, 10 "actionCode": 0, 11 "actionCodeDescription": "Запрос успешно обработан", 12 "amount": 250000, 13 "currency": "810", 14 "date": 1414485649233, 15 "orderDescription": "Opisanie", 16 "ip": "212.5.125.194", 17 "merchantOrderParams": [{ 18 "name": "registr1", 19 "value": "registr1" 20 }], 21 "attributes": [{ 22 "name": "mdOrder", 23 "value": "f1a3365b-542c-4c8d-b34c-e9a7ee8dbc9c" 24 }], 25 "cardAuthInfo": { 26 "expiration": "201512", 27 "cardholderName": "Ivan", 28 "approvalCode": "123456", 29 "pan": "411111**1111" 30 }, 31 "bindingInfo": { 32 "clientId": "666", 33 "bindingId": "1eabfb8e-b90e-4dc8-bef6-14bd392b1cec" 34 }, 35 "authDateTime": 1414485661207, 36 "terminalId": "111113", 37 "authRefNum": "111111111111", 38 "paymentAmountInfo": { 39 "paymentState": "DEPOSITED", 40 "approvedAmount": 250000, 41 "depositedAmount": 250000, 42 "refundedAmount": 0 43 }, 44 "bankInfo": { 45 "bankName": "TEST CARD", 46 "bankCountryCode": "RU", 47 "bankCountryName": "Россия" 48 } 49 }, 50 51 { 52 "errorCode": "0", 53 "orderNumber": "57drs0Pes459Hdsddd0567a0", 54 "orderStatus": 2, 55 "actionCode": 0, 56 "actionCodeDescription": "Запрос успешно обработан", 57 "amount": 250000, 58 "currency": "810", 59 "date": 1414485277286, 60 "orderDescription": "Opisanie", 61 "ip": "212.5.125.194", 62 "merchantOrderParams": [{ 63 "name": "registr1", 64 "value": "registr1" 65 }], 66 "attributes": [{ 67 "name": "mdOrder", 68 "value": "09489184-bc5e-44a7-b6c4-3ca1feb8ef69" 69 }], 70 "cardAuthInfo": { 71 "expiration": "201512", 72 "cardholderName": "Ivan", 73 "approvalCode": "123456", 74 "pan": "411111**1111" 75 }, 76 "bindingInfo": { 77 "clientId": "666", 78 "bindingId": "1eabfb8e-b90e-4dc8-bef6-14bd392b1cec" 79 }, 80 "authDateTime": 1414485296046, 81 "terminalId": "111113", 82 "authRefNum": "111111111111", 83 "paymentAmountInfo": { 84 "paymentState": "DEPOSITED", 85 "approvedAmount": 250000, 86 "depositedAmount": 250000, 87 "refundedAmount": 0 88 }, 89 "bankInfo": { 90 "bankName": "TEST CARD", 91 "bankCountryCode": "RU", 92 "bankCountryName": "Россия" 93 } 94 } 95 ], 96 97 "totalCount": 2, 98 "page": 0, 99 "pageSize": 100 100}
Для оплаты заказа через внешнюю платёжную систему используется запрос paymentotherway.do (см. раздел Координаты подключения) со специальными параметрами. Возможен только запрос POST. Данная операция доступна при наличии соответствующих прав в системе.
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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
Важно: 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
Важно: 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
Важно: 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": "Binging isn't active" }
Для продления срока действия связки используется запрос extendBinding.do (см. раздел Координаты подключения).
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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
Важно: 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
Важно: 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
Параметры ответа:
1{ 2 "errorCode": "0", 3 "errorMessage": "Успешно", 4 "bindings": [{ 5 "bindingId": "0b8edeb2-8380-4092-bf7e-1e1a78f2b15e", 6 "maskedPan": "411111**1111", 7 "expiryDate": "201912", 8 "clientId": "12" 9 }, { 10 "bindingId": "6a8c0738-cc88-4200-acf6-afc264d66cb0", 11 "maskedPan": "411111**1111", 12 "expiryDate": "201912", 13 "clientId": "666" 14 }, { 15 "bindingId": "97a70989-c1fb-49f7-8a42-27c19dc160dw", 16 "maskedPan": "411111**1111", 17 "expiryDate": "201512", 18 "clientId": "666" 19 }] 20}
Для регистрации заказа используется запрос payment.do (см. раздел Координаты подключения).
Для операций отмены, возврата и завершения платежа следует использовать стандартные запросы к платёжному шлюзу.
Для тестирования этого метода воспользуйтесь SWAGGER
Важно: 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
Важно: 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» |
Примеры и описания ответа
Ниже представлен пример успешной оплаты.
1{ 2 "success": true, 3 "data": { 4 "orderId": "f7beebe4-7c9a-43cf-8e26-67ab741f9b9e" 5 }, 6 "orderStatus": { 7 "errorCode": "0", 8 "orderNumber": "UAF-203974-DE-12", 9 "orderStatus": 2, 10 "actionCode": 0, 11 "actionCodeDescription": "", 12 "amount": 12300, 13 "currency": "810", 14 "date": 1491333938243, 15 "orderDescription": "Test description", 16 "merchantOrderParams": [{ 17 "name": "firstParamName", 18 "value": "firstParamValue" 19 }, { 20 "name": "secondParamName", 21 "value": "secondParamValue" 22 }], 23 "attributes": [], 24 "cardAuthInfo": { 25 "expiration": "201912", 26 "cardholderName": "sdf sdf", 27 "approvalCode": "123456", 28 "paymentSystem": "VISA", 29 "pan": "411111**1111" 30 }, 31 "authDateTime": 1491333939454, 32 "terminalId": "11111", 33 "authRefNum": "111111111111", 34 "paymentAmountInfo": { 35 "paymentState": "DEPOSITED", 36 "approvedAmount": 12300, 37 "depositedAmount": 12300, 38 "refundedAmount": 0 39 }, 40 "bankInfo": { 41 "bankCountryName": "<Неизвестно>" 42 }, 43 "chargeback": false, 44 "operations": [{ 45 "amount": 12300, 46 "cardHolder": "sdf sdf", 47 "authCode": "123456" 48 }] 49 } 50}
Ниже представлен пример неуспешной оплаты.
{ "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
Важно: 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 "firstParamName": "firstParamValue", 9 "secondParamName": "secondParamValue" 10 }, 11 "paymentToken": "eyJtZXJjaGFudCI6ICJrdXBpdmlwIiwib3JkZXJOdW1iZXIiOiAyMDUxOTIzMzkxLCJwYXltZW50VG9rZW4iOiAie1wiZXBoZW1lcmFsUHVibGljS2V5XCI6XCJrZXlcIixcImVuY3J5cHRlZE1lc3NhZ2VcIjpcIm1lc3NhZ2VcIixcInRhZ1wiOlwidGFnXCJ9In0=", 12 "ip": "127.0.0.1", 13 "amount": "230000", 14 "currencyCode": 643 15}
Описание параметров ответа приведены в таблице ниже.
Параметр | Вложенный параметр | Обязательный параметр | Описание |
---|---|---|---|
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 "firstParamName": "firstParamValue", 10 "secondParamName": "secondParamValue" 11 }, 12 "ip": "127.0.0.1", 13 "amount": "230000", 14 "currencyCode": 643, 15 "failUrl": "https://test.ru" 16 "returnUrl": "https://test_return.ru" 17}
Параметры ответа:
Параметр | Вложенный параметр | Тип | Обязательный параметр | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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": "Системная ошибка" } }