Покупка частинами mono Україна
Розстрочка (push у застосунок mono). Офіційна документація: https://monobank.ua/api-docs/chast. Комісія шлюзу: за договором з mono (платить магазин).
Доступи
Договір «Покупка частинами» → store_id і секретний ключ. Пісочниця: https://u2-demo-ext.mono.st4g3.com (демо-магазин test_store_with_confirm).
- Змінні середовища
MONOPARTS_STORE_IDMONOPARTS_SECRET_KEYMONOPARTS_PARTS=3,4,6,9,12MONOPARTS_CONFIRM=immediate|on_fulfillment- Вебхук
POST /webhooks/monoparts. Заголовкиstore-id,signature= base64(HMAC-SHA256(тіло, secret)). Та сама формула на кожному запиті Містка до mono.
Що викликає Місток
| Запит | Поля / сенс |
|---|---|
POST /api/order/create | store_order_id, client_phone (+380…, обов’язково), total_sum (грн, 2 знаки), invoice{date, number, source: INTERNET}, available_programs[{available_parts_count, type: payment_installments}], products[{name, count, sum}], result_callback → {order_id} |
POST /api/order/state | state / order_sub_state — WAITING_FOR_STORE_CONFIRM моделюється як hold |
POST /api/order/confirm | підтвердження магазину (тільки після нього гроші йдуть магазину) — одразу або при відправці |
POST /api/order/return | повернення: sum, store_return_id, return_money_to_card=true (часткове дозволено) |
POST /api/order/reject | відхилення непідтвердженого замовлення (скасування) |
POST /api/order/data | total_sum для звірки суми |
Статуси
IN_PROCESS/ADDED → created · WAITING_FOR_STORE_CONFIRM → hold → (confirm) → SUCCESS/ACTIVE → success · FAIL/* → failure, таймаути → expired · SUCCESS/RETURNED → reversed.
Модель Містка: created → processing → (hold →) success | failure | expired | reversed. Замовлення в Shopify отримує оплату лише на success і лише після звірки суми й валюти з нашим записом.
Пісочниця
Тестові телефони: закінчення 1 = підтвердження, 2 = очікування, 3 = відмова по ліміту, 4 = очікування підтвердження магазину.
Обмеження
- платіжної сторінки немає — покупець підтверджує у застосунку mono протягом 15 хв; Місток показує сторінку очікування з опитуванням статусу
- тільки UAH
- телефон покупця обов’язковий
Не підтверджено живим прогоном
Реалізовано за офіційними доками та SDK; перший прогін на тестових ключах обов’язковий.
- перелік під-станів може розширюватися — невідомі мапляться за верхнім станом
- у пісочниці order/data не повертає total_sum (лише стан) — сума платежу фіксується нашим підписаним create