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

# Errores

> El sobre de error y los códigos de estado de la API de Croma.

## Sobre

Las respuestas exitosas devuelven `{ "data": … }`. Las fallas devuelven un
objeto `error` y un estado HTTP distinto de 2xx. Ramifica según el código de
estado, no según un indicador en el cuerpo:

```json theme={"dark"}
{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_param",
    "message": "String must contain at least 3 character(s)",
    "param": "name",
    "details": { "issues": [{ "path": "name", "message": "String must contain at least 3 character(s)" }] }
  }
}
```

| Campo     | Notas                                                                          |
| --------- | ------------------------------------------------------------------------------ |
| `type`    | Categoría general (ver más abajo).                                             |
| `code`    | Código específico legible por máquina. Ramifica con base en este.              |
| `message` | Legible por humanos; seguro para mostrar en la interfaz.                       |
| `param`   | Campo problemático. Presente en errores de validación.                         |
| `details` | Detalle estructurado opcional (por ejemplo, todos los `issues` de validación). |

## Tipos y códigos

| Estado | `type`                  | `code`                         | Significado                                                                                    |
| ------ | ----------------------- | ------------------------------ | ---------------------------------------------------------------------------------------------- |
| `400`  | `invalid_request_error` | `invalid_param`                | El cuerpo falló la validación; ver `param` / `details`.                                        |
| `400`  | `invalid_request_error` | `too_many_results`             | La consulta coincidió con demasiados registros para devolver. Acótala.                         |
| `401`  | `authentication_error`  | `invalid_api_key`              | Llave faltante o inválida.                                                                     |
| `401`  | `authentication_error`  | `personal_api_key_not_allowed` | Se usó una llave personal; solo llaves de organización.                                        |
| `404`  | `not_found_error`       | `endpoint_not_found`           | No hay un endpoint de API en esa ruta. Ver la [Referencia de API](/es/api-reference/overview). |
| `405`  | `invalid_request_error` | `method_not_allowed`           | Método incorrecto. Los endpoints de datos son `POST`.                                          |
| `429`  | `rate_limit_error`      | `rate_limited`                 | Cuota excedida; ver [Límites de tasa](/es/rate-limits).                                        |
| `5xx`  | `upstream_error`        | `<source>_upstream`            | Una fuente gubernamental falló o no estaba disponible.                                         |
| `500`  | `api_error`             | `internal_error`               | Error interno inesperado.                                                                      |

<Note>
  No todos los endpoints emiten todos los códigos; la página de referencia de
  cada endpoint lista los suyos. Un "sin coincidencias" nunca es un `404`; es un
  `200` exitoso. Registraduría, SUNAT y RREE devuelven `found: false`, y SICAAC y
  Superfinanciera devuelven una lista vacía. Un `404` significa que el endpoint o
  el id del trabajo en sí no existe.
</Note>

<Note>
  Las [consultas asíncronas](/es/async-jobs) pueden fallar como **trabajo** en
  lugar de como un error HTTP. Un trabajo fallido lleva el mismo objeto `error`
  en el sobre, con `code: "job_failed"`.
</Note>
