Більшість інформації у поточному репозиторії буде відноситись саме до Monobank open API.
Щодо інших API див. інформацію нижче.
Інформація структурована силами community користувачів Monobank API на основі практичного досвіду використання або зворотнього зв'язку представників Monobank у Telegram чаті community (посилання на чат доступне на сторінці документації до API)
Monobank Open API - API що доступне публічно (без аутентифікації), або клієнтам банку за токеном аутентифікації, або провайдерам послуг.
Link на документацію щодо Monobank Open API:
- загальний https://api.monobank.ua/docs/
- корпоративний API для провайдерів послуг https://api.monobank.ua/docs/corporate.html
Дане API це особиста ініціатива частини із розробників Mono. Підтримується у вільний час і надається як є.
Під "підтримується у вільний час" мається на увазі, що над проектом Open API працюють співробітники monobank, але для нього немає "спринтів", "ПМ", "плану розвитку", "показників" і всього того, що є у інших напрямках. Тобто допрацювання робляться або за власною ініціативою, або за пропозицією ззовні (але з нижчим пріоритетом відносно розвитку інших напрямків).
За багатьма причинами (в тому числі - безпековими) Open API надає можливість використання лише "Read-only" операції. Можливостей формування тих чи інших транзакцій або змінювання даних клієнту немає.
Тільки розробник може надати абсолютно точну та вичерпну інформацію по даному API.
"Production" доступ до API надається ЛИШЕ після підтвердження заявки відправленої через API: https://api.monobank.ua/docs/corporate.html#tag/Avtorizaciya-ta-nalashtuvannya-kompaniyi/paths/~1personal~1auth~1registration/post
Алгоритм підпису запитів до API ("X-Sign" HTTP header): https://gist.github.com/Sominemo/64845669d6326f2f73d356f025656bdb#signing-the-request
У Telegram створено чат для спільноти користувачів Monobank Open API для наступного:
- надання зворотного зв'язку щодо користування API;
- взаємодопомога користувачів щодо питань використання API;
Для збереження балансу корисної інформації у чаті та економії часу інших учасників чату, вважається хорошим тоном:
- не використовувати чат як фріланс біржу;
- не використовувати чат як "кружок програмістів";
- обговорювати теми близькі саме до питань користування Monobank Open API;
- поважати час інших та ознайомлюватись з інформацією наданою тут, у закріплених повідомленнях чату, документації.
Посилання на чат доступне на сторінці документації до API.
Endpoint виписки транзакцій (docs) за одне звернення повертає не більше 500 транзакцій відсортованих з кінця періоду
(тобто від часу to
до from
).
Можлива причина введеного обмеження на кількість результатів та відсутність інструментів пагінації з offset - https://use-the-index-luke.com/sql/partial-results/fetch-next-page
Рекомендації:
- Якщо кількість транзакцій = 500 - необхідно виконати додатковий запит змінивши (зменшивши) час
to
до часу останнього платежу, з відповіді. - Якщо знову кількість транзакцій = 500 - необхідно виконувати запити до того часу поки кількість транзакцій не буде < 500.
- Відповідно якщо кількість транзакцій < 500 - всі платежі за вказаний період було отримано успішно.
Ні. Коли це буде доступно - невідомо.
Маючи OpenAPI specification (https://www.openapis.org/) ви можете використати code generator для вашої мови програмування, відслідковувати зміни у API порівнюючи схему що ви витягали "місяць тому" і поточну, тощо.
Не дивлячись на те, що явного способу скачати OpenAPI specification у документації Monobank не надається - проте технічна можливість дізнатись її - присутня.
Для OpenAPI - це відкрити документацію за допомогою браузеру і виконати у консолі наступний JS код:
const openApiSchema = __redoc_state.spec.data;
const jsonSchema = JSON.stringify(openApiSchema, null, 2);
console.log(jsonSchema);
У результаті - у консолі буде виведено OpenAPI specification JSON string - який ви можете скопіювати собі у файл, у онлайн редактор https://editor.swagger.io, тощо
Для інших API інформація щодо можливості дізнатись OpenAPI specification уточнюється у релевантних розділах нижче
Якщо при роботі з API Ви отримуєте помилку 403 - скоріше за все вас заблокував AWS (що "захищає" API від атак зловмисників).
Нажаль, ні розробники (представники банку), ні community не можуть допомогти з розблокуванням.
Тіло відповіді може виглядати наступним чином:
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<center>
<h1>403 Forbidden</h1>
</center>
</body>
</html>
Monobank має не тільки open API, але й інші:
- Інтернет-еквайринг
- Покупка частинами
- Expirenza by mono (shaketopay)
- mono checkout
Щодо даних сервісів Вам можуть надати консультацію співробітники Monobank, до яких Ви можете звернутись за каналами комунікації що надані на лендінг сторінках сервісів.
Посилання на лендінг сторінку сервісу "Plata by mono": https://monobank.ua/e-comm
Посилання на документацію API: https://api.monobank.ua/docs/acquiring.html
Monobank надає інформацію щодо існуючих інтеграцій (як офіційних, що підтримуються співробітниками Monobank, так і розроблених їх партнерами) - https://www.monobank.ua/e-comm/platforms-and-partners
За посиланням вище можна знайти також інструкції щодо встановлення інтеграцій до відомих платформ.
Аналогічно до способу отримання специфікації для Monobank open API (див. вище FAQ)
Посилання на лендінг сторінку сервісу: https://chast.monobank.ua/vendors
Посилання на документацію API: https://u2-demo-ext.mono.st4g3.com/docs/index.html
На момент написання цього розділу - при відкритті документації у консолі браузеру - Network - був запит на https://u2-demo-ext.mono.st4g3.com/v2/api-docs
, де поверталась OpenAPI specification.
Отримати за домопогою curl
:
curl 'https://u2-demo-ext.mono.st4g3.com/v2/api-docs' -H 'accept: application/json'
Посилання на лендінг сторінку сервісу: https://shaketopay.com.ua/
Посилання на документацію API: https://api.shaketopay.com.ua/
Посилання на лендінг сторінку сервісу "mono checkout": https://checkout.mono.bank
Посилання на документацію API варто шукати на сторінці лендінгу (на момент написання цього тексту - це було посилання на Google Docs).
Є "особлива" окрема документація щодо верифікації callback від банку на предмет "довіреності" - https://docs.google.com/document/d/1t6UZhPn3UHHBmD1BJn22Z9bk5YGzVvUWwa-lnrv6Lj0/view. Допоки посилання на таку частину документації відсутнє у основній документації до сервісу - посилання буде жити тут.