Термінал в смартфоні Android

Для інтеграції з Терміналом в смартфоні на Android у вас має бути зареєстрований термінал. Подати заявку на реєстрацію можна на сайті https://monobank.ua/terminal

Встановіть застосунки:

Виклик застосунку “Термінал by mono” та передача параметрів для проведення оплати

Для правильного формування запиту вам знадобиться отримати ряд параметрів

Виклик застосунку через deeplink

Приклад deeplink для оплати:

Приклад deeplink для повернення:

Опис параметрів:

ПолеТипОбов’язковеОпис
idstringтакУнікальний ідентифікатор платежу (до 250 символів), генерується інтегратором.
integratorIdstringтакІдентифікатор інтегратора (генерує mono, надається партнеру).
terminalstringтакid терміналу (MT%).
amountnumberтакСума платежу в копійках (наприклад, 10800 = 108.00 грн).
purposestringтакПризначення платежу. Максимальна довжина – 250 символів.
paymentTypestringніТип операції: purchase (покупка, за замовчуванням) або refund (повернення).
paymentFlowstringніТип оплати: nfc (за замовчуванням).
rrnstringніRRN NFC (обовʼязково для типу операції refund).
callbackSuccessstring (URL)такПосилання для виклику при успішному платежі. Має бути URL-encoded.
callbackFailstring (URL)такПосилання для виклику при неуспішному платежі. Має бути URL-encoded.
deeplinkCallbackstring (URL)ніДіплінк для підняття аплікації інтегратора (URL-encoded).

Рекомендуємо передавати саме universal link у параметрі `deeplinkCallback`. На відміну від schema url (наприклад, `myapp://`), universal link не вимагає додаткових змін у коді застосунку або оновлення в Google Play для коректної роботи. Universal link відкриває застосунок, якщо він встановлений, або відкриває веб-сторінку, якщо застосунок не встановлено.

Приклад: deeplinkCallback: https://yourapp.com/payment-callback

Отримання відповіді

Отримання відповіді про успішну оплату або повернення.

Параметри будуть надіслані у callbackSuccess метод POST який був переданий інтегратором у deeplink:

ПолеТипОбов’язковеОпис
bankstringтакАТ Універсал Банк – константа
terminalstringтакid терміналу (MT%)
paymentTypestringтакpurchase – Продаж
refund – Повернення
amountintegerтакСума (в копійках)
ccystringтакКод валюти - UAH
statusstringтакСтатус платежу success або failed
internalPaymentIdstringтакВнутрішній ID транзакції
externalPaymentIdstringтакЗовнішній ID транзакції згенерований інтегратором
transactionIdstringтакID банківської транзакції
maskedPanstringтакМаска картки платника
cardMaskstringтакMastercard, Visa
approvalCodestringтакКод авторизації
rrnstringтакrrn
dataTimestringтакДата і час транзакції
responseCodestringтакКод відповіді
Якщо успіх - 1
countryCardstringтакКраїна емітент картки

Приклад відповіді:

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",
	"transactionId": "21255300123",
	"maskedPan": "44441111******24",
	"cardMask": "visa",
	"approvalCode": "220486",
	"rrn": "000012345678",
	"responseCode": "1",
	"countryCard": "804"
}
			

Отримання відповіді на неуспішну оплату/повернення.

Параметри будуть надіслані у callbackFail метод POST який був переданий інтегратором у deeplink:

ПолеТипОбов’язковеОпис
errorMessagestringніКод помилки
responseCodestringтакКод помилки платіжної системи
bankstringтакАТ Універсал Банк – константа
terminalstringтакid терміналу (MT%)
paymentTypestringтакpurchase – Продаж
refund – Повернення
maskedPanstringніМаска картки платника
cardMaskstringніMastercard, Visa
approvalCodestringніКод авторизації
rrnstringніrrn
amountintegerніСума
ccystringніКод валюти
dataTimestringніДата і час транзакції
internalPaymentIdstringтакВнутрішній ID транзакції
externalPaymentIdstringтакЗовнішній 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 для безпеки передачі даних. Необхідно звернутися в підтримку для отримання ключа для подальшої розшифровки даних.

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

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