# Errores

La API Auvo usa códigos HTTP estándar y devuelve `{ "error": "<mensaje>" }`.

## Mapa rápido

| Código | Significado | Acción |
|  --- | --- | --- |
| 400 | Payload inválido | Revisa schema/tipos antes de reenviar. |
| 401 | Token ausente/expirado | Renueva con `POST /login`. |
| 403 | Límite de tasa excedido | Aplica backoff exponencial. |
| 404 | Recurso inexistente | Verifica `id`/slug. |
| 409 | Conflicto (p. ej., duplicidad) | Consulta el estado remoto antes. |
| 415 | Falta `Content-Type` en POST | Enviar `application/json`. |
| 422 | Validación semántica | Lee `error` y corrige. |
| 429 | Límite de tasa (reserva futura) | Trátalo como 403. |
| 500 | Fallo interno | Reporta a help@auvo.com.br con `deliveryId`/timestamp. |


## Envelope


```json
{ "error": "The field 'email' is not a valid email address" }
```

## Estrategia de retry

- **Idempotentes (`GET`, `PUT`, `DELETE`)**: retry con backoff en 5xx y 403.
- **No idempotentes (`POST`, `PATCH`)**: evita retry ciego — usa correlación
(p. ej. `externalId`) para detectar duplicados antes de reenviar.


## Troubleshooting

1. Guarda `X-Request-Id` (cuando esté presente) en los logs.
2. Reproduce en curl antes de reportar — elimina variables del cliente HTTP.
3. Si es posible, adjunta el payload redactado al abrir el ticket.