Спецификация по взаимодействию торговца
Оплата на платежной странице процессинга
Для оплаты на платежной странице процессинга необходимо выполнить редирект на страницу процессингового центра, с POST данными.
Production url: https://****.procard-ltd.com/api/
POST параметры:
Параметр | Тип | Обязательный | Описание | Значение |
---|---|---|---|---|
operation | String | + | Тип операции | Purchase |
merchant_id | String | + | ID мерчанта, выдается процесcингом | |
amount | Float | + | Сумма операции. Пример: 500.00 | |
signature | String | + | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | ||||
Порядок параметров при конкатенации важен! | ||||
order_id | String | + | Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку. | |
currency_iso | String | + | Валюта платежа | UAH |
description | String | + | Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах | |
add_params | Array | + | Массив с дополнительными параметрами. Дополнительные параметры затем возвращаются мерчанту в callback вызове | |
approve_url | String | + | URL для переадресации в случае, если платеж успешен | |
decline_url | String | + | URL для переадресации в случае, если платеж не успешен | |
cancel_url | String | + | URL для переадресации в случае, если пользователь отказался совершить оплату | |
callback_url | String | + | URL на который придет информация о результате выполнения платежа | |
redirect | Integer | 1 / 0 - по умолчанию 1 , если параметр имеет значение 0 , тогда клиент не будет получать переадресацию, а получит url платежной страницы | ||
short_link | Integer | По умолчанию 0 - не возвращать, 1 - возвращать в параметре shortUrl короткую ссылку на платежную страницу | ||
auth_type | Integer | По умолчанию 1 - покупка, 2 - Предавторизация | ||
secure_type | Integer | Тип прохождения безопасности транзакции. Перечень возможных значений можно посмотреть в Справочник. Значения параметра secure_type | ||
language | String | Язык страницы оплаты По умолчанию ua - украинский, ru - русский, en - английский | ||
client_first_name | String | Имя клиента | ||
client_last_name | String | Фамилия клиента | ||
client_id | String | Идентификатор клиента в системе мерчанта | ||
phone | String | Телефон клиента | ||
String | Адрес электронной почты клиента |
Описание дополнительных параметров запроса add_params
находится в следующем разделе.
Пример запроса:
{
"operation": "Purchase",
"merchant_id": "jnmx9smJQmSejKoR3rIgm5Pj7QG",
"order_id": "1685444702348",
"amount": 100,
"currency_iso": "UAH",
"description": "Оплата замовлення",
"auth_type": 1,
"signature": "113d991b5c3b9d0be6c4a589b9d154d8",
"language": "ua",
"add_params": {
"data": "123",
"SenderName": "Петренко Петро Петрович"
},
"approve_url": "http://merchant.site/1/approved",
"decline_url": "http://merchant.site/1/declined",
"cancel_url": "http://merchant.site/1/canceled",
"callback_url": "http://merchant.site/callback",
"client_first_name": "Olga",
"client_last_name": "Petrenko",
"email": "[email protected]",
"phone": "+380112223344"
}
Пример ответа успеха, если в запросе "redirect": 0
:
{
"result": 0,
"url": "https://procard-ltd.com/payment/pay?payment=3a95bdaae73a7388b3a3750023a817a897b43f2295315f2b6e0e12e3db0ced2e6475c2b080dec&lang=ukr"
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Другие коды ошибок см. Справочник. Коды системных ошибок
Callback вызов для отправки уведомления о статусе платежа
Данные отправляются по URL адресу который указан в параметрах платежа в поле callback_url
.
Данные отправляются на сервер торговца в формате JSON
Параметры:
Параметр | Тип | Описание | Значение |
---|---|---|---|
operation | String | Тип операции. Например: Purchase | |
merchantAccount | String | ID мерчанта | |
orderReference | String | ID операции в системе торговца | |
amount | Float | Сумма операции | |
currency | String | Валюта операции | |
phone | String | Номер телефона клиента (если получен от мерчанта в запросе на оплату) | |
createdDate | String | Дата платежа в формате YYYY-MM-DD HH:II:SS | |
Пример: 2018-12-14 12:01:26 | |||
cardPan | String | Маскированный PAN карты | |
Пример: 535277******0298 | |||
cardType | String | Тип карты | Visa MasterCard |
fee | Float | Комиссия за операцию | |
transactionId | String | ID транзакции на стороне ПЦ | |
type | String | Тип события. Пример: payment | |
add_params | Array | Массив с дополнительными параметрами, полученными от мерчанта в запросе на оплату | |
recToken | String | Токен для рекуррентного платежа | |
transactionStatus | String | Статус операции | Approved - Успешно Declined - Отказ NEEDS-CLARIFICATION - Требует уточнения статуса платежа. Выполните запрос статуса платежа (Check) или обратитесь в техподдержку |
reason | String | Текстовая расшифровка результата выполнения операции | |
reasonCode | String | Код результата выполнения операции. Перечень кодов можно посмотреть в Справочник. Коды ответов | |
merchantSignature | String | В целях подтверждения валидности данных, генерируется и передается по запросу HMAC_SHA512 контрольная подпись с использованием SecretKey мерчанта. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, orderReference, amount, currency разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! |
Пример колбэка успешной операции покупки (Purchase):
{
"merchantAccount": "vZmxaalkjdsfGWt5ApLojM8ENzCz",
"orderReference": "1685453241304",
"amount": "2.23",
"operation": "Purchase",
"currency": "UAH",
"phone": "+38 (011) 222-33-44",
"createdDate": "2023-05-30 16:27:21",
"cardPan": "403021******9287",
"cardType": "Visa",
"fee": "0.02",
"transactionId": 195660162,
"type": "payment",
"recToken": "b8e61cd175c51237cf58342377592ff8d465f25ed50288a5f3ef9a01517c3bc1",
"add_params": {
"secure_type": "1",
"lifetime": "1685539641",
"AReqDetails.browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"AReqDetails.browserColorDepth": "24",
"AReqDetails.browserIP": "10.253.2.159",
"AReqDetails.browserLanguage": "ru",
"AReqDetails.browserScreenHeight": "1080",
"AReqDetails.browserScreenWidth": "1920",
"AReqDetails.browserTZ": "-120",
"AReqDetails.browserUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
"AReqDetails.browserJavaEnabled": "true",
"AReqDetails.notificationUrl": "https://procard-ltd.com/payment/check3ds?payment=0cc44844b30ae8a0273e6c7b010ce34f86e8729fea2b6f7b628c92232ed33eb06475f9b999c03",
"AReqDetails.deviceChannel": "02",
"AReqDetails.threeRIInd": "",
"CReqDetails.WindowWidth": "1024",
"CReqDetails.WindowHeight": "768",
"merchantName": "merchant",
"RRN": "001206018623"
},
"transactionStatus": "Approved",
"reason": "ОПЕРАЦИЯ РАЗРЕШЕНА",
"reasonCode": "1",
"pcTransactionID": "1206018623",
"pcApprovalCode": "7E06C0 A",
"merchantSignature": "fc55cd12476b1a67de74d42dfc3625f1"
}
Пример колбэка отказа при выполнении покупки (Purchase):
{
"merchantAccount": "vZmxaalkjdsfGWt5ApLojM8ENzCz",
"orderReference": "1685454851406",
"amount": "202.23",
"operation": "Purchase",
"currency": "UAH",
"phone": "+38 (011) 222-33-44",
"createdDate": "2023-05-30 16:54:11",
"cardPan": "403021******9287",
"cardType": "Visa",
"fee": "1.82",
"transactionId": 195662868,
"type": "verify",
"recToken": "",
"transactionStatus": "Declined",
"reason": "НА СЧЕТЕ НЕ ХВАТАЕТ ДЕНЕГ",
"reasonCode": "76",
"pcTransactionID": "1206054482",
"pcApprovalCode": "145036 A",
"merchantSignature": "34b4d87da1828419ca79ab909b443eb9"
}
Операция Verify
Для проверки карты необходимо переадресовать пользователя на страницу платежного шлюза методом POST на https://****.procard-ltd.com/api/ со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
operation | String | Тип операции "Verify" |
merchant_id | String | Идентификатор мерчанта |
amount | Float | Сума операции. Пример: 500.00 . Может быть 0 |
currency_iso | String | Валюта платежа. Например: UAH |
order_id | String | Это уникальный номер операции. Генерируется на стороне мерчанта. Он должен быть уникальным на протяжении всей работы. |
approve_url | String | URL, на который будет перенаправлен пользователь в случае успешной операции |
decline_url | String | URL, на который будет перенаправлен пользователь в случае не успешной операции |
cancel_url | String | URL, на который будет перенаправлен пользователь в случае отмены операции |
callback_url | String | URL, на который придет информация о результате выполнения платежа и сгенерированный токен для последующего рекуррентного платежа |
language | String | Язык страницы оплаты По умолчанию ua - украинский, ru - русский, en - английский |
redirect | Integer | 1 / 0 - по умолчанию 1 , если параметр имеет значение 0 , тогда клиент не будет получать переадресацию, а получит url платежной страницы |
secure_type | Integer | Тип прохождения безопасности транзакции. Перечень возможных значений можно посмотреть в Справочник. Значения параметра secure_type |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso разделенных ";" (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
Описание дополнительных параметров запроса add_params
находится в следующем разделе.
По результатам операции мерчанту поступает Callback-вызов на указанный callback_url
, в котором возвращается параметр recToken
– токен для последующих рекуррентных платежей.
Пример запроса:
{
"operation": "Verify",
"merchant_id": "BO_671a8709e74a7c9",
"amount": 0,
"currency_iso": "UAH",
"order_id": "9ba9990f-fea5-495d-a20a-ae4e7ffb68e3",
"approve_url": "http://merchant.site/1/approved",
"decline_url": "http://merchant.site/1/declined",
"cancel_url": "http://merchant.site/1/canceled",
"callback_url": "http://merchant.site/callback",
"redirect": 0,
"language": "ua",
"signature": "9f882fdd69c7ddfa992d89c5493a61fc",
"add_params": {
"SenderName": "Петренко Петро Петрович"
}
}
Пример ответа успеха, если в запросе "redirect": 0
:
{
"result": 0,
"url": "https://procard-ltd.com/payment/pay?payment=3a95bdaae73a7388b3a3750023a817a897b43f2295315f2b6e0e12e3db0ced2e6475c2b080dec&lang=ukr"
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Рекуррентные платежи RecPayment(оплата по токену)
Production url: https://****.procard-ltd.com/api/
Для совершения рекуррентного платежа необходимо отправить POST запрос со следующими параметрами:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
operation | String | + | Необходимое значение для данной операции RecPayment |
merchant_id | String | + | Идентификатор мерчанта |
amount | Float | + | Сумма операции. Пример: 500.00 |
recurring_token | String | + | Токен полученный от ПС |
order_id | String | + | Уникальный номер заказа в системе торговца |
description | String | + | Назначение платежа |
currency_iso | String | + | Валюта. На данный момент только "UAH" |
callback_url | String | URL, на который придет информация о результате выполнения платежа и сгенерированный токен для последующего рекуррентного платежа | |
auth_type | Integer | 1 - покупка, 2 - предавторизация. По умолчанию - 1 | |
signature | String | + | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, recurring_token, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! |
Для поддержания возможности выполнения авторизации по протоколу 3DS2, в add_params
необходимо дополнительно передать следующие параметры:
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
AReqDetails.OrderID | String | + | Идентификатор заказа, по которому необходимо выполнить операцию |
AReqDetails.browserAcceptHeader | String | + | Содержимое HTTP-заголовков браузера покупателя. Максимальное значение – 2048 символов |
AReqDetails.browserColorDepth | String | + | Значение, представляющее битовую глубину цветовой палитры для отображения изображений, в битах на пиксель. Максимальное значение – 2 символа. Возможные значения: 1 - 1 бит; 4 - 4 бита; 8 - 8 битов; 15 - 15 битов; 16 - 16 битов; 24 - 24 бита; 32 - 32 бита; 48 - 48 битов |
AReqDetails.browserIP | String | + | IP-адрес браузера. Возможные форматы значения: IPv4-адрес указан в виде четырех групп чисел в десятичной системе счисления, разделенных символом «.». Например: 100.12.123.255. IPv6-адрес указан в виде восьми групп чисел в шестнадцатеричной системе счисления, разделенных символом «:». Например: 2011: 0db8: 85a3: 0101: 0101: 8a2e: 0370: 7334 |
AReqDetails.browserLanguage | String | + | Язык браузера, указанный в IETF BCP47. Максимальное значение – 8 символов |
AReqDetails.browserScreenHeight | String | + | Общая высота (в пикселях) экрана, отображаемого держателю карты. Максимальное значение – 6 символов |
AReqDetails.browserScreenWidth | String | + | Общая ширина (в пикселях) экрана, отображаемого держателю карты. Максимальное значение – 6 символов |
AReqDetails.browserTZ | String | + | Разница во времени между временем по UTC и местным временем браузера пользователя. Максимальное значение – 5 символов |
AReqDetails.browserUserAgent | String | + | Содержимое HTTP-заголовка User-Agent. Максимальное значение – 2048 символов |
AReqDetails.browserJavaEnabled | Boolean | + | Признак возможности выполнения JavaScript в браузере держателя карты. Возможные значения: true false |
AReqDetails.threeRIInd | String | + | Тип запроса, который выполняет ТСП без участия держателя карты (рекуррентные платежи). Возможные значения: 01 (периодический платеж/перевод); 02 (частичная оплата); 03 (добавление карты); 04 (сохранение информации о карте); 05 (идентификация учетной записи); 80-99 (значения зарезервированные для использования DS) |
AReqDetails.notificationUrl | String | URL-адрес сервис провайдера, на который возвращается POST-сообщение CRes от ACS, после выполнения проверки владельца карты при challenge-flow. | |
AReqDetails.deviceChannel | String | + | Тип устройства, с которого инициирована транзакция. Возможные значения: 01 - мобильное приложение ТСП (App-based); 02 - браузер пользователя(Browser); 03 - интернет-магазин (3DS Requestor) На данный момент доступно только значение: 02 - браузер пользователя(Browser). |
CReqDetails.WindowWidth | String | + | Ширина окна браузера (в пикселях), в котором отображаются страницы сайта ТСП |
CReqDetails.WindowHeight | String | + | Высота окна браузера (в пикселях), в котором отображаются страницы сайта ТСП |
В ответ приходят следующие параметры:
Параметр | Тип | Описание | Значение |
---|---|---|---|
code | Integer | Код ответа запроса | |
message | String/Integer | Текстовое сообщение с результатом запроса | Обратите внимание, что значение может быть как строкой так и числом! |
status | String | Статус выполнения операции | APPROVED - успешно DECLINED - операция не успешна |
Описание дополнительных параметров запроса add_params
находится в следующем разделе.
Пример запроса:
{
"operation": "RecPayment",
"merchant_id": "TEST_TRADER_2",
"amount": 3,
"recurring_token": "052e03dfaab55b6ac1511fee0c552d43ca0818a5ea081b9d06d7df3a1d4e7b8b",
"order_id": "1686217047097325",
"description": "Recurrent payment",
"currency_iso": "UAH",
"auth_type": 1,
"signature": "0cf3324fd88d7fe880012c9892ecab1b",
"add_params": {
"SenderName": "Петренко Петро Петрович"
}
}
Пример ответа успеха:
{
"code": 0,
"message": "OK",
"status": "APPROVED"
}
"status":"APPROVED"
- means that the operation was completed successfully
Пример ответа для 3DS2:
{
"code": 2002,
"message": "Need 3DS",
"status": "INPROCESSING",
"3ds":true,
"version":2,
"d3AcsUrl":"https://acs2-test.procard-ltd.com/",
"d3CReq":"eyJhY3NUcmFuc0lEIjoiMWZhNTE2N2EtMjQ2My00NWY2LWE2N2MtNDdmZDg2NTI3ZTQ0IiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIzNDIzNjdmNi1hZWVjLTRjOWYtYTYyNi0wNjFlMWEyMzQyZGMiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDMiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0",
"converted_status":9,
"reasonCode":5100
}
"status":"INPROCESSING"
- means that the operation needs 3DS autorization
Для проверки 3ds необходимо методом POST отправить форму с параметром d3_creq на d3_acs_url
.
<form name="MPIform" action='${d3AcsUrl}' method="POST">
<input type="hidden" name="creq" value='${d3CReq}'>
</form>
Для завершения процесса оплаты, если используется собственный notificationUrl, необходимо выполнить "Подтверждение 3DS верификации".
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Пример ответа неуспеха операции:
{
"code": 58,
"message": 58,
"status": "DECLINED"
}
где 58 - код неуспеха операции. Перечень кодов можно посмотреть в Справочник. Коды ответов
Операция Reverse
Для отмены платежа необходимо отправить POST запрос на url https://****.procard-ltd.com/api/reverse со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
merchant_id | String | Идентификатор мерчанта |
order_id | String | Это уникальный номер операции, которая была отправлена в запросе оплаты |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
В ответ возвращается JSON со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код ответа (1 - успешно) Если запрос неуспешный, code соответствует коду из Справочник. Коды системных ошибок Если операция неуспешна, code соответствует коду из Справочник. Коды ответов |
message | String | Текстовое сообщение с результатом запроса |
Пример запроса:
{
"merchant_id": "TEST_TRADER_2",
"signature": "52903ab3f2e17e90990131873d508a4d",
"order_id": "1686299645210695"
}
Пример ответа успеха:
{
"code": 1,
"message": "ОПЕРАЦИЯ РАЗРЕШЕНА"
}
"code": 1
- означает, что операция выполнена успешно
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Операция Complete
Для подтверждения платежа необходимо отправить POST запрос на url https://****.procard-ltd.com/api со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
operation | String | Complete |
merchant_id | String | Идентификатор мерчанта |
order_id | String | Уникальный номер заказа в системе мерчанта, который был отправлен в запросе оплаты |
amount | Float | Сумма списания |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
В ответ возвращается JSON со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код результата запроса (0 - успешный) Другие коды ошибок см. Справочник. Коды системных ошибок |
message | String | Текстовое сообщение с результатом запроса |
Пример запроса:
{
"operation": "Complete",
"merchant_id": "vZmxaajdkbOGWt5ApLojM8ENzCz",
"signature": "ccfeb05f64643c84beca2e0b179d5c81",
"order_id": "1686657185399",
"amount": 2.23
}
Пример ответа успеха:
{
"code": 0,
"message": "Платеж успешно подтвержден"
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Операция Check
Для проверки статуса платежа или верификации карты необходимо отправить POST запрос на url https://****.procard-ltd.com/api/check со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
merchant_id | String | Идентификатор мерчанта |
order_id | String | Уникальный номер заказа в системе мерчанта, который был отправлен в запросе оплаты |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
В ответ возвращается JSON.
Параметры ответа успеха:
Параметр | Тип | Описание |
---|---|---|
code | Integer | 0 - успех выполнения запроса |
reasonCode | String | Код ответа у операции оплаты (см. Справочник. Коды ответов) |
reason | String | Описание ответа |
merchantAccount | String | ID мерчанта |
orderReference | String | ID операции в системе мерчанта |
amount | String | Сумма |
currency | String | Валюта платежа |
phone | String | Номер телефона |
createdDate | String | Дата платежа |
cardPan | String | Маскированный номер карты |
cardType | String | Тип карты |
fee | String | Комиссия платежа |
transactionId | BigInteger | Идентификатор транзакции |
transactionStatus | String | Статус операции (см. Справочник. Статусы платежа) Если получен статус NEEDS-CLARIFICATION, повторите пожалуйста этот запрос через время или обратитесь в техподдержку |
pcTransactionID | String | Идентификатор транзакции в процессинговом центре. Параметр не обязательный в ответе! |
pcApprovalCode | String | Код авторизации. Параметр не обязательный в ответе! |
rrn | String | Уникальный идентификатор банковской транзакции |
Параметры ответа неуспеха:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код результата запроса, см. Справочник. Коды системных ошибок |
message | String | Текстовое сообщение с результатом запроса |
Пример запроса:
{
"merchant_id": "vZmxaajdkbOGWt5ApLojM8ENzCz",
"order_id": "1686657185399",
"signature": "c0cf536eb79bf25793bb7996d3839088"
}
Пример ответа успеха для успешного платежа:
{
"code": 0,
"merchantAccount": "vZmxaajdkbOGWt5ApLojM8ENzCz",
"orderReference": "1686662094017",
"amount": "2.50",
"currency": "UAH",
"phone": "+38 (011) 222-33-44",
"createdDate": "2023-06-13 16:14:55",
"cardPan": "403021******9287",
"cardType": "Visa",
"fee": "0.02",
"transactionId": 197387938,
"transactionStatus": "APPROVED",
"reason": "ОПЕРАЦИЯ РАЗРЕШЕНА",
"reasonCode": "1",
"rrn": "1234567890",
"pcTransactionID": "1226920964",
"pcApprovalCode": "88509F A"
}
Пример ответа успеха для неуспешного платежа:
{
"code": 0,
"merchantAccount": "vZmxaajdkbOGWt5ApLojM8ENzCz",
"orderReference": "5018440306",
"amount": "16.00",
"currency": "UAH",
"phone": "+38 (011) 222-33-44",
"createdDate": "2023-06-13 10:17:41",
"cardPan": "537541******4408",
"cardType": "MasterCard",
"fee": "0.14",
"transactionId": 197355512,
"transactionStatus": "DECLINED",
"reason": "АВТОРИЗАЦИЯ ОТКЛОНЕНА",
"reasonCode": "5"
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Операция P2PCredit
Для пополнения карты необходимо отправить POST запрос на url https://****.procard-ltd.com/api со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
operation | String | Тип операции "P2PCredit" |
merchant_id | String | Идентификатор мерчанта |
order_id | String | Это уникальный номер операции. Генерируется на стороне мерчанта. Он должен быть уникальным на протяжении всей работы. |
amount | Float | Сумма операции, должна быть дробным числом, c двумя знаками после запятой. Пример: 100.50 |
currency_iso | String | Валюта операции. На данный момент доступна только "UAH" |
card_number | String | Номер карты получателя. |
token | String | Токен, можно использовать вместо карты получателя |
visa_alias | String | Вместо номера карты или токена можно указать данные псевдонима VisaAlias. Если номер телефона используется в качестве псевдонима, он должен быть предоставлен в соответствии со структурой номера ITU-T E.164 (2010). Пример (номер телефона): 380670000000 |
visa_alias_type | String | Тип алиаса. Обязателен, если указан параметр visa_alias |
add_params | Array | Массив с дополнительными параметрами идентификации отправителя и получателя переводов. См. Справочник. Список дополнительных полей для идентификации отправителя и получателя переводов |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, card_number/token, currency_iso разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
При использовании visa_alias в параметре card_number надо передавать пустую строку и использовать ее при расчете подписи | ||
Порядок параметров при конкатенации важен! |
Возможные значения параметра visa_alias_type
:
- 01 - номер телефона,
- 02 - адрес электронной почты,
- 03 - национальный идентификатор,
- 04 - IBAN (международный номер банковского счета)
Список дополнительных параметров для клиентов с внешними антифрод-системами:
Параметр | Описание | Значение |
---|---|---|
BrowserIP | IP-адрес браузера клиента | Только IPv4 адрес: * 220.38.220.38 |
UserAccountID | Идентификационный номер учетной записи пользователя | |
Fingerprint | Отпечаток пальца |
Пример дополнительных параметров:
{
"add_params": {
"BrowserIP": "127.0.0.1",
"UserAccountID": "123315483215",
"Fingerprint": "asdwsascaw2s1d5ww5a"
}
}
Описание дополнительных параметров запроса add_params
находится в следующем разделе.
В ответ возвращается JSON со следующими параметрами:
Параметр | Тип | Описание | Значение |
---|---|---|---|
code | Integer | Код результата запроса0 - успешный12 - ошибка операцииДругие коды см. Справочник. Коды системных ошибок | |
message | String/Integer | Сообщение с результатом запроса Обратите внимание, что message может быть как строкой так и числом! | |
status | String | Статусы операции | APPROVED - перевод успешен DECLINED - Перевод не успешен ON-PAYMENT - Заявка на перевод в обработке, необходимо дополнительно запросить статус |
transactionID | Integer | Идентификатор транзакции в платежной системе | |
approvalCode | Integer | Код авторизации | |
rrn | String | Уникальный идентификатор банковской транзакции |
Пример ответа успеха:
{
"code":0,
"message":"OK",
"status":"APPROVED",
"transactionID":"2814211",
"approvalCode":"371623 A",
"rrn":"1234567890"
}
"status":"APPROVED" - означает, что операция была выполнена успешно
Пример ответа неуспеха обработки запроса:
{
"code":-4,
"message":"Неверная подпись"
}
Пример ответа неуспеха выполнения операции:
{
"code":12,
"message":58,
"status":"DECLINED"
}
где 58 - код неуспеха операции. Перечень кодов можно посмотреть в Справочник. Коды ответов
Операция получения алиаса
Для получения данных алиаса необходимо отправить POST на url https://procard-ltd.com/alias/getinfo запрос со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
merchantId | String | идентификатор мерчанта |
alias | String | Псевдоним VisaAlias. Если номер телефона используется в качестве псевдонима, он должен быть предоставлен в соответствии со структурой номера ITU-T E.164 (2010). Пример (номер телефона): 380670000000 |
aliasType | String | Тип алиаса |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, alias, aliasType разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
Возможные значения параметра aliasType
:
- 01 - номер телефона,
- 02 - адрес электронной почты,
- 03 - национальный идентификатор,
- 04 - IBAN (международный номер банковского счета)
В ответ возвращается JSON со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код ответа (0 - найден алиас, 1 - не найден). Другие коды см. Справочник. Коды системных ошибок |
recipientName | String | В зависимости от идентификатора бизнес-приложения запроса этот атрибут может содержать имя потребителя, имя продавца или имя агента |
recipientPrimaryAccountNumber | String | Маскированный номер карты |
issuerName | String | Наименование банка эмитента |
Пример запроса:
{
"merchantId": "BO_54141bee2e62426",
"alias": "380670000000",
"aliasType": "01",
"signature": "299544b24eb5c623301c83fc1c30b953"
}
Пример ответа - найден алиас:
{
"code": 0,
"recipientName": "Perto Pertrenko",
"recipientPrimaryAccountNumber": "516911******8886",
"issuerName": "UA Bank 1"
}
Пример ответа - не найден алиас:
{
"code": 1,
"recipientName": "",
"recipientPrimaryAccountNumber": "",
"issuerName": ""
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Операция получения баланса
Для получения баланса карты, необходимо отправить POST-запрос на url https://****.procard-ltd.com/api/balance запрос со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
merchant_id | String | Идентификатор мерчанта |
date | String | Дата и время запроса в произвольном формате |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, date разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
В ответ возвращается JSON.
Параматры ответа успеха:
Параметр | Тип | Описание |
---|---|---|
mk_deposit | Float | Лимит Mastercard |
visa_deposit | Float | Лимит Visa |
mk_available | Float | Доступный остаток Mastercard |
visa_available | Float | Доступный остаток Visa |
Параметры ответа неуспеха:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код результата запроса, см. Справочник. Коды системных ошибок |
message | String | Текстовое сообщение с результатом запроса |
Пример запроса:
{
"merchant_id": "TEST_TRADER_2",
"date": "2023-05-19 15:44:16",
"signature": "5270d398dd09866a90b9131b447d8684"
}
Пример ответа успеха:
{
"mk_deposit": 9999999,
"visa_deposit": 9999999,
"mk_available": 9999999,
"visa_available": 9999999
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Операция P2PDebit
Для списания средств с карты необходимо переадресовать пользователя на страницу платежного шлюза методом POST со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
operation | String | Тип операции "P2PDebit" |
merchant_id | String | Идентификатор мерчанта |
order_id | Integer | Это уникальный номер операции. Генерируется на стороне мерчанта. Он должен быть уникальным на протяжении всей работы. |
amount | Float | Сумма операции, должна быть дробным числом, c двумя знаками после запятой. Пример: 100.50 |
currency_iso | String | Валюта операции. На данный момент доступна только "UAH" |
description | String | Назначение платежа |
approve_url | String | URL, на который будет перенаправлен пользователь в случае успешной операции |
decline_url | String | URL, на который будет перенаправлен пользователь в случае не успешной операции |
cancel_url | String | URL, на который будет перенаправлен пользователь в случае отмены операции |
callback_url | String | URL на который придет информация о результате выполнения платежа |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description, approve_url, decline_url, cancel_url разделенных “;” (точка с запятой) в кодировке UTF-8. | ||
Порядок параметров при конкатенации важен! |
Описание дополнительных параметров запроса add_params
находится в следующем разделе.
Информация о передаче дополнительных полей для идентификации отправителя и получателя переводов можно найти в соответствующем справочнике.
Операция PurchaseOnMerchant
Для оплаты на платежной странице мерчанта необходимо отправить POST-запрос со следующими данными.
Production url: https://****.procard-ltd.com/api/
POST параметры:
Параметр | Тип | Описание | Значение |
---|---|---|---|
operation | String | Тип операции | PurchaseOnMerchant |
merchant_id | String | ID мерчанта, выдается процесcингом | |
amount | Float | Сумма операции. Пример: 500.00 | |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! | |||
order_id | String | Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку. | |
currency_iso | String | Валюта платежа | UAH |
description | String | Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах | |
add_params | Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове | ||
token | String | Токен для списания с карты без передачи реквизитов карты. Должен быть передан либо токен, либо данные карты. | |
card_num | String | Номер карты | |
card_exp_month | String | Срок действия карты MM | |
card_exp_year | String | Срок действия карты YY | |
card_cvv | String | CVV2 код, в случае операции без CVV необходимо указать -1 | |
card_holder | String | Владелец карты. Не обязательное поле | |
phone | String | Номер телефона клиента. Не обязательное поле | |
auth_type | Integer | Тип платежа.1 - Purchase - покупка (по умолчанию)2 - PreAuth - блокирование средств на карте | |
secure_type | String | Тип прохождения безопасности транзакции. Перечень возможных значений можно посмотреть в Справочник. Значения параметра secure_type | |
callback_url | String | URL на который придет информация о результате выполнения платежа |
Для поддержания возможности выполнения авторизации по протоколу 3DS2, в add_params
необходимо дополнительно передать следующие параметры:
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
AReqDetails.OrderID | + | Идентификатор заказа, по которому необходимо выполнить операцию | |
AReqDetails.browserAcceptHeader | + | Содержимое HTTP-заголовков браузера покупателя. Максимальное значение – 2048 символов | |
AReqDetails.browserColorDepth | + | Значение, представляющее битовую глубину цветовой палитры для отображения изображений, в битах на пиксель. Максимальное значение – 2 символа. Возможные значения: 1 - 1 бит; 4 - 4 бита; 8 - 8 битов; 15 - 15 битов; 16 - 16 битов; 24 - 24 бита; 32 - 32 бита; 48 - 48 битов | |
AReqDetails.browserIP | + | IP-адрес браузера. Возможные форматы значения: IPv4-адрес указан в виде четырех групп чисел в десятичной системе счисления, разделенных символом «.». Например: 100.12.123.255. IPv6-адрес указан в виде восьми групп чисел в шестнадцатеричной системе счисления, разделенных символом «:». Например: 2011: 0db8: 85a3: 0101: 0101: 8a2e: 0370: 7334 | |
AReqDetails.browserLanguage | + | Язык браузера, указанный в IETF BCP47. Максимальное значение – 8 символов | |
AReqDetails.browserScreenHeight | + | Общая высота (в пикселях) экрана, отображаемого держателю карты. Максимальное значение – 6 символов | |
AReqDetails.browserScreenWidth | + | Общая ширина (в пикселях) экрана, отображаемого держателю карты. Максимальное значение – 6 символов | |
AReqDetails.browserTZ | + | Разница во времени между временем по UTC и местным временем браузера пользователя. Максимальное значение – 5 символов | |
AReqDetails.browserUserAgent | + | Содержимое HTTP-заголовка User-Agent. Максимальное значение – 2048 символов | |
AReqDetails.browserJavaEnabled | + | Признак возможности выполнения JavaScript в браузере держателя карты. Возможные значения: true false | |
AReqDetails.threeRIInd | + | Тип запроса, который выполняет ТСП без участия держателя карты (рекуррентные платежи). Возможные значения: 01 (периодический платеж/перевод); 02 (частичная оплата); 03 (добавление карты); 04 (сохранение информации о карте); 05 (идентификация учетной записи); 80-99 (значения зарезервированные для использования DS) | |
AReqDetails.notificationUrl | + | URL-адрес сервис провайдера, на который возвращается POST-сообщение CRes от ACS, после выполнения проверки владельца карты при challenge-flow. | |
AReqDetails.deviceChannel | + | Тип устройства, с которого инициирована транзакция. Возможные значения: 01 - мобильное приложение ТСП (App-based); 02 - браузер пользователя(Browser); 03 - интернет-магазин (3DS Requestor) На данный момент доступно только значение: 02 - браузер пользователя(Browser). | |
CReqDetails.WindowWidth | + | Ширина окна браузера (в пикселях), в котором отображаются страницы сайта ТСП | |
CReqDetails.WindowHeight | + | Высота окна браузера (в пикселях), в котором отображаются страницы сайта ТСП |
Для поддержания возможности выполнения проверки antifraud в add_params
необходимо дополнительно передать следующие параметры:
Параметр | Тип | Обязательный | Значение |
---|---|---|---|
BrowserIP | String | + | IP-адрес браузера. Возможные форматы значения: IPv4-адрес указан в виде четырех групп чисел в десятичной системе счисления, разделенных символом «.». Например: 100.12.123.255. IPv6-адрес указан в виде восьми групп чисел в шестнадцатеричной системе счисления, разделенных символом «:». Например: 2011: 0db8: 85a3: 0101: 0101: 8a2e: 0370: 7334 |
UserAccountID | String | + | Идентификатор учетной записи браузера пользователя, выполняющего транзакцию. |
Fingerprint | String | + | Fingerprint устройства, рассчитанный платформой. |
Описание дополнительных параметров запроса add_params
находится в следующем разделе.
Ответ:
Параметр | Тип | Описание | Значение |
---|---|---|---|
status | String | Статус платежа | Справочник. Статусы платежа |
code | Integer | Код ответа | Справочник. Коды ответов |
order_id | String | Уникальный номер заказа в системе торговца | |
amount | Float | Сумма платежа | |
fee | Float | Комиссия | |
currency | String | Валюта платежа | |
token | String | Токен для последующих оплат. Токен вернется в случае, если платеж успешен | |
- При необходимости выполнить авторизацию по протоколу 3DS1, вернутся параметры: | |||
d3_acs_url | String | URL acs сервера на который необходимо отправить пользователя для верификации | |
d3_md | String | Уникальный идентификатор который необходимо передать на ACS сервер | |
d3_pareq | String | Запрос который необходимо передать на ACS сервер | |
- При необходимости выполнить авторизацию по протоколу 3DS2, вернутся параметры: | |||
d3_acs_url | String | URL acs сервера на который необходимо отправить пользователя для верификации | |
d3_creq | String | Запрос который необходимо передать на ACS2 сервер (если используется протокол 3DS2) | |
transaction_key | String | Ключ транзакции, который необходимо использовать для подтверждения платежа | |
transaction_id | String | Идентификатор транзакции | |
rrn | String | Уникальный номер банковской транзакции | |
signature | String | Подпись операции |
Если в ответе code пришло значение 2001 необходимо провести проверку 3DS.
Для проверки 3ds необходимо методом POST отправить форму с параметрами d3_md, d3_pareq, term_url на d3_acs_url
.
term_url - url на который вернется результат проверки 3DS.
<form name="MPIform" action='${d3_acs_url}' method="POST">
<input type="hidden" name="PaReq" value='${d3_pareq}'>
<input type="hidden" name="MD" value='${d3_md}'>
<input type="hidden" name="TermUrl" value='${term_url}'>
</form>
Если в ответе code пришло значение 2002 необходимо провести проверку по протоколу 3DS2.
Для проверки 3ds необходимо методом POST отправить форму с параметром d3_creq на d3_acs_url
.
<form name="MPIform" action='${d3_acs_url}' method="POST">
<input type="hidden" name="creq" value='${d3_сreq}'>
</form>
Для завершения процесса оплаты необходимо выполнить "Подтверждение 3DS верификации".
Подтверждение 3DS верификации
Для завершения оплаты на платежной странице мерчанта после выполнения 3DS необходимо отправить POST запрос со следующими данными
Production url: https://****.procard-ltd.com/api/
Параметр | Тип | Описание | Значение |
---|---|---|---|
operation | String | Тип операции | Complete3DS |
transaction_key | String | Ключ транзакции, полученный ранее в ответ на запрос оплаты | |
merchant_id | String | Идентификатор мерчанта | |
- В случае, если производилась авторизация по протоколу 3DS1, передать параметры: | |||
d3ds_md | String | Идентификатор, полученный после редиректа с сервера ACS | |
d3ds_pares | String | Сообщение, полученное после редиректа с сервера ACS | |
- В случае, если производилась авторизация по протоколу 3DS2, передать параметры: | |||
d3ds_cres | String | Сообщение, полученное после редиректа с сервера ACS | |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, transaction_key, d3ds_md, d3ds_pares разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Если передается d3ds_cres , следует в качестве d3ds_md, d3ds_pares в подписи добавить пустые строчки. | |||
Порядок параметров при конкатенации важен! |
Ответ:
Параметр | Тип | Описание | Значение |
---|---|---|---|
status | String | Статус платежа | Справочник. Статусы платежа |
code | Integer | Код ответа | Справочник. Коды ответов |
order_id | String | Уникальный номер заказа в системе торговца | |
amount | Float | Сумма платежа | |
fee | Float | Комиссия | |
currency | String | Валюта платежа | |
card_pan | String | Маскированный номер карты | |
cardType | String | Тип карты | Visa MasterCard |
transaction_id | String | Идентификатор транзакции | |
rrn | String | Уникальный номер банковской транзакции |
Получение токена для Masterpass
Production url: https://****.procard-ltd.com/api/mptoken
Для проведения платежа с Masterpass необходимо отослать POST-запрос со следующими данными:
Параметр | Тип | Описание |
---|---|---|
msisdn | String | Номер телефона для входа в кошелек Masterpass в формате 380XXXXXXXXX |
client_id | String | Идентификатор клиента в системе MasterPass |
В ответ приходит объект в формате JSON со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
res | Integer | Результат запроса (0 - успех) |
msg | String | Сообщение об ошибке |
token | String | Токен для передачи в mfs библиотеку |
reference_no | String | Уникальный номер запроса |
Проведение платежа через Masterpass
Production url: https://****.procard-ltd.com/api
Для получения гостевого токена необходимо отправить POST запрос со следующими данными.
Параметр | Тип | Описание | Значение |
---|---|---|---|
operation | String | Тип операции | PurchaseMasterpass |
merchant_id | String | Идентификатор мерчанта | |
amount | Float | Сумма платежа в формате 1.00 | |
order_id | String | ||
currency_iso | String | Валюта | UAH |
description | String | Описание платежа | |
approve_url | String | URL для переадресации после успешного платежа (в случае подтверждения 3DS на странице ProcardPay) | |
decline_url | String | URL для переадресации после не успешного платежа (в случае подтверждения 3DS на странице ProcardPay) | |
cancel_url | String | URL для переадресации после отмены платежа (в случае подтверждения 3DS на странице ProcardPay) | |
callback_url | String | URL на который будет отправлен callback о статусе платежа | |
add_params[wallet] | String | Признак кошелька | masterpass |
add_params[msisdn] | String | Номер телефона для входа в кошелек Masterpass в формате 380XXXXXXXXX | |
add_params[token] | String | Токен полученный с сервера MasterPass | |
add_params[card_name] | String | Alias карты полученный с сервера MasterPass | |
add_params[client_id] | String | Идентификатор мерчанта в системе MasterPass | |
add_params[ret_ref_no] | String | Уникальный номер транзакции полученный с сервера MasterPass | |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! |
В ответ приходит объект в формате JSON со следующими параметрами:
Если транзакция требует подтверждения 3DS:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код ответа |
status | String | Статус транзакции, если необходима проверка 3DS , в статусе , будет значение 3ds |
d3AcsUrl | String | url для перенаправления клиента, для проверки 3ds |
d3Md | String | Криптограмма для передачи на хост 3DS |
d3Pareq | String | Запрос для передачи на хост 3DS |
transaction_key | String | Ключ транзакции для подтверждения 3DS |
TermUrl | String | Url для переадресации после вводе кода подтверждения на странице 3DS |
По умолчанию url на страницу ProcardPay, для проверки 3DS можно указать свой URL, тогда после прохождения 3DS необходимо вызвать метод "Подтверждение 3DS верификации" |
Для завершения процесса оплаты необходимо выполнить "Подтверждение 3DS верификации".
Оплата на платежной странице процессинга с расщеплением платежа
Для оплаты на платежной странице процессинга необходимо выполнить редирект на страницу процессингового центра, с POST данными.
Production url: https://****.procard-ltd.com/api/
POST параметры:
Параметр | Тип | Описание | Значение |
---|---|---|---|
operation | String | Тип операции | Purchase |
merchant_id | String | ID мерчанта, выдается процесcингом | |
amount | Float | Сумма операции. Пример: 500.00 | |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! | |||
order_id | String | Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку. | |
currency_iso | String | Валюта платежа | UAH |
description | String | Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах | |
add_params | Array | Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в callback вызове | |
split | String | Признак расщепления платежа | 0 - не расщеплять 1 - расщеплять |
split_rules | Array | Массив с правилами расщепления который содержит в себе идентификаторы субмерчанта и суммы. | |
Сумма расщеплений должна совпадать с суммой платежа. | |||
Пример: | |||
split_rules[0][sub_merchant_id]=test1&split_rules[0][amount]=100.00&split_rules[1][sub_merchant_id]=test2&split_rules[1][amount]=50.00&.......&split_rules[n][sub_merchant_id]=testn&split_rules[n][amount]=10.00 | |||
approve_url | String | URL для переадресации в случае, если платеж успешен | |
decline_url | String | URL для переадресации в случае, если платеж не успешен | |
cancel_url | String | URL для переадресации в случае, если пользователь отказался совершить оплату | |
callback_url | String | URL на который придет информация о результате выполнения платежа |
Получение данных о диапазоне карт
Для получения данных о диапазоне карт необходимо отправить POST запрос на url https://****.procard-ltd.com/api/bas со следующими параметрами:
Параметр | Тип | Описание | Значение |
---|---|---|---|
merchant_id | String | Идентификатор мерчанта | |
range | String | Первые несколько цифр номер карты, для которой осуществляется поиск диапазона. Поиск осуществляется по первым 9и цифрам номера карты, если передано меньше 9-и цифр то номер будет дополнен нулями, если передано больше то поиск будет осуществляется по первым 9-и | |
signature | String | В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе HMAC_SHA512 контрольная подпись с использованием SecretKey торговца. | |
Строка, подлежащая HMAC_SHA512, генерируется путем конкатенации параметров merchant_id, range разделенных “;” (точка с запятой) в кодировке UTF-8. | |||
Порядок параметров при конкатенации важен! |
В ответ возвращается JSON.
Параметры ответа успеха (набор полей зависит от доступного мерчанту пакета):
Параметр | Тип | Описание | Level 1 (Base) | Level 2 (Full) |
---|---|---|---|---|
code | Integer | Код ответа (0 - успех) | X | X |
minRange | Integer | Account Range Minimum | X | X |
maxRange | Integer | Account Range Maximum | X | X |
brandCd | String | Brand Indicator | X | X |
issuerBin | String | Issuer BIN | X | X |
binLength | String | BIN Length | X | X |
sharedBinInd | String | Shared BIN Indicator | X | X |
posdomesticOnlyInd | String | Domestic-Use-Only Flag | X | X |
onlineGamblBlockInd | String | Online Gambling Block | X | X |
binRangePaymentAccountType | String | Token Indicator | X | X |
issuerBillingCurrCd | String | Issuer Billing Currency | X | |
accountCtryAlpha2Code | String | Issuer Country Code | X | |
platformCd | String | Product Platform | X | |
productId | String | Product ID | X | |
productIdName | String | Product Name | X | |
accountFundingSourceCd | String | Account Funding Source | X | |
accountFundingSourceSubtypeCd | String | Account Funding Source Subtype | X | |
accountBusName | String | Issuer Name | X |
Параметры ответа неуспеха:
Параметр | Тип | Описание |
---|---|---|
code | Integer | Код ошибки, см. Справочник. Коды системных ошибок |
message | String | Текстовое сообщение ошибки |
Пример запроса:
{
"merchant_id": "jnmx9smJQmSejKoR3rIgm5Pj7QG",
"range": "473118560",
"signature": "babf4304e88d9a6e000c167cfcdc9e5a"
}
Пример ответа успеха:
{
"minRange": 473118550,
"maxRange": 473118569,
"brandCd": "VISA",
"issuerBin": 473118,
"binLength": 6,
"sharedBinInd": "N",
"posdomesticOnlyInd": "N",
"onlineGamblBlockInd": "Y",
"binRangePaymentAccountType": "P",
"issuerBillingCurrCd": "USD",
"accountCtryAlpha2Code": "UA",
"platformCd": "CN",
"productId": "F",
"productIdName": "Visa Classic",
"accountFundingSourceCd": "D",
"accountFundingSourceSubtypeCd": null,
"accountBusName": "JSC CB PRIVATBANK",
"code": 0
}
Пример ответа неуспеха обработки запроса:
{
"code": -4,
"message": "Неверная подпись"
}
Дополнительные параметры запроса
В запросе также должны быть переданы следующие дополнительные параметры в add_params
:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
SenderName или RecipientName (для P2PCredit) | String | + | ФИО отправителя на кирилице. Пример: Петренко Петро Петрович |
IdentityNumber | String | + | ИНН клиента |