Специфікація по взаємодії торговця
Оплата на платіжній сторінці процесингу
Для оплати на платіжній сторінці необхідно виконати редирект на сторінку, з даними POST.
Production url: https://****.procard-ltd.com/api/
POST параметри:
Параметр | Тип | Обов'язковий | Опис | Значення |
---|---|---|---|---|
operation | String | + | Тип операції | Purchase |
merchant_id | String | + | ID мерчанта | |
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 платіжної сторінки | ||
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 на url 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, на який прийде інформація про результат виконання платежу та сгенерований токен для подальшого рекурентного платежу |
redirect | Integer | 1 / 0 - за замовчуванням 1 , якщо параметр має значення 0 , тоді клієнт не отримуватиме переадресацію, а отримає url платіжної сторінки |
language | String | Мова сторінки оплати За замовчуванням ua - українська, ru - російська, en - англійська |
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" |
auth_type | Integer | 1 - покупка, 2 - попередня авторизація. За замовчуванням - 1 | |
callback_url | String | URL, на який прийде інформація про результат виконання платежу та сгенерований токен для подальшого рекурентного платежу | |
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 | + | Висота вікна браузера (у пікселях), де відображаються сторінки сайту ТСП |
Опис додаткових параметрів запиту add_params
знаходиться у наступному розділі.
У відповідь надходять наступні параметри:
Параметр | Тип | Опис | Значення |
---|---|---|---|
code | Integer | Код результату запиту | 0 - успішний |
message | String/Integer | Повідомлення з результатом запиту | Зверніть увагу, що message може бути як строкою так і числом! |
status | String | Статус виконання операції | APPROVED - успешно DECLINED - операция не успешна |
Приклад запиту:
{
"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"
- означає, що операцію було виконано успішно
Приклад відповіді для 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 | Сума операції, має бути дробовим числом, з двома знаками після коми. Приклад: 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, currency_iso розділених ";" (крапка з комою) в кодуванні UTF-8. | ||
Порядок параметрів під час конкатенації важливий! |
Можливі значення параметра 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": "Неверная подпись"
}
Операція отримання балансу
Для отримання балансу картки необхідно надіслати на url https://****.procard-ltd.com/api/balance POST-запит з наступними параметрами:
Параметр | Тип | Опис |
---|---|---|
merchant_id | String | Ідентифікатор мерчанта |
date | String | Дата та час запиту в довільному форматі |
signature | String | З метою підтвердження валідності даних має бути згенерований і переданий у запиті HMAC_SHA512 контрольний підпис із використанням SecretKey мерчанта. |
Рядок, що підлягає HMAC_SHA512, генерується шляхом конкатенації параметрів merchant_id, date розділених ";" (крапка з комою) в кодуванні UTF-8. | ||
Порядок параметрів під час конкатенації важливий! |
У відповідь повертається JSON.
Параметри відповіді успіху:
Параметр | Тип | Опис |
---|---|---|
mk_deposit | Float | Лiмiт Mastercard |
visa_deposit | Float | Лiмiт 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 | Сума операції, має бути дробовим числом, з двома знаками після коми. Приклад: 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 мерчанта | |
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 | 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 | + | Висота вікна браузера (у пікселях), де відображаються сторінки сайту ТСП |
Для підтримки можливості виконання перевірки 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 | Запит, який необхідно передати на ACS-сервер | |
transaction_key | String | Ключ транзакції, який необхідно використовувати для підтвердження платежу | |
transaction_id | String | Iдентифікатор транзакції | |
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 | Iдентифікатор транзакції | |
rrn | String | Унікальний ідентифікатор банківської транзакції |
Отримання токену для Masterpass
Production url: https://****.procard-ltd.com/api/mptoken
Для отримання гостьового токену необхідно надіслати 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
Для проведення платежу з Masterpass необхідно надіслати 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 мерчанта | |
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 | + | ІНН клієнта |