Corporate Monobank open API API Reference

API для отримання інформації про стан рахунків клієнтів та виписок по ним, а також загальної інформації про банк для розробників інших додатків або сервісів.

API дозволяє ідентифікувати користувача банку та надати токен для отримання інформація по окремому клієнту.

Для надання доступу необхідно надіслати коротку інформацію про ваш сервіс та мету надання доступу на api@monobank.ua.

Цей процес необхідний для забезпечення безпеки клієнтських даних.

Тільки після надання компанії доступів до API клієнт матиме змогу авторизуватися за допомогою свого токена monobank у сервісі цієї компанії.

Якщо у вас є запитання щодо роботи API, запрошуємо до комьюніті у Telegram-каналі

API Endpoint
https://api.monobank.ua/
Contact: api@monobank.ua
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: https
Version: 201903

Публічні дані

Загальна інформація що надається без авторизації.

Отримання курсів валют

GET /bank/currency

Отримати базовий перелік курсів валют monobank. Інформація кешується та оновлюється не частіше 1 разу на 5 хвилин.

200 OK

Інформація про курс валют

Response Example (200 OK)
[
  {
    "currencyCodeA": 840,
    "currencyCodeB": 980,
    "date": 1552392228,
    "rateSell": 27,
    "rateBuy": 27.2,
    "rateCross": 27.1
  }
]

Клієнтські персональні дані

Інформація, що надається тільки за згодою клієнта та тільки авторизованим банком компаніям. Для отримання доступу необхідно надати інформацію про сервіс та мету використання за адресою api@monobank.ua

Ініціалізія доступу

POST /personal/auth/request

Створення запиту на доступ к клієнтським данним

X-Key-Id: string
in header

ID ключа сервісу

X-Time: string
in header

Поточний час у секундах (UTC)

X-Permissions: string
in header

Перелік прав, які сервіс хоче отримати від клієнта (1 літера на 1 permission). Перелік можливих прав

  • s - виписка (включає баланс та саму виписку)
  • p - Персональная інформація (прізвище та ім'я)

X-Sign: string
in header

Sign (X-time | X-Permissions | URL)

X-Callback: string
in header

URL колбека, який буде запрошено сервісом, коли кліеєт підтвердить надання доступу (GET запит з хедером X-Request-Id)

200 OK

Інформація про новий запит

400 Bad Request

Invalid request parameters

403 Forbidden

Forbidden

Response Example (200 OK)
{
  "tokenRequestId": "uLkwh3NzFAfEkj7urj5C7AU_",
  "acceptUrl": "https://mbnk.app/auth/uLkwh3NzFAfEkj7urj5C7AU_"
}
Response Example (400 Bad Request)
{
  "errorDescription": "string"
}
Response Example (403 Forbidden)
{
  "errorDescription": "string"
}

Перевірка доступу

GET /personal/auth/request

Перевірка статусу запиту на доступ к клієнтським данним

X-Key-Id: string
in header

ID ключа сервісу

X-Time: string
in header

Поточний час у секундах (UTC)

X-Request-Id: string
in header

Request id

X-Sign: string
in header

Sign (X-time | X-Request-Id | URL)

200 OK

Access granted

400 Bad Request

Invalid request parameters

401 Unauthorized

Request is unauthorized yet

403 Forbidden

Forbidden

404 Not Found

Request is not exist

Response Example (400 Bad Request)
{
  "errorDescription": "string"
}
Response Example (401 Unauthorized)
{
  "errorDescription": "string"
}
Response Example (403 Forbidden)
{
  "errorDescription": "string"
}
Response Example (404 Not Found)
{
  "errorDescription": "string"
}

Інформація про клієнта

GET /personal/client-info

Отримання інформації про клієнта та переліку його рахунків

X-Key-Id: string
in header

ID ключа сервісу

X-Time: string
in header

Поточний час у секундах (UTC)

X-Request-Id: string
in header

Request id

X-Sign: string
in header

Sign (X-time | X-Request-Id | URL)

200 OK

Statement list

Response Example (200 OK)
{
  "name": "string",
  "accounts": [
    {
      "id": null,
      "balance": 10050000,
      "creditLimit": 10000000,
      "currencyCode": 980,
      "cashbackType": "UAH"
    }
  ]
}

Виписка

GET /personal/statement/{account}/{from}/{to}

Отримання виписки за час від {from} до {to} часу в секундах в форматі UTC. Максимальний час за який можливо отримувати виписку 31 доба (2678400 секунд)

X-Key-Id: string
in header

ID ключа сервісу

X-Time: string
in header

Поточний час у секундах (UTC)

X-Request-Id: string
in header

Request id

X-Sign: string
in header

Sign (X-time | X-Request-Id | URL)

account: string
in path

Account id (client card id), 0 - default UAH

from: string
in path

Statement start time

to: string
in path

Statement end time (if not exist, will be using current time)

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
  }
]

Опис даних

TokenRequest: object

tokenRequestId: string

ID токена доступу

acceptUrl: string

URL який потрібно відобразити клієнту у вигляді QR або редиректнути на сторінку, якщо клієнт використовує смартфон/планшет

Example
{
  "tokenRequestId": "uLkwh3NzFAfEkj7urj5C7AU_",
  "acceptUrl": "https://mbnk.app/auth/uLkwh3NzFAfEkj7urj5C7AU_"
}

UserInfo: object

Опис клієнта та його рахунків. Якщо клієнт не надав права читати його персональні данні, повернеться тільки перелік рахунків.

name: string

Ім'я клієнта

accounts: object[]

List of avaible accounts

object
id: string
balance: number (int64)
creditLimit: number (int64)

Кредитний ліміт

currencyCode: number (int32)
cashbackType: string None, UAH, Miles
Example
{
  "name": "string",
  "accounts": [
    {
      "id": null,
      "balance": 10050000,
      "creditLimit": 10000000,
      "currencyCode": 980,
      "cashbackType": "UAH"
    }
  ]
}

StatementItems: array

Перелік транзакцій за вказанний час

object
id: string
time: number (int32)
description: string
mcc: number (int32)
hold: boolean
amount: number (int64)
operationAmount: number (int64)
currencyCode: number (int32)
commissionRate: number (int64)
cashbackAmount: number (int64)
balance: number (int64)
Example
[
  {
    "id": "ZuHWzqkKGVo=",
    "time": 1554466347,
    "description": "Покупка щастя",
    "mcc": 7997,
    "hold": false,
    "amount": -95000,
    "operationAmount": -95000,
    "currencyCode": 980,
    "commissionRate": 0,
    "cashbackAmount": 19000,
    "balance": 10050000
  }
]

CurrencyInfo: array

Перелік курсів. Кожна валютна пара може мати одне і більше полів з rateSell, rateBuy, rateCross.

object
currencyCodeA: number (int32)
currencyCodeB: number (int32)
date: number (int32)
rateSell: number (float)
rateBuy: number (float)
rateCross: number (float)
Example
[
  {
    "currencyCodeA": 840,
    "currencyCodeB": 980,
    "date": 1552392228,
    "rateSell": 27,
    "rateBuy": 27.2,
    "rateCross": 27.1
  }
]

Error: object

errorDescription: string

Опис помилки для людини, для автоматичного оброблення потрібно аналізувати HTTP код відповіді (200, 404, 429 та інші)

Example
{
  "errorDescription": "string"
}