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

# Errores

> Formato de errores y códigos comunes

## Formato

Todos los errores siguen el mismo formato JSON:

```json theme={null}
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "El campo rutEmpresa es requerido",
    "details": null,
    "requestId": "uuid"
  }
}
```

## Códigos HTTP

| Status | Significado                                                      |
| ------ | ---------------------------------------------------------------- |
| 400    | Error de validación — revisa los campos enviados                 |
| 401    | No autenticado — token inválido, expirado o faltante             |
| 404    | Recurso no encontrado                                            |
| 409    | Conflicto — operación no puede completarse (ej: folios agotados) |
| 500    | Error interno — reintentar o contactar soporte                   |
| 502    | Backend inalcanzable — servicio downstream no responde           |
| 504    | Timeout — la operación tardó más de 30 segundos                  |

## Códigos de error comunes

| Código                    | HTTP | Descripción                                    |
| ------------------------- | ---- | ---------------------------------------------- |
| `VALIDATION_ERROR`        | 400  | Campos inválidos o faltantes                   |
| `UNAUTHORIZED`            | 401  | Token no proporcionado o inválido              |
| `SESSION_EXPIRED`         | 401  | Sesión expirada                                |
| `NOT_FOUND`               | 404  | Tenant, DTE, folio o recurso no encontrado     |
| `NO_FOLIOS_AVAILABLE`     | 409  | No hay folios disponibles para ese tipo de DTE |
| `FOLIO_CONFLICT`          | 409  | Conflicto de concurrencia al consumir folio    |
| `API_KEY_NOT_FOUND`       | 404  | API key no encontrada o ya revocada            |
| `WEBHOOKS_NOT_CONFIGURED` | 404  | La cuenta no tiene webhooks configurados       |
| `GATEWAY_TIMEOUT`         | 504  | Backend no respondió a tiempo                  |
| `BAD_GATEWAY`             | 502  | Backend inalcanzable                           |

## Reintentos

Para errores 5xx, es seguro reintentar con backoff exponencial. Los errores 4xx generalmente no se resuelven reintentando — revisa los campos o el estado del recurso.
