> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Усі помилки, які може повертати публічний API Living Security /v1, зі стабільним машинним кодом, HTTP-статусом і способами усунення.

Кожна відповідь `/v1` з помилкою має формат `application/problem+json` ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)) із фіксованим набором полів:

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/resource_not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "No such organization.",
  "code": "resource_not_found",
  "request_id": "req_...",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/resource_not_found",
  "retryable": false
}
```

Розгалужуйте логіку за `code`, а не за `detail` — `code` є стабільним машинним контрактом, тоді як `detail` призначене для читання людиною і може змінюватися. `param` присутнє, якщо помилку можна віднести до конкретного параметра запиту. Під час звернення до служби підтримки вказуйте `request_id`.

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

| Код | HTTP-статус | Можна повторити |
| - | - | - |
| [`unauthorized`](/uk/developers/v1/errors/unauthorized) | 401 | Ні |
| [`credential_inactive`](/uk/developers/v1/errors/credential_inactive) | 401 | Ні |
| [`credential_expired`](/uk/developers/v1/errors/credential_expired) | 401 | Ні |
| [`credential_revoked`](/uk/developers/v1/errors/credential_revoked) | 401 | Ні |
| [`not_entitled`](/uk/developers/v1/errors/not_entitled) | 403 | Ні |
| [`insufficient_permission`](/uk/developers/v1/errors/insufficient_permission) | 403 | Ні |
| [`permission_denied`](/uk/developers/v1/errors/permission_denied) | 403 | Ні |
| [`resource_not_found`](/uk/developers/v1/errors/resource_not_found) | 404 | Ні |
| [`invalid_request`](/uk/developers/v1/errors/invalid_request) | 400 або 409 | Ні |
| [`invalid_filter`](/uk/developers/v1/errors/invalid_filter) | 400 | Ні |
| [`unsupported_version`](/uk/developers/v1/errors/unsupported_version) | 400 | Ні |
| [`idempotency_key_reuse`](/uk/developers/v1/errors/idempotency_key_reuse) | 409 | Залежить від конфлікту |
| [`rate_limited`](/uk/developers/v1/errors/rate_limited) | 429 | Так |
| [`service_unavailable`](/uk/developers/v1/errors/service_unavailable) | 503 | Так |
| [`internal_error`](/uk/developers/v1/errors/internal_error) | 500 | Так |

Набір кодів є закритим: нові коди означають зміну публічного контракту й оголошуються через журнал змін API. Відповідь `retryable: true` означає, що проблема може зникнути, але не доводить, що операція запису не мала жодного ефекту. Повторюйте запити на читання зі скінченною кількістю спроб і обмеженим часом, використовуючи експоненційну затримку та джитер. Дотримуйтеся `Retry-After`, якщо воно присутнє, зокрема у відповіді `409` або `429`, які можна повторити.

Для операцій зміни дотримуйтеся задокументованого контракту ідемпотентності та відновлення для цієї операції. Якщо це підтримується, зберігайте початковий ключ і початковий запит. Не створюйте новий ключ після тайм-ауту або `5xx`: це може призвести до повторення вже успішного запису. Заголовок `Idempotency-Key` не забезпечує захисту для операції, яка його не підтримує.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.