# Errores

Los errores de nivel de aplicación se devuelven como **RFC 7807 Problem Details** con
`Content-Type: application/problem+json`:

```json
{
  "type": "about:blank",
  "title": "Case ID not found",
  "status": 404,
  "detail": "No case exists for the given ID.",
  "instance": "/api/v1/upload-service/job-status/7c2f1e4a-…"
}
```

| Campo | Descripción |
| --- | --- |
| `type` | Una URI que identifica el tipo de problema, o `about:blank`. |
| `title` | Resumen breve y legible para humanos. |
| `status` | El código de estado HTTP, repetido en el cuerpo. |
| `detail` | Explicación legible para humanos de esta ocurrencia. |
| `instance` | La ruta de la petición que produjo el error. |

Algunos problemas añaden campos adicionales. Un `413`, por ejemplo, lleva los límites configurados:

```json
{
  "type": "https://accessful.de/problems/upload/payload-too-large",
  "title": "Payload Too Large",
  "status": 413,
  "detail": "Maximum upload size exceeded.",
  "maxFileSize": "200MB",
  "maxRequestSize": "815MB",
  "maxFileCount": "1000",
  "limitExceeded": "per-file"
}
```

## Códigos de estado habituales

| Estado | Cuándo |
| --- | --- |
| `400 Bad Request` | Entrada mal formada — URL de webhook no válida, archivo no PDF o cuerpo de petición mal formado. |
| `401 Unauthorized` | Clave de API ausente, mal formada o revocada. |
| `403 Forbidden` | Clave válida sin permiso para la acción. |
| `404 Not Found` | `caseId` desconocido o mal formado, o aún no hay resultado disponible. |
| `409 Conflict` | La petición entra en conflicto con el estado actual. |
| `413 Payload Too Large` | El archivo o la petición supera los [límites de tamaño](https://docs.accessful.de/es/limits/). |
| `500 Internal Server Error` | Error inesperado del servidor — seguro reintentar más tarde. |

:::note
**401** se produce en el gateway (clave ausente o no válida), antes de que la petición llegue a la
aplicación — no lleva un cuerpo de Problem Details; fíate del código de estado. **403** y todos los demás errores de aplicación usan el cuerpo de
Problem Details anterior.
:::

:::note[La cuota no es un `429`]
Una cuota de contrato agotada **no** devuelve un error HTTP. Las subidas se aceptan con `200`
y, después, el trabajo termina en el [estado](https://docs.accessful.de/es/reference/api/) `quota_exceeded`. Consulta
[Límites](https://docs.accessful.de/es/limits/).
:::