Оплата частинами Monobank (Server - Server)
Цей функціонал буде активовано після вашого запиту в груповому чаті.
Зміст
- 1.1 Зміст
- 1.2 Опис
- 1.3 Чеклист інтеграції
- 1.4 Рекомендації
- 1.5 Best Practices
- 1.6 Вимоги до сайту
- 1.7 API параметри
- 1.8 Приклад запиту
- 1.9 Тестування
- 1.10 Перевірка платежів
- 1.11 Callback
- 2 Синхронний режим
- 3 Асинхронний режим
- 3.1 Помилки запитів
Опис
Цей функціонал дозволить розмістити на вашому боці інтерфейс оплати частинами для клієнтів Monobank.
Використовуючи цей розділ ви зможете реалізувати онлай та офлайн оплату частинами.
Для використання в офлайні вам необхідно інтегрувати це API до вашого ПЗ. Механізм взаємодії в такому випадку буде наступним:
Клієнт в офлайн магазині говорить, що хоче оплатити частинами Monobank.
Менеджер просить назвати номер телефону прив'язаного до Monobank та вводить його разом з кількістю частин в вашому ПЗ, та відправляє запит відповідно до цього API методу.
Клієнту на телефон в додаток Monobank надходить повідомлення з пропозицією про можливість взяття оплати частинами, яке він може прийняти / відхилити, збільшити кількість частин (від наданої мерчантом кількості частин) з додатковою платою з боку клієнта за тарифами Monobank.
Після успішного підтвердження клієнтом в додатку до вас в систему буде відправлено коллбек з даними про платіж по результату якого менеджер може вибити чек та видати товар.
Мінімальна сума - 500 грн.
Максимальна сума - визначається Monobank та відображається в умовах та правилах Monobank.
Після відправки API запиту у платника буде 15 хв на прийняття рішення.
Цей функціонал працює в два етапи. При успішному запиті загальна сума потрапляє в холд, після чого необхідно буде провести підтвердження списання для зарахування коштів на ваш рахунок.
Підтвердження списання можливе декількома методами:
Вручну в нашому особистому кабінеті.
Налаштувати на боці PSP Platon автоматичне підтвердження списання в термін від 1 години до 29 днів, про що необхідно повідомити в груповий чат. В цьому випадку менеджеру мерчанта необхідно вручну перевіряти кінцевий статус оплати в особистому кабінеті PSP Platon. Фінальний статус успішної оплати буде SETTLED CAPTURE SUCCESS.
Налаштувати по API запиту підтвердження списання з холду під вашу бізнес-логіку використовуючи Підтвердження списання з HOLD.
Увага! Підтвердження списання з HOLD та повернення необхідно виконувати в повному обсязі суми кредиту. Часткове списання та часткове повернення заборонено.
Увага! Товар / послугу можна надавати лише після успішного підтвердження списання коштів.
Чеклист інтеграції
Рекомендації
Рекомендуємо клієнту самостійно вводити свій номер телефону в Monobank. Якщо у вас в системі вже є номер телефону клієнта, ми не рекомендуємо підставляти його, так як можлива ситуація коли у клієнта є декілька номерів телефону і той який був записаний у вас може не відповідати з фінансовим номером телефону клієнта у додатку Monobank.
Рекомендуємо відобразити повідомлення, що клієнту надійде push-повідомлення в додаток Monobank для ознайомлення з договором оплати частинами та прийняття рішення щодо погодження з умовами.
Рекомендуємо відобразити повідомлення, що клієнту необхідна активна картка Monobank.
Рекомендуємо відобразити повідомлення, що клієнту необхідно перевірити наявний розмір ліміту оплати частинами на відповідну суму замовлення.
Рекомендуємо відобразити повідомлення, що перше списання коштів з клієнта відбудеться одразу, тобто у клієнта має бути відповідна сума на основному балансі.
Best Practices
Ознайомтесь з PDF файлом з Best Practices як найкраще надати клієнтам інформацію про нову для ним можливість оплати частинами на вашому ресурсі:
Вимоги до сайту
API параметри
HTTP METHOD: POST
API ENDPOINT: https://secure.platononline.com/post/
Параметр | Значення | Опис | Особливості |
---|---|---|---|
|
| Код платіжного метода |
|
| String | API ключ мерчанта | Ключ надається на пошту мерчанта |
| String | ID оплати в системі мерчанта | Max 32 символи |
| Number | Сума оплати | Мінімальна сума оплати частинами Monobank - 500.00 Вірний варіант 1000.00 Невалідні варіанти 1000 |
|
| Валюта | Оплата можлива лише в національній валюті гривні |
| String | Опис | Для кириличних символів необхідно використовувати формат UTF-8 Max 255 символів |
| Number | IP-адреса платника | В форматі "ХХХ.ХХХ.ХХХ.ХХХ" IPv6 на даний момент не підтримується та за наявності буде приводити до помилки. |
| String | Посилання по якому буде відправлено платника після спроби оплати | Max 255 символів |
| String | Пошта платника | Обов'язково валідна пошта. Відсутність пробілів. Max 255 символів |
| Number | Фінансовий номер телефону платника прив'язаний до Monobank | Обов'язковий формат телефону +380XXXXXXXXX |
| String |
| JSON з кількістю обраних частин від 3 до 25 (включно), наприклад |
|
|
|
|
| String | Контрольний підпис | md5(
strtoupper($pass).
strrev($order_id)
) |
|
| Включити асинхронний режим | В асинхронному режимі обов'язкове використання коллбеків. |
| String | Ім'я платника | Max 32 символи без пробілів |
| String | Прізвище платника | Max 32 символи без пробілів |
| String | Адреса платника | Max 256 символи |
| String | Країна платника | Стандарт ISO 3166-1 alpha-2 |
| String | Штат платника | Стандарт ISO 3166-2 |
| String | Місто платника | Max 32 символи |
| String | Поштовий індекс платника | Max 32 символи |
| String | 10 додаткових полів | Max 1024 символи в кожному ext полі |
Приклад запиту
Тестування
Тестування рекомендовано проводити реальним номером телефону, який підключено до Monobank та має відповідний баланс для оплати частинами.
Якщо ви не маєте змоги робити це реальним номером телефону, то можете використати тестове середовище, але зверніть увагу, що його використання сильно відрізняється від реального використання так як не включає в себе використання додатку Monobank яке є обов'язковим при реальній оплаті. Нижче описано варіанти доступні для тестового середовища:
Успішне підтвердження заявки. Для цієї ситуації потрібно передати фейковий номер телефону, що закінчується на 1. У цьому випадку через 5 секунд буде кинуто callback про успішне затвердження заявки.
Заявка, що очікує підтвердження від клієнта. Для цієї ситуації необхідно передати фейковий номер телефону, що закінчується на 2.
Помилка підтвердження заявки через недостатній ліміт у клієнта. Для цієї ситуації потрібно передати фейковий номер телефону, що закінчується на 3. У цьому випадку через 5 секунд буде кинуто callback про відхилення заявки.
Заявка підтверджена клієнтом та очікує на підтвердження від магазину. Для цієї ситуації необхідно передати фейковий номер телефону, що закінчується на 4.
Перевірка платежів
Callback
Синхронний режим
Стандартний режим роботи. Передавати async = N
не потрібно.
Асинхронний режим
Цей режим активується при передачі async = Y
. В цьому режимі є обов'язковим використання коллбеків.
Принципової різниці у використанні синхронного або асинхронного режимів немає. Вам необхідно вибрати в залежності від найбільш зручного варіанту реалізації саме під ваш проект.
Помилки запитів
Якщо в запиті буде вказано не фінансовий номер телефону клієнта (тобто той який не підв'язаний в Monobank) - буде помилка "decline_reason":"Phone not found in MONO"