go-monobank/api/swagger.yaml

512 lines
22 KiB
YAML
Raw Permalink Normal View History

2024-04-10 22:18:44 +03:00
openapi: 3.0.3
info:
2024-05-12 12:36:47 +03:00
title: Monobank open API
2024-04-10 22:18:44 +03:00
description: |-
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання.
Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw).
API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту.
Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API.
Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки.
У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
version: v2303
x-logo:
url: logo.png
altText: logo
servers:
- url: https://api.monobank.ua
tags:
2024-05-12 12:36:47 +03:00
- name: Публічні дані
description: Загальна інформація що надається без авторизації.
- name: Клієнтські персональні дані
description: "Інформація, що надається тільки за наявстю token-а доступу, який к\
2024-04-10 22:18:44 +03:00
лієнт може отримати в особистому кабінеті https://api.monobank.ua/"
paths:
/bank/currency:
get:
2024-05-12 12:36:47 +03:00
tags:
- Публічні дані
summary: Отримання курсів валют
2024-04-10 22:18:44 +03:00
description: Отримати базовий перелік курсів валют monobank. Інформація кешується
та оновлюється не частіше 1 разу на 5 хвилин.
responses:
"200":
2024-05-12 12:36:47 +03:00
description: Інформація про курс валют
2024-04-10 22:18:44 +03:00
content:
application/json:
schema:
$ref: '#/components/schemas/CurrencyInfo'
/personal/client-info:
get:
2024-05-12 12:36:47 +03:00
tags:
- Клієнтські персональні дані
summary: Інформація про клієнта
2024-04-10 22:18:44 +03:00
description: Отримання інформації про клієнта та переліку його рахунків і банок.
Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
parameters:
2024-05-12 12:36:47 +03:00
- name: X-Token
2024-04-10 22:18:44 +03:00
in: header
2024-05-12 12:36:47 +03:00
description: Token для особистого доступу до API
2024-04-10 22:18:44 +03:00
required: true
2024-05-12 12:36:47 +03:00
style: simple
explode: false
2024-04-10 22:18:44 +03:00
schema:
type: string
2024-05-12 12:36:47 +03:00
example: u3AulkpZFI1lIuGsik6vuPsVWqN7GoWs6o_MO2sdf301
2024-04-10 22:18:44 +03:00
responses:
"200":
2024-05-12 12:36:47 +03:00
description: Statement list
2024-04-10 22:18:44 +03:00
content:
application/json:
schema:
$ref: '#/components/schemas/UserInfo'
/personal/webhook:
post:
2024-05-12 12:36:47 +03:00
tags:
- Клієнтські персональні дані
summary: Встановлення WebHook
2024-04-10 22:18:44 +03:00
description: |-
Встановлення URL користувача:
- Для підтвердження коректності наданої адреси, на неї надсилається GET-запит. Сервер має відповісти строго HTTP статус-кодом 200, і ніяким іншим. Якщо валідацію пройдено, на задану адресу починають надсилатися POST запити з подіями.
- Події надсилаються у наступному вигляді: POST запит на задану адресу у форматі `{type:"StatementItem", data:{account:"...", statementItem:{#StatementItem}}}`. Якщо сервіс користувача не відповість протягом 5с на команду, сервіс повторить спробу ще через 60 та 600 секунд. Якщо на третю спробу відповідь отримана не буде, функція буде вимкнута. Відповідь сервера має строго містити HTTP статус-код 200.
parameters:
2024-05-12 12:36:47 +03:00
- name: X-Token
2024-04-10 22:18:44 +03:00
in: header
2024-05-12 12:36:47 +03:00
description: Token для особистого доступу до API
2024-04-10 22:18:44 +03:00
required: true
2024-05-12 12:36:47 +03:00
style: simple
explode: false
2024-04-10 22:18:44 +03:00
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SetWebHook'
required: true
responses:
"200":
description: ok
/personal/statement/{account}/{from}/{to}:
get:
2024-05-12 12:36:47 +03:00
tags:
- Клієнтські персональні дані
summary: Виписка
2024-04-10 22:18:44 +03:00
description: |-
Отримання виписки за час від {from} до {to} часу в секундах в форматі Unix time. Максимальний час, за який можливо отримати виписку — 31 доба + 1 година (2682000 секунд).
Обмеження на використання функції — не частіше ніж 1 раз на 60 секунд.
Повертає 500 транзакцій з кінця, тобто від часу to до from. Якщо кількість транзакцій = 500, потрібно зробити ще один запит, зменшивши час to до часу останнього платежу, з відповіді. Якщо знову кількість транзакцій = 500, то виконуєте запити до того часу, поки кількість транзакцій не буде < 500. Відповідно, якщо кількість транзакцій < 500, то вже отримано всі платежі за вказаний період.
parameters:
2024-05-12 12:36:47 +03:00
- name: X-Token
2024-04-10 22:18:44 +03:00
in: header
2024-05-12 12:36:47 +03:00
description: Token для особистого доступу до API
2024-04-10 22:18:44 +03:00
required: true
style: simple
explode: false
schema:
type: string
2024-05-12 12:36:47 +03:00
- name: account
2024-04-10 22:18:44 +03:00
in: path
2024-05-12 12:36:47 +03:00
description: Ідентифікатор рахунку або банки з переліків Statement list або
0 - дефолтний рахунок.
2024-04-10 22:18:44 +03:00
required: true
2024-05-12 12:36:47 +03:00
style: simple
explode: false
2024-04-10 22:18:44 +03:00
schema:
type: string
2024-05-12 12:36:47 +03:00
- name: from
in: path
description: Початок часу виписки.
required: true
2024-04-10 22:18:44 +03:00
style: simple
explode: false
2024-05-12 12:36:47 +03:00
schema:
type: string
example: "1546304461"
- name: to
2024-04-10 22:18:44 +03:00
in: path
2024-05-12 12:36:47 +03:00
description: "Останній час виписки (якщо відсутній, буде використовуватись\
\ поточний час)."
2024-04-10 22:18:44 +03:00
required: false
2024-05-12 12:36:47 +03:00
style: simple
explode: false
2024-04-10 22:18:44 +03:00
schema:
type: string
2024-05-12 12:36:47 +03:00
example: "1546306461"
2024-04-10 22:18:44 +03:00
responses:
"200":
2024-05-12 12:36:47 +03:00
description: Statement list
2024-04-10 22:18:44 +03:00
content:
application/json:
schema:
$ref: '#/components/schemas/StatementItems'
components:
schemas:
SetWebHook:
2024-05-12 12:36:47 +03:00
type: object
properties:
webHookUrl:
type: string
example: https://example.com/some_random_data_for_security
2024-04-10 22:18:44 +03:00
description: "URL для надсиляння подій по зміні балансу рахунків фізичних ос\
іб, ФОП та банок"
2024-05-12 12:36:47 +03:00
UserInfo:
type: object
2024-04-10 22:18:44 +03:00
properties:
2024-05-12 12:36:47 +03:00
clientId:
type: string
description: Ідентифікатор клієнта (збігається з id для send.monobank.ua)
example: 3MSaMMtczs
name:
type: string
description: Ім'я клієнта
example: Мазепа Іван
2024-04-10 22:18:44 +03:00
webHookUrl:
2024-05-12 12:36:47 +03:00
type: string
description: URL для надсиляння подій по зміні балансу рахунку
2024-04-10 22:18:44 +03:00
example: https://example.com/some_random_data_for_security
2024-05-12 12:36:47 +03:00
permissions:
2024-04-10 22:18:44 +03:00
type: string
2024-05-12 12:36:47 +03:00
description: "Перелік прав, які які надає сервіс (1 літера на 1 permission)."
example: psfj
accounts:
type: array
description: Перелік доступних рахунків
items:
$ref: '#/components/schemas/UserInfo_accounts'
jars:
type: array
description: Перелік банок
items:
$ref: '#/components/schemas/UserInfo_jars'
2024-04-10 22:18:44 +03:00
description: Опис клієнта та його рахунків і банок.
example:
clientId: 3MSaMMtczs
permissions: psfj
webHookUrl: https://example.com/some_random_data_for_security
name: Мазепа Іван
jars:
- sendId: uHWzqVoZuH
goal: 10000000
balance: 1000000
description: На тепловізор
id: kKGVoZuHWzqVoZuH
title: На тепловізор
currencyCode: 980
- sendId: uHWzqVoZuH
goal: 10000000
balance: 1000000
description: На тепловізор
id: kKGVoZuHWzqVoZuH
title: На тепловізор
currencyCode: 980
accounts:
- sendId: uHWzqVoZuH
balance: 10000000
cashbackType: UAH
maskedPan:
- 537541******1234
iban: UA733220010000026201234567890
creditLimit: 10000000
id: kKGVoZuHWzqVoZuH
type: black
currencyCode: 980
- sendId: uHWzqVoZuH
balance: 10000000
cashbackType: UAH
maskedPan:
- 537541******1234
iban: UA733220010000026201234567890
creditLimit: 10000000
id: kKGVoZuHWzqVoZuH
type: black
currencyCode: 980
StatementItems:
2024-05-12 12:36:47 +03:00
type: array
2024-04-10 22:18:44 +03:00
description: Перелік транзакцій за вказанний час
items:
$ref: '#/components/schemas/StatementItems_inner'
2024-05-12 12:36:47 +03:00
x-schema-name: StatementItems
2024-04-10 22:18:44 +03:00
CurrencyInfo:
2024-05-12 12:36:47 +03:00
type: array
2024-04-10 22:18:44 +03:00
description: "Перелік курсів. Кожна валютна пара може мати одне і більше пол\
ів з rateSell, rateBuy, rateCross."
items:
$ref: '#/components/schemas/CurrencyInfo_inner'
2024-05-12 12:36:47 +03:00
x-schema-name: CurrencyInfo
2024-04-10 22:18:44 +03:00
Error:
2024-05-12 12:36:47 +03:00
type: object
2024-04-10 22:18:44 +03:00
properties:
errorDescription:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "Текст помилки для кінцевого користувача, для автоматичного\
\ оброблення потрібно аналізувати HTTP код відповіді (200, 404, 429 та\
\ інші)"
2024-05-12 12:36:47 +03:00
UserInfo_accounts:
2024-04-10 22:18:44 +03:00
type: object
properties:
id:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Ідентифікатор рахунку
example: kKGVoZuHWzqVoZuH
sendId:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "Ідентифікатор для сервісу https://send.monobank.ua/{sendId}"
example: uHWzqVoZuH
balance:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Баланс рахунку в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
2024-05-12 12:36:47 +03:00
example: 10000000
2024-04-10 22:18:44 +03:00
creditLimit:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Кредитний ліміт
format: int64
2024-05-12 12:36:47 +03:00
example: 10000000
2024-04-10 22:18:44 +03:00
type:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Тип рахунку
2024-05-12 12:36:47 +03:00
example: black
2024-04-10 22:18:44 +03:00
enum:
- black
- white
- platinum
- iron
- fop
- yellow
- eAid
currencyCode:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Код валюти рахунку відповідно ISO 4217
format: int32
2024-05-12 12:36:47 +03:00
example: 980
2024-04-10 22:18:44 +03:00
cashbackType:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Тип кешбеку який нараховується на рахунок
2024-05-12 12:36:47 +03:00
example: UAH
2024-04-10 22:18:44 +03:00
enum:
- None
- UAH
- Miles
maskedPan:
2024-05-12 12:36:47 +03:00
type: array
2024-04-10 22:18:44 +03:00
description: Перелік замаскованних номерів карт (більше одного може бути
у преміальних карт)
example:
- 537541******1234
iban:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: IBAN рахунку
example: UA733220010000026201234567890
example:
sendId: uHWzqVoZuH
2024-05-12 12:36:47 +03:00
balance: 10000000
cashbackType: UAH
maskedPan:
- 537541******1234
iban: UA733220010000026201234567890
creditLimit: 10000000
2024-04-10 22:18:44 +03:00
id: kKGVoZuHWzqVoZuH
2024-05-12 12:36:47 +03:00
type: black
2024-04-10 22:18:44 +03:00
currencyCode: 980
2024-05-12 12:36:47 +03:00
UserInfo_jars:
type: object
2024-04-10 22:18:44 +03:00
properties:
id:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Ідентифікатор банки
example: kKGVoZuHWzqVoZuH
sendId:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "Ідентифікатор для сервісу https://send.monobank.ua/{sendId}"
example: uHWzqVoZuH
title:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Назва банки
example: На тепловізор
description:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Опис банки
example: На тепловізор
currencyCode:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Код валюти банки відповідно ISO 4217
format: int32
2024-05-12 12:36:47 +03:00
example: 980
2024-04-10 22:18:44 +03:00
balance:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Баланс банки в мінімальних одиницях валюти (копійках, цент\
ах)"
format: int64
2024-05-12 12:36:47 +03:00
example: 1000000
2024-04-10 22:18:44 +03:00
goal:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Цільова сума для накопичення в банці в мінімальних одиниця\
х валюти (копійках, центах)"
format: int64
2024-05-12 12:36:47 +03:00
example: 10000000
2024-04-10 22:18:44 +03:00
example:
2024-05-12 12:36:47 +03:00
sendId: uHWzqVoZuH
goal: 10000000
balance: 1000000
description: На тепловізор
id: kKGVoZuHWzqVoZuH
title: На тепловізор
2024-04-10 22:18:44 +03:00
currencyCode: 980
2024-05-12 12:36:47 +03:00
StatementItems_inner:
type: object
2024-04-10 22:18:44 +03:00
properties:
id:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Унікальний id транзакції
example: ZuHWzqkKGVo=
time:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Час транзакції в секундах в форматі Unix time
format: int64
2024-05-12 12:36:47 +03:00
example: 1554466347
2024-04-10 22:18:44 +03:00
description:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Опис транзакцій
example: Покупка щастя
mcc:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Код типу транзакції (Merchant Category Code), відповідно ISO\
\ 18245"
format: int32
2024-05-12 12:36:47 +03:00
example: 7997
2024-04-10 22:18:44 +03:00
originalMcc:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Оригінальний код типу транзакції (Merchant Category Code),\
\ відповідно ISO 18245"
format: int32
2024-05-12 12:36:47 +03:00
example: 7997
2024-04-10 22:18:44 +03:00
hold:
2024-05-12 12:36:47 +03:00
type: boolean
2024-04-10 22:18:44 +03:00
description: "Статус блокування суми (детальніше у [wiki](https://en.wikipedia.org/wiki/Authorization_hold))"
example: false
amount:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Сума у валюті рахунку в мінімальних одиницях валюти (копій\
ках, центах)"
format: int64
2024-05-12 12:36:47 +03:00
example: -95000
2024-04-10 22:18:44 +03:00
operationAmount:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Сума у валюті транзакції в мінімальних одиницях валюти (ко\
пійках, центах)"
format: int64
2024-05-12 12:36:47 +03:00
example: -95000
2024-04-10 22:18:44 +03:00
currencyCode:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Код валюти рахунку відповідно ISO 4217
format: int32
2024-05-12 12:36:47 +03:00
example: 980
2024-04-10 22:18:44 +03:00
commissionRate:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Розмір комісії в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
2024-05-12 12:36:47 +03:00
example: 0
2024-04-10 22:18:44 +03:00
cashbackAmount:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Розмір кешбеку в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
2024-05-12 12:36:47 +03:00
example: 19000
2024-04-10 22:18:44 +03:00
balance:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: "Баланс рахунку в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
2024-05-12 12:36:47 +03:00
example: 10050000
2024-04-10 22:18:44 +03:00
comment:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "Коментар до переказу, уведений користувачем. Якщо не вказа\
ний, поле буде відсутнім"
example: За каву
receiptId:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Номер квитанції для check.gov.ua. Поле може бути відсутнім
example: XXXX-XXXX-XXXX-XXXX
invoiceId:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "Номер квитанції ФОПа, приходить у випадку якщо це операція\
\ із зарахуванням коштів"
example: 2103.в.27
counterEdrpou:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "ЄДРПОУ контрагента, присутній лише для елементів виписки р\
ахунків ФОП"
example: "3096889974"
counterIban:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: "IBAN контрагента, присутній лише для елементів виписки рах\
унків ФОП"
example: UA898999980000355639201001404
counterName:
2024-05-12 12:36:47 +03:00
type: string
2024-04-10 22:18:44 +03:00
description: Найменування контрагента
example: ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ «ВОРОНА»
example:
2024-05-12 12:36:47 +03:00
amount: -95000
commissionRate: 0
counterIban: UA898999980000355639201001404
counterEdrpou: "3096889974"
cashbackAmount: 19000
description: Покупка щастя
originalMcc: 7997
mcc: 7997
hold: false
counterName: ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ «ВОРОНА»
balance: 10050000
operationAmount: -95000
comment: За каву
invoiceId: 2103.в.27
id: ZuHWzqkKGVo=
time: 1554466347
currencyCode: 980
receiptId: XXXX-XXXX-XXXX-XXXX
CurrencyInfo_inner:
type: object
2024-04-10 22:18:44 +03:00
properties:
currencyCodeA:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Код валюти рахунку відповідно ISO 4217
format: int32
2024-05-12 12:36:47 +03:00
example: 840
2024-04-10 22:18:44 +03:00
currencyCodeB:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Код валюти рахунку відповідно ISO 4217
format: int32
2024-05-12 12:36:47 +03:00
example: 980
2024-04-10 22:18:44 +03:00
date:
2024-05-12 12:36:47 +03:00
type: number
2024-04-10 22:18:44 +03:00
description: Час курсу в секундах в форматі Unix time
format: int64
2024-05-12 12:36:47 +03:00
example: 1552392228
2024-04-10 22:18:44 +03:00
rateSell:
type: number
format: float
2024-05-12 12:36:47 +03:00
example: 27
rateBuy:
2024-04-10 22:18:44 +03:00
type: number
format: float
2024-05-12 12:36:47 +03:00
example: 27.2
rateCross:
2024-04-10 22:18:44 +03:00
type: number
2024-05-12 12:36:47 +03:00
format: float
example: 27.1
example:
date: 1552392228
currencyCodeA: 840
currencyCodeB: 980
rateBuy: 27.2
rateSell: 27
rateCross: 27.1