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

# Referència d'errors

> Tots els errors que pot retornar l'API pública /v1 de Living Security, amb el seu codi de màquina estable, l'estat HTTP i com resoldre'ls.

Cada resposta d'error de `/v1` és `application/problem+json` ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)) amb un conjunt fix de camps:

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

Baseu la lògica de ramificació en `code`, mai en `detail`: `code` és un contracte de màquina estable; `detail` és llegible per a les persones i pot canviar. `param` hi és present quan l'error es pot atribuir a un paràmetre concret de la sol·licitud. Inclogueu `request_id` quan contacteu amb el suport.

## Error codes

| Code | HTTP status | Retryable |
| - | - | - |
| [`unauthorized`](/ca/developers/v1/errors/unauthorized) | 401 | No |
| [`credential_inactive`](/ca/developers/v1/errors/credential_inactive) | 401 | No |
| [`credential_expired`](/ca/developers/v1/errors/credential_expired) | 401 | No |
| [`credential_revoked`](/ca/developers/v1/errors/credential_revoked) | 401 | No |
| [`not_entitled`](/ca/developers/v1/errors/not_entitled) | 403 | No |
| [`insufficient_permission`](/ca/developers/v1/errors/insufficient_permission) | 403 | No |
| [`permission_denied`](/ca/developers/v1/errors/permission_denied) | 403 | No |
| [`resource_not_found`](/ca/developers/v1/errors/resource_not_found) | 404 | No |
| [`invalid_request`](/ca/developers/v1/errors/invalid_request) | 400 or 409 | No |
| [`invalid_filter`](/ca/developers/v1/errors/invalid_filter) | 400 | No |
| [`unsupported_version`](/ca/developers/v1/errors/unsupported_version) | 400 | No |
| [`idempotency_key_reuse`](/ca/developers/v1/errors/idempotency_key_reuse) | 409 | Depends on the conflict |
| [`rate_limited`](/ca/developers/v1/errors/rate_limited) | 429 | Yes |
| [`service_unavailable`](/ca/developers/v1/errors/service_unavailable) | 503 | Yes |
| [`internal_error`](/ca/developers/v1/errors/internal_error) | 500 | Yes |

El conjunt de codis és tancat: els codis nous suposen un canvi en el contracte públic i s'anuncien mitjançant el registre de canvis de l'API. Una resposta `retryable: true` indica que la condició pot resoldre's; no demostra que una escriptura no hagi tingut cap efecte. Reintenteu les lectures amb un nombre finit d'intents i un pressupost de temps limitat, amb retrocés exponencial i jitter. Respecteu `Retry-After` quan hi sigui present, també en un `409` o `429` reintentable.

Per a les mutacions, seguiu el contracte d'idempotència i recuperació documentat de l'operació. Conserveu la clau i la sol·licitud originals quan sigui compatible. No genereu una clau nova després d'un temps d'espera esgotat o d'un `5xx`: podríeu repetir una escriptura que s'ha dut a terme correctament. Una capçalera `Idempotency-Key` no ofereix cap protecció en una operació que no la admet.


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