Monobank open API API Reference
API для отримання інформації про виписки та стан особистого рахунку. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання.
Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у Telegram-групі. API недоступне для клієнтів до 16 років, дані за дитячими рахунами доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до корпоративного API, що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API.
Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки.
У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API Endpoint
https://api.monobank.ua/
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: https
Version: 202012
Публічні дані
Загальна інформація що надається без авторизації.
Отримання курсів валют
Отримати базовий перелік курсів валют monobank. Інформація кешується та оновлюється не частіше 1 разу на 5 хвилин.
Інформація про курс валют
Response Example (200 OK)
[
{
"currencyCodeA": 840,
"currencyCodeB": 980,
"date": 1552392228,
"rateSell": 27,
"rateBuy": 27.2,
"rateCross": 27.1
}
]
Клієнтські персональні дані
Інформація, що надається тільки за наявстю token-а доступу, який клієнт може отримати в особистому кабінеті https://api.monobank.ua/
Інформація про клієнта
Отримання інформації про клієнта та переліку його рахунків. Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
Token для особистого доступу до API
Statement list
Response Example (200 OK)
{
"id": "3MSaMMtczs",
"name": "string",
"webHookUrl": "string",
"accounts": [
{
"id": "kKGVoZuHWzqVoZuH",
"balance": 10000000,
"creditLimit": 10000000,
"type": "black",
"currencyCode": 980,
"cashbackType": "UAH"
}
]
}
Встановляння WebHook
Встановлення URL користувача, на який буде сформовано POST запит у форматі {type:"StatementItem", data:{account:"...", statementItem:{#StatementItem}}}
. Якщо сервіс користувача не відповість протягом 5с на команду, сервіс повторить спробу ще через 60 та 600 секунд. Якщо на третью спробу відповідь отримана не буде, функція буде вимкнута.
The user to create.
- webHookUrl: string
Token для особистого доступу до API
Request Example
{
"webHookUrl": "string"
}
ok
Виписка
Отримання виписки за час від {from} до {to} часу в секундах в форматі Unix time Максимальний час за який можливо отримувати виписку 31 доба + 1 година (2682000 секунд) Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
Token для особистого доступу до API
Ідентифікатор рахунку з переліку Statement list або 0 - дефолтний рахунок.
Початок часу виписки.
Наприклад 1546304461
Останній час виписки (якщо відсутній, буде використовуватись поточний час).
Наприклад 1546306461
Statement list
Response Example (200 OK)
[
{
"id": "ZuHWzqkKGVo=",
"time": 1554466347,
"description": "Покупка щастя",
"mcc": 7997,
"hold": false,
"amount": -95000,
"operationAmount": -95000,
"currencyCode": 980,
"commissionRate": 0,
"cashbackAmount": 19000,
"balance": 10050000,
"comment": "За каву",
"receiptId": "XXXX-XXXX-XXXX-XXXX",
"counterEdrpou": "3096889974",
"counterIban": "UA898999980000355639201001404"
}
]
Опис даних
UserInfo: object
Опис клієнта та його рахунків.
- id: string
-
Ідентифікатор клієнта (зівпадає з id для send.monobank.ua)
- name: string
-
Ім'я клієнта
- webHookUrl: string
-
URL для отримання інформації про нову транзакцію
- accounts: object[]
-
Перелік доступних рахунків
-
object - id: string
-
Ідентифікатор рахунку
- balance: number (int64)
-
Баланс рахунку в мінімальних одиницях валюти (копійках, центах)
- creditLimit: number (int64)
-
Кредитний ліміт
- type: string black, white, platinum, iron, fop, yellow
-
Тип рахунку
- currencyCode: number (int32)
-
Код валюти рахунку відповідно ISO 4217
- cashbackType: string None, UAH, Miles
-
Тип кешбеку який нараховується на рахунок
Example
{
"id": "3MSaMMtczs",
"name": "string",
"webHookUrl": "string",
"accounts": [
{
"id": "kKGVoZuHWzqVoZuH",
"balance": 10000000,
"creditLimit": 10000000,
"type": "black",
"currencyCode": 980,
"cashbackType": "UAH"
}
]
}
StatementItems: array
Перелік транзакцій за вказанний час
- id: string
-
Унікальний id транзакції
- time: number (int64)
-
Час транзакції в секундах в форматі Unix time
- description: string
-
Опис транзакцій
- mcc: number (int32)
-
Код типу транзакції (Merchant Category Code), відповідно ISO 18245
- hold: boolean
-
Статус блокування суми (детальніше у wiki)
- amount: number (int64)
-
Сума у валюті рахунку в мінімальних одиницях валюти (копійках, центах)
- operationAmount: number (int64)
-
Сума у валюті транзакції в мінімальних одиницях валюти (копійках, центах)
- currencyCode: number (int32)
-
Код валюти рахунку відповідно ISO 4217
- commissionRate: number (int64)
-
Розмір комісії в мінімальних одиницях валюти (копійках, центах)
- cashbackAmount: number (int64)
-
Розмір кешбеку в мінімальних одиницях валюти (копійках, центах)
- balance: number (int64)
-
Баланс рахунку в мінімальних одиницях валюти (копійках, центах)
- comment: string
-
Коментар до переказу, уведений користувачем. Якщо не вказаний, поле буде відсутнім
- receiptId: string
-
Номер квитанции для check.gov.ua
- counterEdrpou: string
-
ЄДРПОУ контрагента, присутній лише для елементів виписки рахунків ФОП
- counterIban: string
-
IBAN контрагента, присутній лише для елементів виписки рахунків ФОП
Example
[
{
"id": "ZuHWzqkKGVo=",
"time": 1554466347,
"description": "Покупка щастя",
"mcc": 7997,
"hold": false,
"amount": -95000,
"operationAmount": -95000,
"currencyCode": 980,
"commissionRate": 0,
"cashbackAmount": 19000,
"balance": 10050000,
"comment": "За каву",
"receiptId": "XXXX-XXXX-XXXX-XXXX",
"counterEdrpou": "3096889974",
"counterIban": "UA898999980000355639201001404"
}
]
CurrencyInfo: array
Перелік курсів. Кожна валютна пара може мати одне і більше полів з rateSell, rateBuy, rateCross.
- currencyCodeA: number (int32)
-
Код валюти рахунку відповідно ISO 4217
- currencyCodeB: number (int32)
-
Код валюти рахунку відповідно ISO 4217
- date: number (int64)
-
Час курсу в секундах в форматі Unix time
- rateSell: number (float)
- rateBuy: number (float)
- rateCross: number (float)
Example
[
{
"currencyCodeA": 840,
"currencyCodeB": 980,
"date": 1552392228,
"rateSell": 27,
"rateBuy": 27.2,
"rateCross": 27.1
}
]