# Статус рахунку та депозиту

Перевіряйте рахунок або депозит через API, з вебхуками або без них.

Source: https://docs.invoise.me/uk/payments/status/

Читайте стан рахунку або депозиту через GET-запити. Вебхуки сповіщають вас про зміни автоматично.

## Прочитайте рахунок або депозит

Використовуйте `id`, повернутий під час створення рахунку або депозиту:

```bash
curl 'https://platform.invoise.me/api/v1/shops/{shop_id}/issuances/{issuance_id}' \
  -H 'Authorization: Bearer ivk_...'
```

Відповідні поля з прикладу відповіді (інші поля опущено):

```json
{
  "id": "f06b8a31-19c7-4687-ade3-1c09466d2751",
  "kind": "invoice",
  "status": "funded",
  "amount": "10000000",
  "received": "10000000",
  "token_decimals": 6,
  "expires_at": "2026-10-19T10:00:00Z",
  "cancelled_at": null,
  "disabled_at": null,
  "payout_tx_hash": null
}
```

Обидві суми — рядки цілих чисел у базових одиницях. У цьому прикладі надійшло 10 токенів, але підтверджена транзакція виплати ще не показана.

## Інтерпретація рахунку

| `status` | Що робити |
| --- | --- |
| `registering` | Чекайте на непорожню `address`. Не формуйте її самостійно. |
| `open` | Продовжуйте чекати. `received` може показувати частковий платіж. |
| `funded` | Достатньо підтверджених коштів для розрахунку. |
| `settled` | Рахунок закрито в мережі. |
| `reconciling` | Чекайте узгодження; не вважайте це успішним платежем. |

Також перевіряйте `cancelled_at`. Це часова мітка або `null`, а не значення статусу. Вона встановлюється, коли ви скасовуєте рахунок, коли неоплачений рахунок проходить свій `expires_at`, або коли персонал Invoise блокує мерчанта; вебхук `invoice.cancelled` розрізняє ці випадки через [`data.reason`](https://docs.invoise.me/uk/integration/webhooks/#2-оберіть-потрібні-події). Скасування приховує сторінку оплати, але не зупиняє вхідні кошти чи розрахунок. Вирішіть явно, як ваш бізнес обробляє оплачений, але скасований рахунок.

`funded` означає, що платіж отримано, а не що виплату завершено. `settled` фіксує закриття рахунку. Для повного обліку виплати використовуйте `payout.confirmed`; `payout_tx_hash` вказує на останній підтверджений вихідний переказ отримувачу, коли він доступний.

Якщо ви отримуєте `transfer.reverted`, Invoise повідомляє про відкат конкретного вхідного переказу в мережі. Визначте його через `chain_event.reference_event_id`, прочитайте поточний стан рахунку й скоригуйте свій запис про цей переказ один раз. Формат події див. у [Вебхуках](https://docs.invoise.me/uk/integration/webhooks/).

## Відстеження депозитів

Депозитна адреса багаторазова. Вона може повернутися до `open` після виплати, тож не чекайте, що вона стане `settled` назавжди.

`received` — це **накопичена підтверджена вхідна сума**, а не залишок. Виплата не віднімається від неї. Вона може зменшитися, якщо переказ відкотять. Зараховуйте кожен вхідний платіж лише один раз; для цього зручні вебхуки, оскільки кожна подія має стабільний ID.

`disabled_at` керує доступністю сторінки оплати. Вимкнення депозиту не зупиняє відстеження його адреси.

## Список рахунків і депозитів

```bash
curl 'https://platform.invoise.me/api/v1/shops/{shop_id}/payments?limit=50' \
  -H 'Authorization: Bearer ivk_...'
```

З `limit` (1–100) відповідь має вигляд `{"items":[...],"next_cursor":"..."}`. Надсилайте `cursor` для наступної сторінки, поки `next_cursor` не стане порожнім. Без параметрів пагінації ендпоінт повертає обмежений масив; це не вся історія.

Список підтримує фільтри `kind`, `status` і `q`. Його фільтр `status=paid` обирає `funded` і `settled`; `paid` не є статусом рахунку, який повертає ендпоінт деталей.

Поле `transfers` ендпоінту деталей містить лише десять останніх підтверджених вхідних/вихідних записів. Не використовуйте його як повний реєстр.

## Публічний статус сторінки оплати

`GET /api/v1/checkout/{public_id}` не потребує облікових даних. Він надає стан сторінки оплати, зокрема `status`, `received`, `amount` і `expires_at`. Для записів магазину на своєму бекенді використовуйте автентифікований ендпоінт рахунку.

Про надсилання оновлень і перевірку підпису див. [Вебхуки](https://docs.invoise.me/uk/integration/webhooks/).
