Реєстрація
Для початку роботи пройдіть реєстрацію https://billline.net/uk/connect-uk/#form-connect
Після реєстрації ви отримаєте доступ до особистого кабінету користувача.
Для створення мерчанта потрібно перейти на вкладку "Мерчанти" (на сайдбарі) і натиснути на "+" (рис. 1).
Рис. 1
Під час реєстрації нового мерчанта заповніть поля:
1. Найменування мерчанта
Вказати ім'я мерчанта
2. Посилання на ресурс
Потрібно ввести URL-адресу свого ресурсу
3. Секретний ключ мерчанта
Натисніть кнопку “Згенерувати”, щоб автоматично генерувати ключ.
Заповнення наступних полів пов'язане з прийманням платежів (Deposit)
4. Передача URL-адрес у формі
Обираючи «YES» — ви підтверджуєте згоду на передачу URL-адрес у форму оплати (куди буде перенаправлено покупця після проведення платежу – success_url після успішного прийняття платежу в обробку, fail_url – у випадку відмови проведення платежу).
Якщо залишити значення "NO" - адреса буде взята зі стандартних налаштувань мерчанта (process_url)
5. URL-адреса обробника платежів на стороні магазину (process_url)
Введіть URL-адресу обробника платежів на стороні магазину, а також вкажіть тип запиту, який потрібно надсилати на вказану адресу
6. URL-адреса перенаправлення у разі успішного проведення операції (success_url)
Введіть URL-адресу перенаправлення платника у разі успішного проведення операції, а також вкажіть тип запиту, який необхідно надсилати на вказану адресу
7. URL-адреса перенаправлення у разі помилки під час проведення операції (fail_url)
Введіть URL-адресу перенаправлення платника у разі помилки під час операції, а також вкажіть тип запиту, який необхідно надсилати на вказану адресу.
Заповнення наступних полів пов'язане із проведенням виплат (Withdrawal)
8. Отримання callback-відповіді з результатами проведення виплати коштів
Обираючи YES — ви підтверджуєте отримання callback-запитів з результатами проведення виплати коштів. В іншому випадку, результат необхідно отримувати самостійно (надсилання запиту статусу платежу).
9. URL-адреса обробника callback-відповідей (withdrawal_url)
У цьому полі потрібно задати URL, на який буде надсилатись відповідь з результатом проведення виплати та метод, яким будуть передаватися дані (GET або POST). Якщо ці дії не виконати, повідомлення про зміну статусу транзакції не буде надіслане.
10. Повернення маски картки одержувача в callback-відповіді
Обираючи "YES" - ви погоджуєтесь на отримання маски картки одержувача в callback (у форматі 123412ХХХХХХ4321). За умови, що callback-відповіді включені
11. Доступ до API методів Payout Send і Payout Status
У цьому налаштуванні можна обмежити IP-адреси, з яких буде дозволено приймати запит на здійснення виплат.
Ми рекомендуємо обмежити доступ – це додатково убезпечить сас.
Для активації мерчанта зверніться до служби підтримки support@billline.net
Також після активації мерчанта служба підтримки повідомить базову URL для запитів до API.
Цифровий підпис
Цифровий підпис в запитах
1. У кожному з методів API вказується, які поля використовуються для формування підпису, а також метод хешування (MD5 або SHA256).
2. Відібравши потрібні поля, потрібно їх відсортувати за алфавітом (за зростанням).
3. Наприкінці додається секретний ключ мерчанта.
4. Конкатенація всіх полів йде через символ «:» без їх назви
5. Отриманий рядок хешується (методом MD5 або SHA256)
і його байтове подання кодується в Base64:
sign = Base64(MD5(Implode(Sort(Params) + SecretKey,
':'), true))
або
sign = Base64(SHA256 (Implode(Sort(Params) +
SecretKey, ':'), true))
Приклад підпису для запиту Payout Send:
Цифровий підпис у Callback
1. Усі поля форми з префіксом «co_» відсортовані за абеткою.
2. Наприкінці додано секретний ключ мерчанта.
3. Конкатенація всіх полів зроблена через символ «:» без їхньої назви.
4. Приклад рядка для підпису даних для запиту Payout
Send:
16:UAH:2019-02-19 19:12:04:2019-02-19
19:12:11:success:1:M1VJDHSI6DYXS:20:34:15.76:SecretKey
5. Отриманий рядок хешується методом MD5 і його
байтове уявлення кодується в Base64:
co_sign = Base64(MD5(Implode(Sort(Params) + SecretKey,
':'), true))
Приклад підпису даних у відповіді на запит Payout Send:
Перевірка цифрового підпису
Перевірка цифрового підпису проводиться під час отримання запиту. Рекомендуємо реалізувати додаткову перевірку на стороні мерчанта.
Перевірка цифрового підпису
Колбеки
Для сповіщення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Коллбек надсилається:
- у випадку фіналізації транзакції поповнення (Deposit) на URL-адресу обробника платежів на стороні магазину (process_url)
- при фіналізації транзакції виплати (Withdrawal) на URL-адресу обробника callback-відповідей (withdrawal_url)
У відповідь на отриманий пакет сервер магазину має відповісти двома англійськими літерами "OK".
У випадку, якщо не вдалося надіслати запит на callback_url, або була отримана відповідь не "OK", будуть здійснюватися повторні спроби доставки колбека, доки не буде отримано відповідь "OK".
Усього робиться 20 спроб доставки колбека. Інтервал між відправками колбека становить:
- з 1 по 10 - 5 хв;
- з 11 по 20 - 60 хв.
Колбек у випадку успішного платежу (iframe та host-2-host)
У випадку успішного проведення платежу на сервер магазину process_url передаються дані про платеж методом POST:
Колбек містить поля:
-
co_inv_id
унікальний номер транзакції;
-
co_inv_crt
дата і час створення транзакції;
-
co_inv_prc
дата та час проведення транзакції;
-
co_inv_st
статус успішного проведення ("Success");
-
co_order_no
номер транзакції в системі мерчанта (переданий мерчантом при проведенні платежу);
-
co_amount
сума транзакції у валюті, роздільник точка ".";
-
co_to_wlt
сума зарахування на рахунок мерчанта (за вирахуванням комісії);
-
co_cur
валюта транзакції;
-
co_merchant_id
унікальний номер мерчанта;
-
co_merchant_uuid
унікальний ідентифікатор мерчанта;
-
co_sign
цифровий підпис ключем мерчанта (докладніше розписано в розділі “Цифровий підпис у Callback”).
-
co_card_number
передача маски картки. Це поле стандантно відсутнє у відповіді. Щоб отримувати його у відповіді, необхідно в налаштуваннях мерчанта встановити значення “YES” у полі “Cardmask in callback”
-
co_error_resolution
опис помилки платежу
У випадку, якщо виконується внутрішня конвертація, у колбеку можуть бути додаткові поля:
-
co_base_amount
базова сума, отримана в запиті;
-
co_base_currency
базова валюта, отримання в запиті платежу;
-
co_rate
курс конвертації;
При конвертації в поле co_cur буде валюта процесингу, а в полях co_amount та co_to_wlt будуть суми у валюті процесингу.
У відповідь на прийнятий пакет сервер мерчанта повинен відповісти двома англійськими літерами «OK».
Приклад:
Колбек при відмові у проведенні платежу (iframe та host-2-host)
У разі відмови у проведенні платежу на сервер магазину «process_url» передаються дані про помилковий платіж методом POST:
-
co_inv_id
унікальний номер транзакції;
-
co_inv_crt
дата і час створення транзакції;
-
co_inv_prc
дата та час проведення транзакції;
-
co_inv_st
статус проведення платежу ("Fail");
-
co_order_no
номер транзакції у системі мерчанта (переданий мерчантом при проведенні платежу);
-
co_merchant_id
унікальний номер мерчанта;
-
co_merchant_uuid
унікальний ідентифікатор мерчанта;
-
co_error_resolution
опис помилки платежу
-
co_sign
цифровий підпис ключем мерчанта (докладніше розписано в розділі “Цифровий підпис у Callback”).
У відповідь на прийнятий пакет сервер мерчанта повинен відповісти двома англійськими літерами «OK».
Приклад:
Колбек при виплаті
Повідомлення буде надіслано у разі зміни статусу транзакції (наприклад, з «Pending» на «Success»).
Дані надсилаються на URL-адресу обробника callback-відповідей (вказано в налаштуваннях мерчанта) методом GET або POST.
Колбек при виплаті містить поля:
-
co_inv_id
унікальний номер транзакції;
-
co_inv_crt
дата і час створення платежу;
-
co_inv_prc
дата та час проведення платежу;
-
co_inv_st
статус проведення ("Success" або "Fail");
-
co_payout_id
номер платежу в системі мерчанта (номер виплати);
-
co_merchant_uuid
унікальний ідентифікатор мерчанта;
-
co_sign
цифровий підпис ключем мерчанта (докладніше розписано у розділі “Цифровий підпис у Callback”)).
Приклад Callback при виплаті:
Методи API
Список методів API:
-
/payment/form
запит на прийом платежу (iframe)
-
/api/host2host
запит на прийом платежу (host-2-host)
-
/payment/status
запит статусу платежу (прийом)
-
/merchant/api/payout_send
запит на виплату
-
/merchant/api/payout_status
запит статусу платежу (виплата)
-
/payment/balance
запит балансу
-
/api/payment-list
запит списку платежів
Прийом платежів (iframe)
Первинний запит
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
order
номер транзакції у системі мерчанта;
-
amount
сума транзакції у валюті, роздільник крапка".";
-
currency
валюта транзакції, може приймати значення UAH, USD, EUR, KZT, BRL, INR та AZN;
-
item_name
назва товару;
-
first_name
ім'я клієнта. Максимальна довжина – 30 символів (Припустимі тільки латинські літери);
-
last_name
прізвище клієнта (Припустимі тільки латинські літери);
-
user_id
ідентифікатор кліента в системі мерчанта (поле не є обов'язковим до передачі) ;
-
payment_url
url адреса сайту на користь якого проходить платіж;
-
country
країна клієнта в ISO 3166-1 alpha-2 форматі;
-
ip
IP-адреса клієнта;
-
custom
для додаткової інформації про клієнта.
-
email
e-mail платника
-
phone
номер телефону платника
-
address
адреса проживання платника
-
city
місто проживання платника
-
post_code
почтовий код платника
-
region
регіон проживання платника
-
lang
мова (додано 26.07.2021.), якою буде відображатися платіжна форма:
en — англійська
ua — українська
-
cpf
CPF клієнта (Поле є опціональним для метода оплати PIX)
Поля "process_url", "success_url", "fail_url" (куди буде перенаправлено клієнта після проведення платежу) передавати не потрібно. Ці дані беруться автоматично з налаштувань мерчанта в особистому кабінеті.
У деяких випадках у запиті використовується поле "last_4", в якому передаються останні 4 цифри номера картки.
Важливо! Рядки запиту повинні містити виключно латинські літери та цифри.
Приклад запиту:
Перенаправлення покупця після проведення платежу
Увага! Спрямування покупця на ”success_url” або «fail_url» є лише інформаційним і НЕ МОЖЕ підтверджувати успіх чи відмову у прийомі платежу!
Після платежу клієнт перенаправляється на “success_url” або “fail_url”
Відповідь містить поля:
-
order_no
номер транзакції у системі мерчанта (теж саме й у запиті «order»);
-
amount
сума транзакції у валюті, роздільник точка ".";
-
currency_code
валюта транзакції (у якій було виставлено рахунок);
-
item_name
назва товару (якщо передавалося);
-
co_inv_id
унікальний номер транзакції;
-
co_inv_st
статус транзакції в платіжній системі (Success або Canceled).
Приклад відповіді при успішному прийнятті платежу до обробки:
Приклад відповіді у разі відхилення платежу:
Фінальний статус (колбек)
Для повідомлення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Детально розписано у розділі "Колбеки".
Приймання платежів (host-2-host)
Згідно з правилами платіжних систем Mastercard та Visa наявність сертифіката PCI DSS (відповідного рівня) є обов'язковою, оскільки клієнт вводить реквізити картки на сайті мерчанта.
Первинний запит
Запит містить поля:
-
type
тип транзакції (payment);
-
merchant
унікальний ідентифікатор мерчанта;
-
order
номер транзакції у системі мерчанта;
-
amount
сума транзакції у валюті, роздільник крапка ".";
-
currency
валюта транзакції, може приймати значення UAH, USD, EUR, KZT, BRL та AZN;
-
card_num
номер картки;
-
card_exp_month
місяць закінчення терміну дії картки;
-
card_exp_year
рік закінчення терміну дії картки;
-
card_cvv
cvv картки;
-
process_url
URL для надсилання підсумкового статусу транзакції
-
item_name
назва товару (поле не обов'язкове);
-
first_name
ім'я власника картки (Припустимі тільки латинські літери);
-
last_name
прізвище власника картки (Припустимі тільки латинські літери);
-
user_id
ідентифікатор клієнта в системі мерчанта (поле не є обов'язковим до передачі);
-
payment_url
url адреса сайту на користь якого проходить платіж;
-
country
країна клієнта в ISO 3166-1 alpha-2 форматі;
-
email
e-mail платника
-
phone
номер телефону платника
-
address
адреса проживання платника
-
city
місто проживання платника
-
post_code
почтовий код платника
-
region
регіон проживання платника
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "type", "merchant", "order", "amount", "currency", "card_num", "card_exp_month", "card_exp_year", "card_cvv". Хешується шляхом SHA256. (Детальніше розписано в розділі “Цифровий підпис у запитах”)
-
browser
масив, в якому передаються дані про браузер клієнта, а саме:
accept_header
color_depth
ip
language
screen_height
screen_width
time_different
window_width
window_height
Важливо! Рядки запиту повинні містити виключно латинські літери та цифри.
Приклад запиту PHP:
У разі успішного приймання даних (для подальшого проведення платежу) відповідь містить поля:
-
status
статус транзакції (3ds);
-
merchant
унікальний ідентифікатор мерчанта;
-
order
номер транзакції у системі мерчанта (той самий, що й у запиті);
-
uuid
унікальний ідентифікатор транзакції, використовуйте його для пошуку та за потреби зв'язатися з техпідтримкою;
-
co_inv_id
унікальний номер транзакції;
-
d3_acs_url
посилання на сторінку 3DS, куди необхідно перенаправити клієнта;
-
d3_pareq
дані для пересилання;
-
d3_md
дані для пересилання.
Приклад відповіді:
У разі відхилення платежу відповідь містить поля:
-
status
статус транзакції (error);
-
code
код помилки;
-
description
опис помилки.
Приклад відповіді:
Перенаправлення покупця на форму 3DS
За позитивної відповіді мерчанту необхідно переадресувати клієнта на форму 3DS. Для цього використовуйте параметри відповіді при первинному запиті
Підсумковий запит
*Зверніть увагу! Не плутайте d3_pares та d3_pareq:
- d3_pareq ви отримуєте у відповідь при первинному запиті та пересилаєте у форму 3DS;
- d3_pares ви отримуєте від форми 3DS і пересилаєте у підсумковому запиті.
Запит містить поля:
-
type
тип (3ds);
-
merchant
унікальний ідентифікатор мерчанта;
-
uuid
унікальний ідентифікатор транзакції (параметр, який отримуєте у відповіді при первинному запиті);
-
order
номер транзакції у системі мерчанта (так само як і у первинному запиті);
-
d3_pares
отримуєте у відповіді від форми 3DS;
-
d3_md
дані для пересилання (отримуєте відповіді при первинному запиті);
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "type", "merchant", "order", "uuid", "d3_md". Хешується шляхом SHA256. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад:
У разі успішної обробки запиту відповідь містить поля:
-
status
статус платежу (success);
-
merchant
унікальний ідентифікатор мерчанта;
-
uuid
унікальний ідентифікатор транзакції, використовуйте його для пошуку та за потреби зв'язатися з техпідтримкою;
-
order
номер транзакції у системі мерчанта (теж саме що й у запиті);
Приклад відповіді:
У разі помилки платежу відповідь містить поля:
-
status
статус транзакції (error);
-
code
код помилки;
-
description
опис помилки.
Приклад відповіді:
Фінальний статус (колбек)
Для cповіщення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм коллбеків.
Детально розписано у розділі “Коллбеки”:
Приймання платежів PIX (host-2-host)
Первинний запит
Запит містить поля:
-
type
тип транзакції (PIX);
-
merchant
унікальний ідентифікатор мерчанта;
-
order
номер транзакції у системі мерчанта;
-
amount
сума транзакції у валюті, роздільник крапка ".";
-
currency
валюта транзакції, може приймати значення BRL;
-
item_name
назва товару;
-
country
країна клієнта в ISO 3166-1 alpha-2 форматі;
-
custom
для додаткової інформації про кліента;
-
ip
IP-адреса клієнта;
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "type", "merchant", "order", "amount", "currency". Хешується шляхом SHA256. (Детальніше розписано в розділі “Цифровий підпис у запитах”)
Приклад запиту:
У разі успішного приймання даних (для подальшого проведення платежу) відповідь містить поля:
-
status
статус транзакції (pending);
-
merchant
унікальний ідентифікатор мерчанта;
-
order
номер транзакції у системі мерчанта (той самий, що й у запиті);
-
uuid
унікальний ідентифікатор транзакції, використовуйте його для пошуку та за потреби зв'язатися з техпідтримкою;
-
co_inv_id
унікальний номер транзакції;
-
qr_code
строка в якій вказана адреса оплати PIX;
-
img
текстове відображення QR-коду, закодоване base64;
Приклад відповіді:
У разі помилки платежу відповідь містить поля:
-
status
статус транзакції (error);
-
code
код помилки;
-
description
опис помилки;
Приклад відповіді:
Запит статусу платежу (прийом)
Метод передачі даних может бути POST або GET.
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
order
номер транзакції у системі мерчанта;
-
co_inv_id
унікальний номер транзакції (номер передається після обробки платежу на Process URL мерчанта);
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "order", "co_inv_id". Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
У відповідь на запит повертаються дані у форматі JSON:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться в черзі на обробку
Fail – платіж відхилений (статус фінальний)
Refund – за платежем було здійснено повернення (статус фінальний)
Error – помилка прийнятих даних (підпис у відповіді порожній «sign» = «»)
-
order
номер транзакції у системі мерчанта;
-
description
опис статусу;
-
card_number
маска картки (у форматі NNNNNN******NNNN, де N – цифра);
-
error_resolution
опис помилки платежу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Error:
Виплати на картку
Для коректного налаштування проведення виплат зайдіть до “Особистого кабінету” – “Редагування мерчанта”.
Детальний опис цих налаштувань міститься в розділі “Реєстрація” (пункти 8-11)
Запит на виплату
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
method
метод виплати, ціле число:
1 - Visa/Mastercard UAH
8 - Mastercard USD - для цього методу необхідно передавати обов'язкові поля: "exp_date": "mm/yy", "full_name": "CARD HOLDER"
9 - Mastercard EUR
11 - Visa/Mastercard AZN
12 - Visa/Mastercard KZT
16 - Visa/Mastercard UAH (Інший канал)
17 - Visa/Mastercard AZN - для цього методу необхідно передавати обов'язкове поле: "exp_date": "mm/yy"
22 - Visa EUR (Інший канал) - для цього методу необхідно передавати обов'язкове поле: "full_name": "CARD HOLDER"
23 - MasterCard EUR (Інший канал) - для цього методу необхідно передавати обов'язкове поле: "full_name": "CARD HOLDER"
24 - Mobile KZT - для цього методу потрібно передавати поле: "account":"номер телефону без знаку +"
-
payout_id
номер вихідного платежу в системі мерчанта;
-
account
номер платіжної картки (Visa або Mastercard);
-
amount
сума транзакції у валюті, роздільник точка ".";
-
currency
валюта транзакції, має відповідати полю «method»:
«UAH» для методу 1
«USD» для методу 8
«EUR» для методу 9
«AZN» для методу 11
«KZT» для методу 12
«UAH» для методу 16 (Інший канал)
«AZN» для методу 17
«EUR» для методу 22 (Інший канал)
«EUR» для методу 23 (Інший канал)
«KZT» для методу 24 (Мобільна комерція)
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "method", "payout_id", "account", "amount", "currency". Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
Відповідь містить поля:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться у черзі на обробку. Статус Pending вимагає додаткового запиту (докладно розписано у розділі “Запит статусу платежу”).
Blocked – платіж відхилено (статус фінальний)
Error – помилка прийнятих даних. Відповідь містить підпис порожнім ключем (статус не фінальний і є підставою для з'ясування причин виникнення даного статусу)
-
code
код статусу транзакції;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
description
опис статусу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Pending:
Приклад відповіді – статус Error:
Фінальний статус (колбек)
Для повідомлення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Детально розписано у розділі "Коллбеки"
Запит виплати на банківські рахунки (SEPA)
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
method
метод виплати, ціле число:
15 — Payout Iban EUR;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
account
номер банківського рахунку;
-
full_name
ім'я, прізвище клієнта. Максимальна довжина – 30 символів;
-
amount
сума транзакції у валюті, роздільник точка ".";
-
currency
валюта транзакції "EUR":
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "method", "payout_id", "account", "amount", "currency". Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
Відповідь містить поля:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться у черзі на обробку. Статус Pending вимагає додаткового запиту (докладно розписано у розділі “Запит статусу платежу”).
Blocked – платіж відхилений (статус фінальний)
Error – помилка прийнятих даних. Відповідь містить підпис порожнім ключем (статус не фінальний і є підставою для з'ясування причин виникнення даного статусу)
-
code
код статусу транзакції;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
description
опис статусу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Pending:
Приклад відповіді – статус Error:
Фінальний статус (колбек)
Для повідомлення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Детально розписано у розділі "Колбеки"
Запит виплати на банківські рахунки (PIX)
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
method
метод виплати, ціле число:
21 — Payout PIX BRL;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
account
ідентифікаційний номер платника податків;
-
pix_key
ключ PIX користувача;
-
amount
сума транзакції у валюті, роздільник точка ".";
-
currency
валюта транзакції "BRL":
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "method", "payout_id", "account", "amount", "currency". Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
Відповідь містить поля:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться у черзі на обробку. Статус Pending вимагає додаткового запиту (докладно розписано у розділі “Запит статусу платежу”).
Blocked – платіж відхилений (статус фінальний)
Error – помилка прийнятих даних. Відповідь містить підпис порожнім ключем (статус не фінальний і є підставою для з'ясування причин виникнення даного статусу)
-
code
код статусу транзакції;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
description
опис статусу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Pending:
Приклад відповіді – статус Error:
Фінальний статус (колбек)
Для повідомлення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Детально розписано у розділі "Колбеки"
Запит виплати на банківські рахунки (UPI)
Первинний запит:
-
merchant
унікальний ідентифікатор мерчанта;
-
method
метод виплати, ціле число:
26 — Payout UPI INR;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
account
ідентифікаційний номер платника податків;
-
full_name
ім'я, прізвище клієнта. Максимальна довжина – 30 символів;
-
customs_phone
номер телефону платника, +91XXXXXXXXXX;
-
customs_email
e-mail платника;
-
customs_ifsc
IFSC (Код фінансової системи Індії);
-
customs_ip
IP-адреса клієнта;
-
amount
сума транзакції у валюті, роздільник точка ".";
-
currency
валюта транзакції “INR”;
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "method", "payout_id", "account", "amount", "currency", “customs_phone”, “customs_email”, “customs_ifsc”, “customs_ip”. Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
Відповідь містить поля:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться у черзі на обробку. Статус Pending вимагає додаткового запиту (докладно розписано у розділі “Запит статусу платежу”).
Blocked – платіж відхилений (статус фінальний)
Error – помилка прийнятих даних. Відповідь містить підпис порожнім ключем (статус не фінальний і є підставою для з'ясування причин виникнення даного статусу)
-
code
код статусу транзакції;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
description
опис статусу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Pending:
Приклад відповіді – статус Error:
Фінальний статус (колбек)
Для повідомлення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Детально розписано у розділі "Колбеки"
Запит на виплату на банківські рахунки (IBAN)
Первинний запит:
-
merchant
унікальний ідентифікатор мерчанта;
-
method
метод виплати, ціле число:
34 — Payout IBAN UAH;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
account
IBAN
-
full_name
ім'я, прізвище клієнта. Максимальна довжина – 30 символів;
-
customs_card
номер платіжної карти клієнта;
-
customs_inn
ідентифікаційний код клієнта;
-
amount
сума транзакції у валюті, роздільник точка ".";
-
currency
валюта транзакції “UAH”;
-
sign
цифровий підпис ключем мерчанта. Використовуються всі поля. Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
Відповідь містить поля:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться у черзі на обробку. Статус Pending вимагає додаткового запиту (докладно розписано у розділі “Запит статусу платежу”).
Blocked – платіж відхилений (статус фінальний)
Error – помилка прийнятих даних. Відповідь містить підпис порожнім ключем (статус не фінальний і є підставою для з'ясування причин виникнення даного статусу)
-
code
код статусу транзакції;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
description
опис статусу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Pending:
Приклад відповіді – статус Error:
Фінальний статус (колбек)
Для повідомлення мерчанта про те, що транзакція набула фінального статусу (наприклад, із “Pending” на “Success”), використовується механізм колбеків.
Детально розписано у розділі "Колбеки"
Запит статусу платежу (виплата)
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
payout_id
номер вихідного платежу у системі мерчанта;
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant" та "payout_id". Хешується шляхом MD5. (Детально розписано у розділі “Цифровий підпис у запитах”).
Приклад запиту:
У відповідь на запит повертаються дані у форматі JSON:
-
status
статус транзакції:
Success – платіж проведено успішно (статус фінальний)
Pending – платіж новий або знаходиться в черзі на обробку
Blocked – платіж відхилений (статус фінальний)
Error – помилка прийнятих даних (підпис у відповіді порожній «sign» = «»)
-
payout_id
номер вихідного платежу у системі мерчанта;
-
code
код статусу платежу;
-
description
опис статусу;
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Error:
Приклад відповіді – статус Blocked:
Запит балансу
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
currency
запитувана валюта (UAH, USD, EUR, KZT, BRL, INR або AZN);
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "currency". Хешується методом MD5 (детально розписано у розділі "Цифровий підпис у запитах")
Приклад запиту:
Відповідь містить поля:
-
status
статус запиту:
Success – запит успішний
Error – помилка прийнятих даних (якщо мерчанта не знайдено, підпис у відповіді не передається)
-
currency
запитувана валюта (UAH, USD, EUR, KZT, BRL, INR або AZN);
-
balance
доступна сума у валюті з двома знаками після коми, роздільник крапка (наприклад - 212.07);
-
description
опис ("Wallet balance");
-
sign
цифровий підпис ключем мерчанта.
Приклад відповіді – статус Success:
Приклад відповіді – статус Error:
Запит списку платежів
Методом передачі даних може бути POST або GET.
Запити списку платежів обробляються не більше одного хвилину.
Максимальна кількість транзакцій відповідає 10 000.
Запит містить поля:
-
merchant
унікальний ідентифікатор мерчанта;
-
currency
валюта, що запитується (UAH, USD, EUR, KZT, BRL, INR або AZN);
-
order
номер транзакції у системі мерчанта, з якої починається вибірка у заданому періоді (якщо передається 0, то повертаються всі транзакції);
-
start_date
дата та час початку періоду у форматі YYYY-MM-DD HH:ii:ss;
-
finish_date
дата та час закінчення періоду у форматі YYYY-MM-DD HH:ii:ss;
-
status
статус платежів, які будуть обрані (all, success, pending, blocked, refund);
-
type
тип транзакції (withdrawal або deposit);
-
sign
цифровий підпис ключем мерчанта. Використовуються поля "merchant", "currency", "order", "start_date", "finish_date", "status", "type". Хешується методом MD5 (детально розписано розділ “Цифровий підпис у запитах”).
Приклад запиту:
Відповідь містить поля:
-
id
унікальний номер транзакції;
-
uid
унікальний ідентифікатор транзакції (той самий, що і "uuid");
-
order_id
номер транзакції у системі мерчанта;
-
subtotal
сума, зарахована:
при «Deposit» – на баланс мерчанту
при «Withdrawal» – на картку
-
fee_percentage
утримана комісія (якщо тип комісії відсоток):
при «Deposit» віднімається з «total»
при «Withdrawal» нараховується на «subtotal»
-
fee_fixed
утримана комісія (якщо тип комісії фіксований):
при «Deposit» віднімається з «total»
при «Withdrawal» нараховується на «subtotal»
-
total
загальна сума транзакції:
при «Deposit» – сума поповнення без стягнення комісії
при «Withdrawal» – сума виплати з нарахованою комісією
-
type
тип транзакції (withdrawal або deposit);
-
status
статус транзакції (Success, Pending, Blocked, Refund);
-
created_at
дата та час створення транзакції;
-
updated_ad
дата та час проведення транзакції.
Приклад відповіді – статус Success:
Приклад відповіді – статус Blocked:
Приклад відповіді – статус Error:
Запит курсів валют
Метод передачі може бути POST або GET
Поля для запиту
-
merchant
ідентифікатор мерчанта
-
currency_from
базова валюта
Приклад:
або у випадку помилки
Запит на обмін валют
Поля для проведення рекурентного платежу
-
merchant
ідентифікатор мерчанта
-
order
номер платежу у системі мерчанта
-
amount
сума обміну
-
currency_from
валюта обміну
-
currency_to
валюта результату
-
currency sign
підпис запиту з використанням методу шифрування sha256
або у випадку помилки
Коди статусу
Код статусу | Статус | Фінальний | Опис |
---|---|---|---|
0 | Success | Так | Виплата успішна |
2 | Error | Ні | Помилка вхідних даних |
3 | Error | Ні | Платіжний метод заблоковано |
4 | Error | Ні | Марчанта заблоковано |
5 | Error | Ні | Помилка валюти виплати |
6 | Error | Ні | Рахунок мерчанта заблоковано |
7 | Error | Ні | Сума перевищує баланс |
8 | Error | Ні | ID транзакції не знайдено (Зверніться до технічної підтримки для уточнення деталей) |
10 | Error | Ні | Повторний запит виплати, потрібен запит на статус транзакції |
40 | Pending | Ні | Транзакція в обробці |
80 | Blocked | Так | Відмовлено у виплаті |
99 | Error | Ні | Помилка підпису у запиті |
100 | Error | Ні | Помилка не документована |