---
title: Коди помилок
description: Коди помилок API Coinetic: що означає кожен і що робити — підпис запитів, ідемпотентність, рахунки, активи, повернення коштів і ліміти.
url: https://coinetic.money/uk/docs/errors/
lang: uk
---

# Коди помилок

Тіло помилки завжди однакове. Орієнтуйтеся на `code`, а не на текст: текст написано для людини, і він може змінюватися.

```json
{ "error": { "code": "duplicate_order", "message": "Рахунок для цього order_id уже створено" } }
```

> **Коли повторювати безпечно.** У разі `429`, `500`, `503`, `idempotency_in_progress` і мережевих помилок — **з тим самим `Idempotency-Key`**: дубліката не буде.

## Запит і доступ

| HTTP | code | Причина та що робити |
| --- | --- | --- |
| 400 | `bad_json`, `bad_body` | Тіло не JSON, зайві поля або сума числом замість рядка — виправте запит |
| 400 | `bad_idempotency_key` | Немає ключа або неправильний формат: 8–128 друкованих символів ASCII, не починається з `d:` |
| 400 | `bad_query` | Неправильні параметри списку |
| 401 | `unauthorized` | Підпис, час, nonce або ключ — див. [CP-HMAC](https://coinetic.money/uk/docs/authentication/) |
| 403 | `merchant_suspended` | Мерчанта призупинено — зверніться до підтримки |
| 403 | `merchant_not_approved` | Підключення не завершено або заявка на розгляді — завершіть майстер у кабінеті |
| 403 | `billing_suspended` | Не оплачено рахунок на комісію — оплатіть у кабінеті, розділ «Білінг»; призупинення знімається одразу |
| 404 | `not_found` | Рахунку немає або він чужий |
| 413 | `body_too_large` | Тіло перевищує ліміт — зменште `metadata` |
| 429 | `rate_limited` | Забагато запитів — повторіть з експоненційною паузою |
| 500 | `internal` | Внутрішня помилка — повторіть з тим самим `Idempotency-Key` |

## Рахунки та ідемпотентність

| HTTP | code | Причина та що робити |
| --- | --- | --- |
| 409 | `duplicate_order` | `order_id` уже використано — потрібен новий, наприклад `ORDER-1001-2` |
| 409 | `idempotency_conflict` | Той самий ключ з іншим тілом |
| 409 | `idempotency_in_progress` | Перший запит ще виконується — повторіть за 1–2 с |
| 409 | `invoice_not_payable` | Рахунок прострочено або закрито — створіть новий |
| 422 | `invalid_order_id`, `invalid_price_amount`, `invalid_price_currency`, `invalid_return_url`, `invalid_expires_in_seconds`, `invalid_metadata` | Поле не пройшло перевірку — текст підказує правило |
| 422 | `invalid_allowed_assets` | Жоден актив зі списку не доступний — у тексті причина для кожного |
| 422 | `no_assets` | Немає жодного доступного активу — перевірте гаманці й активи в кабінеті |
| 422 | `amount_too_small` | Сума менша за мінімум усіх доступних активів |

## Вибір валюти на сторінці оплати

Ці помилки обробляє сторінка оплати — ваш сервер стикається з ними, лише якщо ви викликаєте `select` самі.

| HTTP | code | Причина |
| --- | --- | --- |
| 409 | `asset_locked` | Зміна валюти після платежу |
| 409 | `wallet_not_configured` | Немає чинного гаманця для приймання в цій мережі |
| 409 | `wallet_changed`, `address_conflict` | Повторіть вибір |
| 422 | `asset_not_allowed` | Активу немає в рахунку або він більше не дозволений |
| 503 | `rate_unavailable` | Немає підтвердженого курсу — запропонуйте стейблкоїн |
| 503 | `network_unavailable` | Приймання в мережі тимчасово недоступне — оберіть іншу |

## Повернення

| HTTP | code | Причина |
| --- | --- | --- |
| 403 | `merchant_inactive` | Магазин призупинено або ключ відкликано |
| 409 | `invoice_not_paid` | Для рахунку не обрано актив — повертати нічого |
| 409 | `nothing_to_refund` | Усе вже повернуто або запитано |
| 409 | `too_many_refunds` | 20 відкритих заявок за рахунком |
| 409 | `refund_executor` | Повернення виконує платформа, а не ви |
| 409 | `invoice_status_changed` | Статус рахунку змінився після заявки — повторіть з `"ack_status_change": true` |
| 422 | `amount_exceeds_refundable` | Сума більша за доступну — зменште її або вкажіть `"full"` |
| 422 | `invalid_amount`, `invalid_address`, `invalid_tx_hash` | Поле не пройшло перевірку |
