Термінал в смартфоні Android
Для інтеграції з Терміналом в смартфоні на Android у вас має бути зареєстрований термінал. Подати заявку на реєстрацію можна на сайті https://monobank.ua/terminal
Встановіть застосунки:
Виклик застосунку “Термінал by mono” та передача параметрів для проведення оплати
Для правильного формування запиту вам знадобиться отримати ряд параметрів
- terminal - отримується за допомогою методу отримання списку терміналів
- integratorId - необхідно звернутися до нас в підтримки, щоб ми вам його надали
Виклик застосунку через deeplink
Приклад deeplink для оплати:
Приклад deeplink для повернення:
Опис параметрів:
| Поле | Тип | Обов’язкове | Опис |
| id | string | так | Унікальний ідентифікатор платежу (до 250 символів), генерується інтегратором. |
| integratorId | string | так | Ідентифікатор інтегратора (генерує mono, надається партнеру). |
| terminal | string | так | id терміналу (MT%). |
| amount | number | так | Сума платежу в копійках (наприклад, 10800 = 108.00 грн). |
| purpose | string | так | Призначення платежу. Максимальна довжина – 250 символів. |
| paymentType | string | ні | Тип операції: purchase (покупка, за замовчуванням) або refund (повернення). |
| paymentFlow | string | ні | Тип оплати: nfc (за замовчуванням). |
| rrn | string | ні | RRN NFC (обовʼязково для типу операції refund). |
| callbackSuccess | string (URL) | так | Посилання для виклику при успішному платежі. Має бути URL-encoded. |
| callbackFail | string (URL) | так | Посилання для виклику при неуспішному платежі. Має бути URL-encoded. |
| deeplinkCallback | string (URL) | ні | Діплінк для підняття аплікації інтегратора (URL-encoded). |
Рекомендуємо передавати саме universal link у параметрі `deeplinkCallback`. На відміну від schema url (наприклад, `myapp://`), universal link не вимагає додаткових змін у коді застосунку або оновлення в Google Play для коректної роботи. Universal link відкриває застосунок, якщо він встановлений, або відкриває веб-сторінку, якщо застосунок не встановлено.
Приклад: deeplinkCallback: https://yourapp.com/payment-callback
Отримання відповіді
Отримання відповіді про успішну оплату або повернення.
Параметри будуть надіслані у callbackSuccess метод POST який був переданий інтегратором у deeplink:
| Поле | Тип | Обов’язкове | Опис |
| bank | string | так | АТ Універсал Банк – константа |
| terminal | string | так | id терміналу (MT%) |
| paymentType | string | так | purchase – Продаж refund – Повернення |
| amount | integer | так | Сума (в копійках) |
| ccy | string | так | Код валюти - UAH |
| status | string | так | Статус платежу success або failed |
| internalPaymentId | string | так | Внутрішній ID транзакції |
| externalPaymentId | string | так | Зовнішній ID транзакції згенерований інтегратором |
| maskedPan | string | так | Маска картки платника |
| cardMask | string | так | Mastercard, Visa |
| approvalCode | string | так | Код авторизації |
| rrn | string | так | rrn |
| dataTime | string | так | Дата і час транзакції |
| responseCode | string | так | Код відповіді Якщо успіх - 1 |
Приклад відповіді:
json
{
"bank": "АТ Універсал Банк",
"terminal": "MT012345",
"paymentType": "purchase",
"amount": 10000,
"ccy": "UAH",
"status": "success",
"dataTime": "2025-07-22 10:00:00",
"internalPaymentId": "cddd581a-5e7c-41bb-b855-b620987de280",
"externalPaymentId": "92603267-cb5f-4d2c-917e-e4b6c1e41e0c",
"maskedPan": "44441111******24",
"cardMask": "visa",
"approvalCode": "220486",
"rrn": "000012345678",
"responseCode": "1"
}
Отримання відповіді на неуспішну оплату/повернення.
Параметри будуть надіслані у callbackFail метод POST який був переданий інтегратором у deeplink:
| Поле | Тип | Обов’язкове | Опис |
| errorMessage | string | ні | Код помилки |
| responseCode | string | так | Код помилки платіжної системи |
| bank | string | так | АТ Універсал Банк – константа |
| terminal | string | так | id терміналу (MT%) |
| paymentType | string | так | purchase – Продаж refund – Повернення |
| maskedPan | string | ні | Маска картки платника |
| cardMask | string | ні | Mastercard, Visa |
| approvalCode | string | ні | Код авторизації |
| rrn | string | ні | rrn |
| amount | integer | ні | Сума |
| ccy | string | ні | Код валюти |
| dataTime | string | ні | Дата і час транзакції |
| internalPaymentId | string | так | Внутрішній ID транзакції |
| externalPaymentId | string | так | Зовнішній ID транзакції згенерований інтегратором |
Приклад відповіді:
json
{
"bank": "АТ Універсал Банк",
"terminal": "MT012345",
"paymentType": "purchase",
"amount": 9800,
"ccy": "UAH",
"status": "rejected",
"dataTime": "2025-07-22 10:00:00",
"internalPaymentId": "cb8b68de-a923-44fd-b786-131584008b2e",
"externalPaymentId": "fdf73256-5049-4c92-9df5-bb8999163bd7",
"rrn": "",
"errorMessage": "801-55:Невірний пін-код"
}
Якщо після створення посилання покупець не проведе оплату, то якщо перевести його на оплату по тому ж самому посиланню, то платіж не пройде. Необхідно сформувати нове посилання
Робота з callback
У deeplink ви передаєте 3 посилання:
- callbackSuccess
- callbackFail
- deeplinkCallback
callbackSuccess - необхідний для отримання інформації про успішну оплату на ваш сервер для подальшого використання
callbackFail - необхідний для отримання інформації про не успішний платіж. Важливо, що текст самої помилки переданий не буде, буде передаватися лише код. Коди помилок описані нижче
deeplinkCallback - необхідний якщо потрібно підіймати екран після створення оплати. Наприклад, це може бути екран вашого застосунку.
Буде накладено підпис на callback для безпеки передачі даних. Необхідно звернутися в підтримку для отримання ключа для подальшої розшифровки даних.
Флоу по створенню оплати

Флоу по створенню запиту на повернення
