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

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

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

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

  • terminal - ви зможете його отримати після реєстрації терміналу
  • integratorId - необхідно звернутися до нас в підтримки, щоб ми вам його надали

Виклик застосунку через 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).

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

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

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

ПолеТипОбов’язковеОпис
bankstringтакАТ Універсал Банк – константа
terminalstringтакid терміналу (MT%)
paymentTypestringтакpurchase – Продаж, refund – Повернення
maskedPanstringтакМаска картки платника
cardMaskstringтакMastercard, Visa
approvalCodestringтакКод авторизації
rrnstringтакrrn
amountstringтакСума
ccystringтакКод валюти
dataTimestringтакДата і час транзакції

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

json
				{
    "bank": "АТ Універсал Банк",
    "terminal": "MT500040",
    "paymentType": "purchase",
    "maskedPan": "5375********1234",
    "cardMask": "Mastercard",
    "approvalCode": "123456",
    "rrn": "123456789012",
    "amount": "10800",
    "ccy": "980",
    "dataTime": "2025-07-18T16:20:06+03:00"
}
			

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

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

ПолеТипОбов’язковеОпис
errorMessagestringніКод помилки
responseCodestringніКод помилки платіжної системи
bankstringніАТ Універсал Банк – константа
terminalstringніid терміналу (MT%)
paymentTypestringніpurchase – Продаж, refund – Повернення
maskedPanstringніМаска картки платника
cardMaskstringніMastercard, Visa
approvalCodestringніКод авторизації
rrnstringніrrn
amountstringніСума
ccystringніКод валюти
dataTimestringніДата і час транзакції

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

json
				{
    "errorMessage": "Declined by issuer",
    "responseCode": "05",
    "bank": "АТ Універсал Банк",
    "terminal": "MT500040",
    "paymentType": "purchase",
    "maskedPan": "5375********1234",
    "cardMask": "mastercard",
    "approvalCode": "654321",
    "rrn": "123456789012",
    "amount": "10800",
    "ccy": "980",
    "dataTime": "2025-07-18T16:25:00+03:00"
}
			

Якщо після створення посилання покупець не проведе оплату, то якщо перевести його на оплату по тому ж самому посиланню, то платіж не пройде. Необхідно сформувати нове посилання

Робота з callback

У deeplink ви передаєте 3 посилання:

  • callbackSuccess
  • callbackFail
  • deeplinkCallback

callbackSuccess - необхідний для отримання інформації про успішну оплату на ваш сервер для подальшого використання

callbackFail - необхідний для отримання інформації про не успішний платіж. Важливо, що текст самої помилки переданий не буде, буде передаватися лише код. Коди помилок описані нижче

deeplinkCallback - необхідний якщо потрібно підіймати екран після створення оплати. Наприклад, це може бути екран вашого застосунку.

Буде накладено підпис на callback для безпеки передачі даних. Необхідно звернутися в підтримку для отримання ключа для подальшої розшифровки даних.

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

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