Тестового режиму при роботі з терміналами як такого немає. Деякі банки мають можливість надати термінал налаштований на тестовий процесинговий центр що дозволить проводити тестування. чи доступна така можливість - рекомендовано уточнити у вашого банку напряму.
Незабаром буде доступний емулятор терміналу для перевірки роботи і налаштування інтеграції.
Готово, можна проводити оплати
pkg- завдання доступно в пакетному режимі. Якщо помітки немає - завдання доступно лише при окремому запиті на термінал
Завдання роботи з транзакціями:
1) Оплата ("task": 1) + pkg (чек на продаж по ПРРО);
2) Повернення ("task": 2) + pkg (чек на повернення по ПРРО);
3) Скасування проведеної операції на терміналі ("task": 3) + pkg (чек на повернення по ПРРО);
4) P2P переказ ("task": 4);
5) Універсальний сервіс ("task": 5);
6) Початок проведення операції з очікуванням підтвердження/корекції ("task": 6) + pkg (в рамках даної операції повертається лише номер карти покупця);
7) Завершення проведення операції з очікуванням підтвердження/корекції ("task": 7) + pkg (фіскалізація чеку на продаж або скасування оплати на терміналі);
8) Зчитування дисконтної карти ("task": 8);
9) X-Баланс. Друк підсумків без закриття зміни на терміналі. ("task": 10) + pkg (X-звіт по ПРРО);
10) Загальний звіт. Закриття зміни на терміналі та друк підсумків. ("task": 11) + pkg (Z-звіт по ПРРО);
11) Видача коштів. Оплата товару/послуги + видача готівки. ("task": 14);
12) Оформлення оплати частинами. ("task": 15);
13) Повернення по оплаті частинами. ("task": 16).
14) Отримання проведеної раніше операції по терміналу або отримання останньої операції ("task": 17).
Таблиця доступних завдань("task") відповідно до протоколів роботи з терміналами.
Чи доступна конкретна операція на вашій моделі терміналу можна уточнити у банку.
| Протокол | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PrivatbankJSON | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BPOS1 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| POSAPI | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| SSI JSON | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| А-Банк JSON | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| SmartOne JSON | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| BPOS Light | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| SimPays ККМ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Таблиця доступних завдань("task") при використанні Device Manager на Android терміналі в режимі 3в1.
| Модель терміналу | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 14 | 15 | 16 | 17 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Verifone X990 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Castles Saturn 1000 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| SmartOne Bank/SmartOne Bank Pro | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
Службові методи:
1) Перевірка зв'язку з терміналом (GET /dm/bankping);
2) Отримати список мерчантів (GET /dm/getmerchantlist);
3) Отримати маски мерчантів (GET /dm/getmasklist);
4) Перевірка зв'язку з банком (GET /dm/bankecho);
5) Перевірка статусу поточної операції на терміналі (GET /dm/transaction-status);
6) Запит статусу останньої проведеної операції (статус операції отримується з бази даних операцій в ДМ) (GET /dm/lasttransaction).
Таблиця методів (по нумерації) відповідно до протоколів:
| Протокол | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| PrivatbankJSON | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| BPOS1 | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| POSAPI | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| SSI JSON | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ |
| А-Банк JSON | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
| SmartOne JSON | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
| BPOS Light | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
| SimPays ККМ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
Термінали передбачають роботу в однопоточному режимі, відповідно до цього наполегливо рекомендуємо один фізичний термінал підключати лише в один ДМ. При підключенні одного фізичного терміналу в кілька застосунків на різних пристроях - можливі помилки в роботі при отриманні терміналом конкурентних запитів з різних джерел.
В разі наравлення кількох конкурентних запитів на один термінал в одному Device Manager це все контролюється по схемі:
Пристрій зайнятий, якщо виконається - почнеться виконання наступного.За потреби кілька фізичних терміналів можна підключити в один ДМ в разі необхідності організації серверу для управління всіма терміналами по мережі. Максимальна кількість що перевірялась - 500 працюючих терміналів в одному Device Manager.
transaction_id та transaction_search/dm/lasttransaction.Інформація по транзакціям по терміналам зберігається за останні 90 днів.
Якщо потрібно синхронізувати результат з даними в терміналі напряму для частини протоколів підтримується така операція ("task": 17)
task: 17)Даний функціонал працює для терміналів шо використовують протоколи:
BPOS1PrivatBankJSONSSI JSONSmartOne JSONПояснення щодо обов'язковості ключів у запитах:
✅ - Обов'язково передавати для всіх запитів.
✔ - Обов'язковий тільки для певних запитів або при певних умовах. Умови зазначені у колонці "Зміст".
❌ - Опціональний ключ, можна передавати за необхідності.
Ключі з поміткою DEPRECATED в змісті не рекомендовано використовувати так як функціонал пов'язаний з ними може або працює некореткно, також ці ключі можуть бути вирізані з структури запиту/відповіді в подальшому. Дані ключі наявні виключно для підтримки роботи старих версій інтеграцій.
| Ключ | Тип json даних | Зміст | Обов'язковий |
|---|---|---|---|
| source | string | Назва відправника завдання. При інтеграції рекомендовано використовувати назву POS системи або компанії. Може бути порожнім. | ❌ |
| device | string | Назва терміналу або tap2phone створеного в ДМ для ідентифікації. | ✅ |
| transaction_id | string | UUID (v5). Ідентифікатор транзакції що використовується як мітка для завдання для пошуку при повторному запиті. Якщо передати значення відмінне від UUID формату, воно буде замінено на UUID що згенерував ДМ та повернуто у відповідь. Використовується лише для завдань роботи з терміналами. | ❌ |
| transaction_search | number | Параметр дій з пошуком транзакції. 0 - Пошук транзакції не відбувається, запит одразу йде на термінал. 1 - Пошук транзакції перед відправкою даних на термінал. Якщо знайдено, буде повернуто json у відповідь на запит. Якщо транзакцію не було знайдено в БД буде повернуто відповідь що такої транзакції неіснує і дії пов'язані з цією транзакцією(оплата, повернення, скасування) не будуть відправлені на термінал. 2 - Пошук транзакції перед відправкою даних на термінал. Аналогічно 1, за виключенням того, якщо транзакцію не було знайдено в БД запит буде відправлено на термінал. За замовчуванням = 0 Використовується лише для завдань роботи з терміналами і тільк в парі з transaction_id. |
❌ |
| type | number | Тип завдання. Для завдань роботи з терміналами завжди 3. |
✅ |
| pay | object | Об'єкт із даними для завдань роботи з терміналами. Використовується тільки для запитів на термінал("type": 3) та в пакетному режимі ПРРО. | ✅ |
Структура об'єкта pay (Об'єкт із даними для завдань роботи з терміналами для:
Для завдань роботи з терміналами ("type": 3) та в пакетному режимі ПРРО.
| Ключ | Тип json даних | Зміст | Обов'язковий |
|---|---|---|---|
| task | number | Номер завдання для роботи з терміналами. Номер вказується згідно списку доступних завдань по терміналам. | ✅ |
| cancel_on_disconnect | boolean | Параметр що визначає необхідність виконати скасування проведеної оплати чи повернення по терміналу якщо облікова програма не змогла отримати відповідь. Якщо на момент успішного завершення операції по терміналу DM не зможе повернути http відповідь бо ініціатор запиту - закрив сокет для уникнення розбіжностей буде виконано автоматичне скасування останньої оплати. true - виконувати, false (за замовчуванням) - не виконувати. | ❌ |
| sum | number | Сума операції згідно обраного завдання (task). Обов'язковий лише для операцій що потребують вказання суми (наприклад оплата). 2 знаки після коми. | ✔ |
| sumcash | number | Обов'язковий тільки для операції Оплата товару/послуги + видача готівки ("task": 14). Сума готівки до видачі покупцю. 2 знаки після коми. | ✔ |
| merch | string | Ідентифікатор організації – мерчанта. Використовується для визначення мерчанта (торгівця) по якому буде проведено оплату. У випадку якщо термінал містить кілька мерчантів і значення merch не передано, на терміналі може бути запропоновано вручну обрати зі списку мерчанта на користь якого потрібно провести оплату або буде повернуто помилку (залежить від терміналу). Перелік доступних мерчантів можна отримати через метод /dm/getmerchantlist з терміналу або дізнатись в банку. Для більшості терміналів передавати значення обов'язково. Не вказується для tap2phone. | ✔ |
| submerch | string | Тільки для PrivatBankJSON. Номер субмерчанта наданий Приватбанком. | ❌ |
| refundid | string | Обов'язковий тільки для повернення ("task": 2). Ідентифікатор платежу (RRN код 12 цифр), по якому робиться повернення. Для терміналів Монобанку в дане поле передається код авторизації (6 цифр). |
✔ |
| cancelid | string | Обов'язковий тільки для cкасування проведеної операції на терміналі ("task": 3). Ідентифікатор операції або номер чеку всередині терміналу, який потрібно скасувати. Скасування можливо робити якщо після операції не було знято загальний звіт з терміналу. |
✔ |
| rec_name | string | Обов'язковий тільки для BPOS1 та операції P2P переказ ("task": 4). Ім'я отримувача для проведення переказу. Обов'язково латиницею, інакше буде помилка при проведенні переказу. |
✔ |
| rec_surname | string | Обов'язковий тільки для BPOS1 та операції P2P переказ ("task": 4). Прізвище отримувача для проведення переказу. Обов'язково латиницею, інакше буде помилка при проведенні переказу. |
✔ |
| rec_pan | string | Обов'язковий тільки для BPOS1 та операції P2P переказ ("task": 4). Номер картки отримувача для проведення переказу. |
✔ |
| installment_id | number | Обов'язковий тільки для BPOS1 та операції оформлення оплати частинами ("task": 15). Тип розстрочки. 1 - Розстрочка за рахунок покупця2 - Розстрочка за рахунок торгівця. |
✔ |
| amountOfParts | number | Обов'язковий тільки для оформлення оплати частинами ("task": 15). Кількість частин на яку розділяється платіж. |
✔ |
| agreementNum | string | Обов'язковий тільки для PrivatBankJSON та операції Повернення по оплаті частинами ("task": 16). Номер договору, по якому робиться повернення. Повертає банк у відповідь на успішне оформлення оплати частинами. |
✔ |
| param | string | Обов'язковий тільки для PrivatBankJSON та операції Універсальний сервіс ("task": 5). Кількість платежів в разі оформлення миттєвої розстрочки або оплати частинами. |
✔ |
| srvNum | string | Обов'язковий тільки для PrivatBankJSON та операції Універсальний сервіс ("task": 5). Номер сервісу, номери можна дізнатись в Приватбанку. |
✔ |
| oper_action | number | Обов'язковий тільки для завершення проведення операції з очікуванням підтвердження/корекції ("task": 7). Подальша дія з оплатою0 - скасувати оплату (за замовчуванням якщо не передано) 1 - продовжити оплату (карта повторно не прикладається). |
✔ |
Ключі з поміткою DEPRECATED в змісті не рекомендовано використовувати так як функціонал пов'язаний з ними може або працює некореткно, також ці ключі можуть бути вирізані з структури запиту/відповіді в подальшому. Дані ключі наявні виключно для підтримки роботи старих версій інтеграцій.
| Тег | Тип json даних | Зміст |
|---|---|---|
| transaction_id | string | Ідентифікатор операції. Аналогічне значенню що передано в запиті, за виключенням випадків коли передане в запиті значення не відповідає формату UUID (v5). В такому разі буде повернуто значення згенероване ДМ. |
| transaction_search | number | Дії з пошуком транзакції. Аналогічне значенню що передано в запиті. |
| info | object | Об'єкт із даними отриманими після завершення операції по терміналу. |
| ver | number | DEPRECATED. Версія схеми. Завжди дорівнює 6. (повертається лише для сумісності з попередніми версіями) |
| resp_ver | number | Версія JSON відповіді. Змінюється на +1 з новим релізом застосунку якщо у відповіді повертатимуться нові дані. |
| source | string | Назва відправника завдання. Наразі завжди порожнє. |
| device | string | Назва пристрою, в даному випадку назва терміналу або tap2phone, створеного в ДМ до якого був запит. |
| tag | string | Для завдань роботи з терміналами завжди буде порожнім. |
| type | number | Для завдань роботи з терміналами завжди буде 3. |
| task | number | Номер завдання. Дорівнює тому ж значенню що і в запиті. |
| task_status | number | Значення статусу виконання завдання: 1 - операцію виконано успішно 3 - помилка при оплаті, при цьому значення res завжди буде більше 0. |
| dt | string | Дата та час виконання завдання у форматі рядка: YYYYMMDDHHMMSSTTT |
| res | number | Код результату виконання завдання: 0 = ОК, >0 код помилки |
| res_action | number | Подальші рекомендовані дії для дотримання транзакційної цілісності. Детальніше. |
| errortxt | string | Текстова інформація про помилку в ДМ або помилка отримана від терміналу. Якщо res = 0 буде порожнім |
| aq_errortxt | string | Для завдань роботи з терміналами завжди буде порожнім. |
| warnings | array | Для завдань роботи з терміналами завжди буде порожнім. |
Структура об'єкта info (Об'єкт із даними отриманими після завершення операції по терміналу.)
| Тег | Тип json даних | Зміст |
|---|---|---|
| dt | string | Дата та час виконання запиту терміналом у форматі рядка. Формат дати буде різним залежно від того як її повертає конкретний термінал. |
| termid | string | Код або ідентифікатор банківського термінала. |
| bankid | string | Ідентифікатор торгівця у екваєра (в системі банку), або номер чи ідентифікатор мерчанту. |
| payid | string | Номер/ідентифікатор платіжної операції або код авторизації. |
| cancelid | string | Номер/ідентифікатор для скасування операції. |
| refundid | string | Унікальний ідентифікатор транзакції (RRN код) який в подальшому використовується для повернення. |
| cardmask | string | Замаскований номер платіжного засобу картки. |
| cancelid | string | Ідентифікатор операції або номер чеку всередині терміналу |
| paysys | string | Назва платіжної системи. |
| sum | number | Сума операції. 2 знаки після коми. |
| sumcash | number | Сума видачі готівки. Дорівнює 0 для всіх операцій окрім видачі коштів. Оплата товару/послуги + видача готівки. ("task": 14). 2 знаки після коми. |
| discount | number | Сума знижки з оплати на рівні банку при проведенні операції. 2 знаки після коми. |
| curr | string | Валюта операції. Наразі завжди дорівнює "ГРН" |
| restxt | string | Результат виконання операції терміналом. Повертається лише для частини протоколів роботи з терміналами. |
| sliptxt | string | DEPRECATEDНаразі завжди має пусте значення. |
| isprint | number | DEPRECATEDНаразі завжди = 1. |
| devinfo | string | DEPRECATEDНаразі завжди має пусте значення. |
| deb_amount | number | Загальна сума оплат/продажів за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| deb_num | number | Кількість операцій оплат за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| cred_amount | number | Загальна сума операцій повернення за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| cred_num | number | Кількість операцій повернення за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| canc_amount | number | Загальна сума скасованих операцій за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| canc_num | number | кількість скасованих операцій за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| tx_num | number | Загальна кількість всіх операцій за день. Повертається лише при виконанні операцій X-Баланс (Друк підсумків без закриття зміни на терміналі.) ("task": 10) або Загальний звіт (Закриття зміни на терміналі та друк підсумків.) ("task": 11). Якщо протокол терміналу не підтримує повернення підсумків, а лише друк значення буде 0. |
| receipt | string | Тільки для PrivatBankJSON. Інформація по операції що буде надрукована терміналом. |
| hstFld63Sf89 | string | Тільки для PrivatBankJSON. Дані з хоста(банку). |
| merch | string | Внутрішній омер мерчанту в терміналі. |
| submerch | string | Тільки для PrivatBankJSON. Номер субмерчанта отриманий від Приватбанку. |
| reference | string | Тільки для А-Банк JSON - інакше буде порожнє значення. Порядковий номер операції на терміналі (враховуються всі успішні і неуспішні запити на термінал). |
| purchase_dt | string | Дата та час оплати на терміналі у форматі рядка. Формат: YYYYMMDDhhmmss |
| pan | string | DEPRECATEDНаразі завди порожнє. |
| acquirerid | string | DEPRECATEDНаразі завди порожнє. |
| agreementNum | string | Тільки для PrivatBankJSON та тільки у випадку використання універсального сервісу ("task": 5). Номер договору після завершення оформленням миттєвої розстрочки чи оплати частинами. |
| scenario_data | string | Тільки для BPOS1 та тільки у випадку використання операції через сценарії ("task": 4, "task": 8, "task": 14, "task": 15). XML відповідь з результатом виконання операції від терміналу в форматі рядка. |
| transaction_id | string | Внутрішній ідентифікатор операції. |
| oper_jwt | string | Тільки при використання tap2phone від Приватбанку. JWT токен операції по якому можна виконати повторний запит результату виконаної оплати чи повернення. |
| commission | number | Сума комісії з оплати (до 2-х знаків після коми). Так як термінали її не повертають розраховується автоматично згідно суми оплати і відсотка комісії банку що був вказаний при налаштуванні терміналу. |
"task": 1) {
"source": "TEST",
"device": "7777777",
"type": 3,
"pay": {
"task": 1,
"merch": "ACDCSSI10000000",
"sum": 17.56
}
}
{
"transaction_id": "1dca7339-de6a-4846-958a-ea89e0b2720e",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 11:50:41",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "997546",
"cancelid": "000033",
"refundid": "944409192371",
"cardmask": "438752******7008",
"paysys": "VISA",
"sum": 17.56,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211115041",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "1dca7339-de6a-4846-958a-ea89e0b2720e",
"oper_jwt": "",
"commission": 0.23
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 1,
"dt": "20260211115047966",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 3,
"type": 3,
"task": 1,
"dt": "20260211114545411",
"res": 5067,
"res_action": 1,
"errortxt": "Помилка при з'єднанні за вказаною адресою: 172.28.13.3",
"aq_errortxt": "",
"warnings": []
}
"task": 2) {
"source": "TEST",
"device": "7777777",
"type": 3,
"pay": {
"task": 2,
"merch": "ACDCSSI10000000",
"refundid": "944409192371",
"sum": 17.56
}
}
{
"transaction_id": "21a9fe13-721b-428f-ab18-56f2b5ff079f",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 11:51:20",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "997549",
"cancelid": "000034",
"refundid": "944409192374",
"cardmask": "438752******7008",
"paysys": "VISA",
"sum": 17.56,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211115120",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "21a9fe13-721b-428f-ab18-56f2b5ff079f",
"oper_jwt": "",
"commission": 0.23
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 2,
"dt": "20260211115128321",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"transaction_id": "e1e494b7-ffd1-4c5b-bdcb-2bb82053eae7",
"transaction_search": 0,
"info": {
"dt": "",
"termid": "",
"bankid": "",
"bankname": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "",
"restxt": "",
"sliptxt": "",
"isprint": 0,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "e1e494b7-ffd1-4c5b-bdcb-2bb82053eae7",
"oper_jwt": "",
"commission": 0.23
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 3,
"type": 3,
"task": 2,
"dt": "20260211115152473",
"res": 5000,
"res_action": 1,
"errortxt": "Помилка терміналу: Відсутні обов’язкові поля. Код відмови: E04",
"aq_errortxt": "",
"warnings": []
}
"task": 3) {
"source": "TEST",
"device": "7777777",
"type": 3,
"pay": {
"task": 3,
"merch": "ACDCSSI10000000",
"cancelid": "000037"
}
}
{
"transaction_id": "abc13674-3e90-4962-bd2b-8e6b20beae32",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 11:53:08",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "997564",
"cancelid": "000038",
"refundid": "944409192389",
"cardmask": "438752******7008",
"paysys": "VISA",
"sum": 17.56,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211115308",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "abc13674-3e90-4962-bd2b-8e6b20beae32",
"oper_jwt": "",
"commission": 0.0
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 3,
"dt": "20260211115319426",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"transaction_id": "cd7a824e-9a77-4b60-a907-394e0ec090ca",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 11:53:29",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "",
"cancelid": "000037",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 17.56,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211115329",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "cd7a824e-9a77-4b60-a907-394e0ec090ca",
"oper_jwt": "",
"commission": 0.0
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 3,
"dt": "20260211115336013",
"res": 5000,
"res_action": 1,
"errortxt": "Помилка терміналу: Загальна помилка операціі. Деталі: Операцію не виконано. Код відмови: E21",
"aq_errortxt": "",
"warnings": []
}
"task": 4) {
"type": 3,
"source": "TEST",
"device": "1000102-POS",
"pay": {
"task": 4,
"merch": 3,
"sum": 17,
"rec_name": "Test",
"rec_surname": "Testovich",
"rec_pan": "4441111111111111"
}
}
{
"transaction_id": "1faa877a-8a7b-5037-af58-1c992ae73b85",
"transaction_search": 0,
"info": {
"dt": "250215134340",
"termid": "50977824",
"bankid": "40938929",
"bankname": "Ощадбанк",
"payid": "918639",
"cancelid": "2",
"refundid": "504632367210",
"cardmask": "4441111111111111",
"paysys": "VISA",
"sum": 0,
"sumcash": 0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0,
"deb_num": 0,
"cred_amount": 0,
"cred_num": 0,
"canc_amount": 0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "40938929",
"submerch": "",
"reference": "",
"purchase_dt": "20250215134340",
"pan": "",
"acquirerid": ""
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "1000102-POS",
"tag": "",
"task_status": 1,
"type": 0,
"task": 4,
"dt": "20250215134343531",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 3,
"type": 3,
"task": 4,
"dt": "20260211120421606",
"res": 5029,
"res_action": 0,
"errortxt": "Термінал 7777777 (Monobank(SSI JSON)) не підтримує завдання з типом 4",
"aq_errortxt": "",
"warnings": []
}
"task": 5) Всі деталі по даній операції розміщені окремо на сторінці:
"task": 6) та завершення проведення операції з очікуванням підтвердження/корекції ("task": 7) Всі деталі по даним операціям розміщені окремо на сторінці:
"task": 8) {
"device": "term",
"type": 3,
"pay": {
"task": 8
}
}
{
"transaction_id": "e6dda3d6-05aa-4339-bf60-efc4fdad6224",
"transaction_search": 0,
"info": {
"dt": "000000000000",
"termid": "",
"bankid": "",
"bankname": "Ощадбанк",
"payid": "",
"cancelid": "0",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0,
"sumcash": 0,
"curr": "ГРН",
"restxt": "ОПЕРАЦIЯ УСПІШНА",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0,
"deb_num": 0,
"cred_amount": 0,
"cred_num": 0,
"canc_amount": 0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "<ActionScenarioResponse> <ResultCode>0</ResultCode> <Result>УСПІШНА</Result> <CardPanHash>4B03E93E58A52459DC6762C5BF7D1BBA7A081E65E69E8DD118B5B6417FF900C0</CardPanHash> <Discount>Ваша знижка 20,00%</Discount></ActionScenarioResponse>"
},
"resp_ver": 4,
"source": "",
"device": "term",
"tag": "",
"task_status": 1,
"type": 3,
"task": 8,
"dt": "20250331132427449",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"transaction_id": "02fe4e03-b2d1-490c-b77f-80597b3ff059",
"transaction_search": 0,
"info": {
"dt": "000000000000",
"termid": "",
"bankid": "",
"bankname": "Ощадбанк",
"payid": "",
"cancelid": "0",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0,
"sumcash": 0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0,
"deb_num": 0,
"cred_amount": 0,
"cred_num": 0,
"canc_amount": 0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "<ActionScenarioResponse> <ResultCode>1002</ResultCode> <Result>НЕ УСПІШНА</Result></ActionScenarioResponse>"
},
"resp_ver": 4,
"source": "",
"device": "term",
"tag": "",
"task_status": 3,
"type": 3,
"task": 8,
"dt": "20250331134315866",
"res": 5002,
"res_action": 0,
"errortxt": "Помилка терміналу: EMV Decline",
"aq_errortxt": "",
"warnings": []
}
"task": 10) Для терміналів по протоколу BPOS1 якщо не передати номер мерчанта в запиті або передати 0 - буде одночасно сформовано звіт із сумами по всім мерчантам (торгівцям) у терміналі.
{
"source": "TEST",
"device": "7777777",
"type": 3,
"pay": {
"task": 10,
"merch": "ACDCSSI10000000"
}
}
{
"transaction_id": "369cba67-b4c5-49f3-990d-11b04e197c75",
"transaction_search": 0,
"info": {
"dt": " ",
"termid": "",
"bankid": "",
"bankname": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 87.8,
"deb_num": 5,
"cred_amount": 35.12,
"cred_num": 1,
"canc_amount": 0.0,
"canc_num": 2,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "20260211122155",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "369cba67-b4c5-49f3-990d-11b04e197c75",
"oper_jwt": "",
"commission": 0.0
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 10,
"dt": "20260211122155140",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
"task": 11) Для терміналів по протоколу BPOS1 якщо не передати номер мерчанта в запиті або передати 0 - буде одночасно закрита зміна по всім мерчантам (торгівцям) у терміналі.
{
"source": "TEST",
"device": "7777777",
"type": 3,
"pay": {
"task": 11,
"merch": "ACDCSSI10000000"
}
}
{
"transaction_id": "dd11bd00-993a-4bb9-944b-b35165ad0ba6",
"transaction_search": 0,
"info": {
"dt": " ",
"termid": "",
"bankid": "",
"bankname": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 87.8,
"deb_num": 5,
"cred_amount": 35.12,
"cred_num": 1,
"canc_amount": 0.0,
"canc_num": 2,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "20260211122240",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "dd11bd00-993a-4bb9-944b-b35165ad0ba6",
"oper_jwt": "",
"commission": 0.0
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 11,
"dt": "20260211122240191",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
"task": 14) "task": 14)
- Чек продажу ("task": 1)
Для терміналів по протоколу BPOS1 може проводитись без оплати за товар ("sum": 0), в такому разі в запит передається лише сума коштів до видачі (sumcash).
{
"source": "DM_API",
"device": "7777777",
"type": 3,
"pay": {
"task": 14,
"sum": 200,
"sumcash": 400,
"merch": "ACDCSSI10000000"
}
}
{
"transaction_id": "c534ee3e-9740-4646-a59d-4cc080928282",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 12:24:01",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "997576",
"cancelid": "000039",
"refundid": "944409192401",
"cardmask": "438752******7008",
"paysys": "VISA",
"sum": 600.0,
"discount": 0.0,
"sumcash": 400.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211122401",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "c534ee3e-9740-4646-a59d-4cc080928282",
"oper_jwt": "",
"commission": 2.6
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 14,
"dt": "20260211122419841",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"transaction_id": "c534a9c3-5702-48c5-82fe-dff4ed476b42",
"transaction_search": 0,
"info": {
"dt": "",
"termid": "",
"bankid": "",
"bankname": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "",
"restxt": "",
"sliptxt": "",
"isprint": 0,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "c534a9c3-5702-48c5-82fe-dff4ed476b42",
"oper_jwt": "",
"commission": 0.0
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 3,
"type": 3,
"task": 14,
"dt": "20260211122449540",
"res": 5000,
"res_action": 1,
"errortxt": "Помилка терміналу: Некоректний формат обов’язкових полів. Деталі: Значення [transAmount] має бути позитивним. Код відмови: E09",
"aq_errortxt": "",
"warnings": []
}
"task": 15) Всі деталі по даній операції розміщені окремо на сторінці:
"task": 16) Всі деталі по даній операції розміщені окремо на сторінці:
"task": 17) Отримання останньої операції працює наступним чином:
Отримати конкретну операцію по її номеру або transaction_id:
{
"source": "TEST",
"device": "7777777",
"type": 3,
"pay": {
"task": 17,
"transaction_id": "df646164-8a67-4a48-86bd-46c57a1087d3"
}
}
Отримати останню успішно проведену операцію:
{
"ver": 6,
"source": "DM_API",
"device": "7777777",
"type": 3,
"pay": {
"task": 17
}
}
{
"transaction_id": "0a8c28aa-b4ef-4f62-b7bb-c5dffdd75bc8",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 12:26:43",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "997579",
"cancelid": "000040",
"refundid": "944409192404",
"cardmask": "438752******7008",
"paysys": "VISA",
"sum": 100.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211122643",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "df646164-8a67-4a48-86bd-46c57a1087d3",
"oper_jwt": "",
"commission": 1.3
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 17,
"dt": "20260211122827847",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"transaction_id": "969fc162-2058-4de2-932d-9d6788d89466",
"transaction_search": 0,
"info": {
"dt": "",
"termid": "",
"bankid": "",
"bankname": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "",
"restxt": "",
"sliptxt": "",
"isprint": 0,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "",
"submerch": "",
"reference": "",
"purchase_dt": "",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"transaction_id": "969fc162-2058-4de2-932d-9d6788d89466",
"oper_jwt": "",
"commission": 0.0
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 3,
"type": 3,
"task": 17,
"dt": "20260211122719661",
"res": 5000,
"res_action": 1,
"errortxt": "Помилка терміналу: Загальна помилка операціі. Деталі: Операцію з таким UID не знайдено. Код відмови: E21",
"aq_errortxt": "",
"warnings": []
}
В даному розділі розміщені додаткові методи при роботі з терміналами. Дані методи мають окремий ендпоінт (не через /dm/execute як завдання) і слугують більше для додаткових перевірок чи налаштувань в процесі.
GET /dm/bankping) | Параметр | Зміст | Обов'язковий |
|---|---|---|
| dev_name | Назва терміналу, створеного в ДМ. | ✅ |
curl --location 'http://localhost:3939/dm/bankping?dev_name=terminal'
Повертає аналогічний json як і при успішному виконанні транзакції.
Якщо пінг проведено успішно - "res" = 0
{
"transaction_id": "",
"transaction_search": 0,
"info": {
"dt": "",
"termid": "",
"bankid": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0,
"curr": "",
"restxt": "",
"sliptxt": "",
"isprint": 0,
"devinfo": "Connection succeeded",
"deb_amount": 0,
"deb_num": 0,
"cred_amount": 0,
"cred_num": 0,
"canc_amount": 0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": ""
},
"ver": 6,
"source": "",
"device": "terminal",
"tag": "",
"type": 0,
"task": 0,
"dt": "20250327150226311",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
GET /dm/getmerchantlist)| Параметр | Зміст | Обов'язковий |
|---|---|---|
| dev_name | Назва терміналу, створеного в ДМ. | ✅ |
curl --location 'http://localhost:3939/dm/getmerchantlist?dev_name=terminal'
Повертає аналогічний json як і при успішному виконанні транзакції, але з 2-ма відмінностями.
infomerchListValue| Тег | Тип json даних | Зміст |
|---|---|---|
| merchListValue | string | DEPRECATEDСписок мерчантів та їх кодів в даному терміналі. |
| merchList | array | Масив об'єктів з інформацією про мерчантів в терміналі. Кожен об'єкт в масиві є окремим мерчантом з його найменуванням і кодом. |
Структура об'єктів масиву merchList (Масив об'єктів з інформацією про мерчантів в терміналі.)
| Тег | Тип json даних | Зміст |
|---|---|---|
| num | string | Номер або код мерчанта. Може бути як числовий одноцифровий так і буквенний залежно від терміналу і протоколу. Використовується для виконання запитів на термінал в значенні ключа merch та при налаштуванні пакетного режиму. |
| id | string | Ідентифікатор або назва мерчанта для розуміння що це за мерчант. Для терміналів які не повертають назви для ідентифікації в даному полі буде вказано: "МерчантN" де N порядковий номер мерчанту. |
{
"merchListValue": "MerchantList: { \"ACDCSSI10000000\": \"Name\" }",
"merchList": [
{
"num": "ACDCSSI10000000",
"id": "Name"
}
],
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 0,
"type": 0,
"task": 0,
"dt": "",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
GET /dm/getmasklist)| Параметр | Зміст | Обов'язковий |
|---|---|---|
| dev_name | Назва терміналу, створеного в ДМ. | ✅ |
curl --location 'http://localhost:3939/dm/getmasklist?dev_name=terminal'
Повертає аналогічний json як і при успішному виконанні транзакції, але з 2-ма відмінностями.
infomerchListValue| Тег | Тип json даних | Зміст |
|---|---|---|
| maskListValue | string | Список масок мерчантів та їх кодів в даному терміналі. |
{
"maskListValue": "MaskList\" : {\"1\" : \"S1K803CD\",\"10\" : \"G1K823CD\",\"2\" : \"P1K8C3CD\",\"3\" : \"I1K803CD\",\"4\" : \"I1K803CD\",\"5\" : \"IGK803CD\",\"6\" : \"X1K813CD\",\"7\" : \"IGK803CD\",\"8\" : \"IPK803CD\",\"9\" : \"CALLBANK\"}",
"ver": 6,
"source": "",
"device": "ICT220",
"tag": "",
"type": 0,
"task": 0,
"dt": "",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
GET /dm/bankecho)| Параметр | Зміст | Обов'язковий |
|---|---|---|
| dev_name | Назва терміналу, створеного в ДМ. | ✅ |
curl --location 'http://localhost:3939/dm/bankecho?dev_name=terminal'
Повертає аналогічний json як і при успішному виконанні транзакції, але з порожніми даними в об'єкті info.
{
"transaction_id": "",
"transaction_search": 0,
"info": {
"dt": "",
"termid": "",
"bankid": "",
"payid": "",
"cancelid": "",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 0,
"curr": "",
"restxt": "",
"sliptxt": "",
"isprint": 0,
"devinfo": "",
"deb_amount": 0,
"deb_num": 0,
"cred_amount": 0,
"cred_num": 0,
"canc_amount": 0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": ""
},
"ver": 6,
"source": "",
"device": "desk3200",
"tag": "",
"type": 0,
"task": 0,
"dt": "20230327153214609",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
GET /dm/transaction-status)Можливі статуси (код статусу і повідомлення):
0 'Статус операції наразі недоступний';
1 'Картка прочитана';
2 'Використано картку з чипом';
3 'Зв'язок з банком';
4 'Очікування дій касира';
5 'Друк чеку.';
6 'Необхідно ввести PIN-код';
7 'Картку вилучено з терміналу';
8 'EMV multi aid’s';
9 'Очікую картку';
10 'Опрацювання, зачекайте';
11 'Коригування транзакції';
| Параметр | Зміст | Обов'язковий |
|---|---|---|
| dev_name | Назва терміналу, створеного в ДМ. | ✅ |
curl --location 'http://localhost:3939/dm/transaction-status?dev_name=terminal'
| Тег | Тип json даних | Зміст |
|---|---|---|
| status_code | string | Внутрішній код статусу на терміналі. |
| status_message | string | Повідомлення в якому статусі знаходиться термінал. |
{
"res": 0,
"res_action": 0,
"errortxt": "",
"status_code": "9",
"status_message": "Очікую картку"
}
{
"res": 5069,
"res_action": 1,
"errortxt": "Немає активних транзакцій по терміналу",
"status_code": "",
"status_message": ""
}
/dm/lasttransaction).| Параметр | Зміст | Обов'язковий |
|---|---|---|
| dev_name | Назва терміналу, створеного в ДМ. | ✅ |
| status | Яку операцію повернути. 0 або інше значення, або не передано - остання транзакція по терміналу не залежно від статусу (успішна чи помилка) 1 - остання успішна транзакція |
❌ |
curl --location 'http://localhost:3939/dm/lasttransaction?dev_name=terminal&status=1'
Аналогічна відповіді на оригінальний запит по терміналу на оплату повернення чи іншу операцію.
{
"transaction_id": "35ac41b8-bb68-481a-b2f0-e27835197d1a",
"transaction_search": 0,
"info": {
"dt": "11/02/2026 12:26:43",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "997579",
"cancelid": "000040",
"refundid": "944409192404",
"cardmask": "438752******7008",
"paysys": "VISA",
"sum": 100.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260211122643",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"commission": 0.0,
"transaction_id": "df646164-8a67-4a48-86bd-46c57a1087d3",
"oper_jwt": ""
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 17,
"dt": "20260211122839113",
"res": 0,
"res_action": 0,
"errortxt": "",
"aq_errortxt": "",
"warnings": []
}
{
"transaction_id": "aebe86ba-84b3-4f37-9f75-f9977e5fa8ce",
"transaction_search": 0,
"info": {
"dt": "12/02/2026 11:38:19",
"termid": "ACDCSSI1",
"bankid": "ACDCSSI10000000",
"bankname": "АТ Універсал банк",
"payid": "",
"cancelid": "000040",
"refundid": "",
"cardmask": "",
"paysys": "",
"sum": 10.0,
"discount": 0.0,
"sumcash": 0.0,
"curr": "ГРН",
"restxt": "",
"sliptxt": "",
"isprint": 1,
"devinfo": "",
"deb_amount": 0.0,
"deb_num": 0,
"cred_amount": 0.0,
"cred_num": 0,
"canc_amount": 0.0,
"canc_num": 0,
"tx_num": 0,
"receipt": "",
"hstFld63Sf89": "",
"merch": "ACDCSSI10000000",
"submerch": "",
"reference": "",
"purchase_dt": "20260212113819",
"pan": "",
"acquirerid": "",
"agreementNum": "",
"scenario_data": "",
"commission": 0.0,
"transaction_id": "aebe86ba-84b3-4f37-9f75-f9977e5fa8ce",
"oper_jwt": ""
},
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "7777777",
"tag": "",
"task_status": 1,
"type": 3,
"task": 1,
"dt": "20260212113822564",
"res": 5000,
"res_action": 1,
"errortxt": "Помилка терміналу: Операцію не виконано. Деталі: Операцію відмінено. Код відмови: E12",
"aq_errortxt": "",
"warnings": []
}