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

# Referencia de errores

> Todos los errores que puede devolver la API pública /v1 de Living Security, con su código de máquina estable, el estado HTTP y cómo resolverlos.

Cada respuesta de error de `/v1` es `application/problem+json` ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)) con un conjunto fijo de campos:

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

Utilice `code` para la lógica condicional, nunca `detail`: `code` es un contrato de máquina estable, mientras que `detail` está pensado para las personas y puede cambiar. `param` está presente cuando el error es atribuible a un parámetro concreto de la solicitud. Incluya `request_id` al ponerse en contacto con el soporte.

## Códigos de error

| Código | Estado HTTP | Reintentable |
| - | - | - |
| [`unauthorized`](/es/developers/v1/errors/unauthorized) | 401 | No |
| [`credential_inactive`](/es/developers/v1/errors/credential_inactive) | 401 | No |
| [`credential_expired`](/es/developers/v1/errors/credential_expired) | 401 | No |
| [`credential_revoked`](/es/developers/v1/errors/credential_revoked) | 401 | No |
| [`not_entitled`](/es/developers/v1/errors/not_entitled) | 403 | No |
| [`insufficient_permission`](/es/developers/v1/errors/insufficient_permission) | 403 | No |
| [`permission_denied`](/es/developers/v1/errors/permission_denied) | 403 | No |
| [`resource_not_found`](/es/developers/v1/errors/resource_not_found) | 404 | No |
| [`invalid_request`](/es/developers/v1/errors/invalid_request) | 400 o 409 | No |
| [`invalid_filter`](/es/developers/v1/errors/invalid_filter) | 400 | No |
| [`unsupported_version`](/es/developers/v1/errors/unsupported_version) | 400 | No |
| [`idempotency_key_reuse`](/es/developers/v1/errors/idempotency_key_reuse) | 409 | Depende del conflicto |
| [`rate_limited`](/es/developers/v1/errors/rate_limited) | 429 | Sí |
| [`service_unavailable`](/es/developers/v1/errors/service_unavailable) | 503 | Sí |
| [`internal_error`](/es/developers/v1/errors/internal_error) | 500 | Sí |

El conjunto de códigos es cerrado: los códigos nuevos suponen un cambio en el contrato público y se anuncian a través del registro de cambios de la API. Una respuesta `retryable: true` significa que la condición puede resolverse; no demuestra que una operación de escritura no haya surtido efecto. Reintente las lecturas con un número de intentos y un tiempo máximo finitos, retroceso exponencial y jitter. Respete `Retry-After` cuando esté presente, incluso en una respuesta `409` o `429` reintentable.

En las mutaciones, siga el contrato de idempotencia y recuperación documentado de la operación. Conserve la clave y la solicitud originales cuando la operación lo admita. No genere una clave nueva tras un tiempo de espera agotado o un `5xx`: podría repetir una escritura que se realizó correctamente. Un encabezado `Idempotency-Key` no ofrece ninguna protección en una operación que no lo admite.


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