Довідник кодів помилок

Довідник кодів помилок

Нижче перелік основних кодів помилок, які може повернути API.

Формат помилки:

{
  "ok": false,
  "error": {
    "code": "SOME_CODE",
    "message": "Людський текст",
    "details": { "..." : "..." }
  },
  "meta": { "api_version": "0.1.0", "ts": "..." },
  "id": "ваш-id"
}

Зауваження: message може бути українською/російською (залежить від конкретного сценарію), але code завжди стабільний і саме його треба використовувати у вашій логіці.


Авторизація / доступ (401)

AUTH_REQUIRED (401)

Причина: не передали логін/пароль.
Як виправити: передайте:

  • або Basic Auth (Authorization)
  • або auth.login / auth.password у JSON

AUTH_FAILED (401)

Причина: неправильний логін або пароль.
Як виправити: перевірте, що це ті самі дані, що і для онлайн статистики.

UNAUTHORIZED (401)

Причина: проблема з meta.user_card:

  • не передали meta.user_card
  • або в базі клієнта немає активного користувача з таким Users.Card

Як виправити:

  • передайте meta.user_card
  • переконайтеся, що користувач існує і не видалений (Users.Deleted=0)

Валідація запиту (400)

INVALID_JSON (400)

Причина: тіло запиту не є коректним JSON.
Як виправити: перевірте коми/лапки/екранування.

MISSING_METHOD (400)

Причина: не передали поле method.
Як виправити: додайте method.

INVALID_METHOD (400)

Причина: method має неправильний формат (не вистачає сегментів).
Як виправити: використовуйте формат scope.entity.operation, наприклад get.products.list.

INVALID_PARAMS (400)

Причина: params не є об’єктом.
Як виправити: передавайте params як JSON-об’єкт, наприклад {}.

INVALID_META (400)

Причина: meta не є об’єктом.
Як виправити: передавайте meta як JSON-об’єкт.

MISSING_DATA (400)

Причина: для set.* методів не передали params.data.
Як виправити: додайте params.data з полями, які потрібно записати.

EMPTY_DATA (400)

Причина: params.data є, але немає жодного дозволеного поля для запису.
Як виправити: передавайте тільки поля, які підтримує відповідний довідник.

MISSING_ID (400)

Причина: для get.*.get, set.*.update, set.*.delete не передали params.id.
Як виправити: додайте params.id (або PK-поле).

MISSING_TABLE (400)

Причина: для service.table.* не передали params.table.
Як виправити: передайте назву таблиці.


Дані не знайдені / відсутні (404)

NOT_FOUND (404)

Причина: запис не знайдено.
Як виправити: перевірте id або фільтри.

NO_DATA (404)

Причина: для звіту немає таблиць/даних у заданому діапазоні (наприклад, немає річних таблиць продажів).
Як виправити: змініть діапазон дат або перевірте, чи є відповідні таблиці у БД.


Конфлікти бізнес-логіки (409)

ALREADY_EXISTS (409)

Причина: спроба створити запис з PK, який уже існує (наприклад, товар з таким Code).
Як виправити: використайте інший PK або робіть update.

HAS_STOCK (409)

Причина: спроба видалити товар, у якого є залишок (Main.Quant != 0).
Як виправити: спочатку зведіть залишок до 0, потім видаляйте.

USED_IN_DRAFT_INVOICE (409)

Причина: товар використовується в непроведеній накладній.
Як виправити: проведіть/видаліть накладну або приберіть товар з неї.

CARD_HAS_DEBT (409)

Причина: дисконтна карта має борг у Discount_dolg.
Як виправити: погасіть борг або не видаляйте карту.

HAS_CHILDREN (409)

Причина: не можна видалити категорію, у якої є підкатегорії.
Як виправити: спочатку видаліть/перенесіть підкатегорії.

HAS_GOODS (409)

Причина: не можна видалити категорію, до якої прив’язані товари (Main.Cat).
Як виправити: перепризначте категорії товарам, потім видаляйте.

FORBIDDEN (409)

Причина: заборонена бізнес-операція (наприклад, видалення “(Не визначено)” з Ind=0).
Як виправити: не викликайте дію для службових записів.


Заборонено (403)

FORBIDDEN_TABLE (403)

Причина: спроба service.table.describe / service.table.count для таблиці, яка не у білому списку.
Як виправити: використовуйте лише таблиці зі списку service.schema.


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

NOT_SUPPORTED (400)

Причина: операція логічно не підтримується для цієї сутності (наприклад, restore там, де нема soft-delete).

NOT_IMPLEMENTED (501)

Причина: метод або звіт ще не реалізований у поточній версії API.
Як виправити: дочекайтеся реалізації або використайте інший метод.


Внутрішні помилки (500)

INTERNAL_ERROR (500)

Причина: неочікувана помилка на сервері.
Як діяти: збережіть id запиту і зверніться в підтримку.

DB_ERROR, DB_CONNECT_ERROR, MASTER_DB_ERROR, MASTER_DB_CONNECT_ERROR (500)

Причина: проблеми зі з’єднанням або помилка SQL.
Як діяти: перевірте доступність БД/мережі, або зверніться в підтримку.

На цій сторінці