AntivioenIniciar sesión

Errores, límites y reintentos

Errores

Los errores son problemas RFC 9457 con un code estable. Decide según code, no según el mensaje:

{
  "type": "https://api.antivio.app/problems/request.validation_failed",
  "title": "Unprocessable Entity",
  "status": 422,
  "code": "request.validation_failed",
  "detail": "One or more fields are invalid.",
  "errors": [
    { "field": "recipient_phone", "code": "shipment.recipient_phone_invalid", "message": "…" }
  ]
}
EstadoCódigos frecuentesQué hacer
400request.malformed_body, idempotency.key_requiredcorrige la petición
401auth.invalid_token, auth.missing_tokenel token es incorrecto, está revocado o vencido: usa uno nuevo
403authz.forbiddenal token le falta un permiso, o al rol que lo respalda
403auth.api_token_not_allowedesta ruta no es parte de la API pública
403auth.token_owner_inactivequien creó el token ya no puede actuar: crea un token nuevo
404shipment.not_found, …el recurso no existe o no es tuyo
409idempotency.key_reused, shipment.transition_not_allowed, …conflicto con el estado actual
412 / 428request.precondition_failed / request.precondition_requiredenvía el ETag actual en If-Match
422request.validation_failedrevisa errors[]
429rate_limitedespera Retry-After segundos
5xxinternalreintenta con espera, con la misma Idempotency-Key

Idempotencia

Las peticiones que crean algo o cambian un estado (POST para crear, confirmar, cancelar, reenviar, …) necesitan la cabecera Idempotency-Key: de 1 a 255 caracteres ASCII visibles, única por operación (tu número de pedido funciona bien).

Límite de peticiones

Cada token puede hacer 1000 peticiones por minuto (real) o 100 (prueba). Cada respuesta dice cuánto te queda:

RateLimit-Limit: 1000
RateLimit-Remaining: 997
RateLimit-Reset: 42

Al pasarte recibes 429 rate_limited con Retry-After (segundos hasta que termine el minuto).

Cambiar un recurso con seguridad

Leer un envío devuelve un ETag. PATCH lo necesita en If-Match, para que nunca sobrescribas un cambio que no has visto: ante un 412, léelo de nuevo y repite tu cambio.

Todas las guías