Для аутентифікації та спільних заголовків дивіться API General.
Користувач
Отримати поточного користувача Auth required
GET /user/me
Отримання профілю аутентифікованого користувача. @re
Відповідь
{
"user": {
"id": "k5Xz9qR2Wp",
"name": "John Doe",
"displayName": "John Doe",
"email": "user@example.com",
"initials": "JD",
"avatarUrl": "/avatars/1-a3f8c2d1.jpg",
"role": "user",
"balance": 10.00,
"displayBalance": 415.20,
"currency": "UAH",
"locale": "en",
"hasPassword": true,
"invitedBy": "xK9mR2pL1w",
"createdAt": "2026-03-15T12:00:00.000Z"
},
"sudo": null
}
invitedBy— ID користувача, який запросив цього користувача через реферальне посилання.null, якщо не запрошено.
sudo—nullдля нормальної сесії. Коли адміністратор діє як цей користувач (див.POST /admin/users/:id/sudo) це{ "adminName": "Alex", "expiresAt": "2026-10-12T14:54:52.636Z" }. Сесія sudo є тільки для читання: кожен запит, окрімGET/HEAD/OPTIONS, кінцевих точок для попереднього перегляду (POST /orders/preview,POST /payment/preview,POST /payment/gateways/:key/meta/options) таPOST /auth/sudo/exitвідхиляється з403 auth.sudo_read_only.
Оновити налаштування Auth required
PATCH /user/settings
Оновлення налаштувань користувача. Всі поля необов'язкові — надсилайте лише те, що бажаєте змінити.
Тіло запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
name | string | Відображуване ім'я. Надішліть порожній рядок, щоб очистити. | Ні |
currency | string | Код відображуваної валюти | Ні |
password | string | Встановити або змінити пароль. Якщо у користувача вже є пароль, вимагається currentPassword. | Ні |
currentPassword | string | Необхідно лише при зміні існуючого пароля | Ні |
Відповідь
Повний оновлений профіль користувача.
Запит на зміну електронної пошти Auth required
POST /user/email/request-change
Надіслати 6-значний код підтвердження на нову електронну адресу. Код діє 10 хвилин. Попередні коди, що очікують на цю саму адресу, втрачають силу.
Тіло запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
email | string | Нова електронна адреса | Так |
Відповідь
{ "message": "user.email_change_code_sent" }Помилки:
{ "message": "user.email_required" }
{ "message": "user.email_already_taken" }Підтвердити зміну електронної пошти Auth required
POST /user/email/confirm
Підтвердьте зміну електронної пошти, подавши код, який було надіслано на нову адресу. У разі успіху електронну адресу користувача буде оновлено, і повернеться повний оновлений профіль.
Тіло запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
email | string | Нова електронна адреса (має відповідати запиту) | Так |
code | string | 6-значний код підтвердження | Так |
Відповідь
{ "user": { "...": "повний профіль з оновленою електронною поштою" } }Помилки:
{ "message": "user.email_change_code_invalid" }
{ "message": "user.email_already_taken" }Перелік валют Auth required
GET /user/currencies
Отримати всі підтримувані коди відображуваних валют.
Відповідь
{
"currencies": ["USD", "EUR", "GBP", "PLN", "CZK", "HUF", "RON", "SEK", "NOK", "DKK", "CHF", "HRK", "BGN", "UAH", "TRY"]
}Перелік транзакцій Auth required
GET /user/transactions
Список транзакцій балансу аутентифікованого користувача (пагінація, можливість фільтрації).
Параметри запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
page | number | Номер сторінки. За замовчуванням 1 | Ні |
limit | number | Кількість елементів на сторінку (максимум 100). За замовчуванням 20 | Ні |
type | string | Фільтр за типом: deposit, withdrawal, purchase, refund, bonus, correction | Ні |
status | string | Фільтр за статусом: pending, completed, failed, cancelled | Ні |
from | string | Дата в форматі ISO — початок діапазону дат | Ні |
to | string | Дата в форматі ISO — кінець діапазону дат | Ні |
currency | string | Перевизначити відображувану валюту. За замовчуванням валюта облікового запису користувача | Ні |
Відповідь
{
"currency": "UAH",
"transactions": [
{
"id": "k5Xz9qR2Wp",
"type": "deposit",
"status": "completed",
"amount": 4100.00,
"currency": "UAH",
"balanceBefore": 0,
"balanceAfter": 4100.00,
"exchangeRate": 41.0,
"amountUsd": 100.00,
"balanceBeforeUsd": 0,
"balanceAfterUsd": 100.00,
"originalAmount": 4100,
"originalCurrency": "UAH",
"description": "Поповнення через Monobank",
"referenceType": "topup",
"referenceId": "aBcDeFgHiJ",
"receiptUrl": "https://api.fonproxy.io/receipts/k5Xz9qR2Wp",
"meta": { "gateway": "monobank", "invoiceId": "abc123" },
"createdAt": "2026-03-15T12:00:00.000Z"
},
...
],
"total": 42,
"page": 1,
"pages": 3
}Графік історії балансу Auth required
GET /user/graphs/balance
Отримати дані графіка історії балансу. Повертає загальний формат графіка.
Параметри запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
from | string | Дата в форматі ISO — початок діапазону. За замовчуванням 30 днів тому | Ні |
to | string | Дата в форматі ISO — кінець діапазону. За замовчуванням зараз | Ні |
granularity | string | hour, day, week, або month. За замовчуванням авто | Ні |
currency | string | Перевизначити відображувану валюту. За замовчуванням валюта облікового запису користувача | Ні |
Відповідь
{
"graph": "balance_history",
"granularity": "day",
"from": "2026-02-14T00:00:00.000Z",
"to": "2026-03-16T00:00:00.000Z",
"series": [
{
"key": "balance",
"label": "Баланс",
"color": "#151515",
"points": [
{ "t": "2026-02-14T00:00:00.000Z", "v": 0 },
...
]
}
],
"meta": {
"currency": "UAH",
"startBalance": 0,
"endBalance": 337.15,
"startBalanceUsd": 0,
"endBalanceUsd": 8.25,
"exchangeRate": 41.0
}
}Аватар
Отримати аватар
GET /avatar/:identifier
Надати аватар користувача. Публічно — не потребує аутентифікації.
- Якщо у користувача є
avatarUrl→ редирект302 - Якщо у користувача немає
avatarUrl→ визначений SVG з ініціалами
Приймає ID або email як ідентифікатор:
GET /avatar/k5Xz9qR2Wp
GET /avatar/user@example.comЗавантажити аватар Auth required
POST /user/avatar
Завантажити нове зображення аватара.
Content-Type: multipart/form-data
Назва поля: file
Підтримувані формати: JPEG, PNG, WebP, GIF
Максимальний розмір: 5 MB
Відповідь
{
"avatarUrl": "/avatars/1-a3f8c2d1.jpg",
"user": { "...": "повний оновлений профіль користувача" }
}Видалити аватар Auth required
DELETE /user/avatar
Видалити поточний аватар.
Відповідь
{
"user": { "...": "повний оновлений профіль користувача з avatarUrl: null" }
}