> ## 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.

# Referință erori

> Toate erorile pe care API-ul public Living Security /v1 le poate returna, cu codul stabil lizibil de mașină, starea HTTP și modul de rezolvare.

Fiecare răspuns de eroare `/v1` este `application/problem+json` ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)) și are un set fix de câmpuri:

```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
}
```

Ramificați logica pe baza `code`, niciodată pe baza `detail` — `code` este un contract stabil pentru mașini; `detail` este destinat citirii de către oameni și se poate modifica. `param` este prezent atunci când eroarea poate fi atribuită unui anumit parametru al cererii. Includeți `request_id` atunci când contactați asistența.

## Coduri de eroare

| Cod | Stare HTTP | Reîncercabilă |
| - | - | - |
| [`unauthorized`](/ro/developers/v1/errors/unauthorized) | 401 | Nu |
| [`credential_inactive`](/ro/developers/v1/errors/credential_inactive) | 401 | Nu |
| [`credential_expired`](/ro/developers/v1/errors/credential_expired) | 401 | Nu |
| [`credential_revoked`](/ro/developers/v1/errors/credential_revoked) | 401 | Nu |
| [`not_entitled`](/ro/developers/v1/errors/not_entitled) | 403 | Nu |
| [`insufficient_permission`](/ro/developers/v1/errors/insufficient_permission) | 403 | Nu |
| [`permission_denied`](/ro/developers/v1/errors/permission_denied) | 403 | Nu |
| [`resource_not_found`](/ro/developers/v1/errors/resource_not_found) | 404 | Nu |
| [`invalid_request`](/ro/developers/v1/errors/invalid_request) | 400 sau 409 | Nu |
| [`invalid_filter`](/ro/developers/v1/errors/invalid_filter) | 400 | Nu |
| [`unsupported_version`](/ro/developers/v1/errors/unsupported_version) | 400 | Nu |
| [`idempotency_key_reuse`](/ro/developers/v1/errors/idempotency_key_reuse) | 409 | Depinde de conflict |
| [`rate_limited`](/ro/developers/v1/errors/rate_limited) | 429 | Da |
| [`service_unavailable`](/ro/developers/v1/errors/service_unavailable) | 503 | Da |
| [`internal_error`](/ro/developers/v1/errors/internal_error) | 500 | Da |

Setul de coduri este închis: codurile noi reprezintă o modificare a contractului public și sunt anunțate prin jurnalul de modificări al API-ului. Un răspuns `retryable: true` înseamnă că situația se poate rezolva; nu dovedește că o operațiune de scriere nu a avut niciun efect. Reîncercați operațiunile de citire cu un număr finit de încercări și o durată limitată, folosind backoff exponențial și jitter. Respectați `Retry-After` atunci când este prezent, inclusiv la un răspuns `409` sau `429` reîncercabil.

Pentru mutații, urmați contractul de idempotență și de recuperare documentat al operațiunii. Păstrați cheia și cererea inițiale, atunci când sunt acceptate. Nu generați o cheie nouă după o depășire a timpului de așteptare sau după `5xx`: astfel puteți repeta o operațiune de scriere care a reușit. Un antet `Idempotency-Key` nu oferă nicio protecție pentru o operațiune care nu îl acceptă.


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