Skip to main content
Cuando algo sale mal, la API responde con el status HTTP apropiado y un cuerpo application/problem+json (RFC 9457 / 7807):
CampoPara qué sirve
codeIdentificador estable — programa contra este, no contra el texto.
detailMensaje accionable en es-MX; sirve para mostrar al usuario o para que un agente se corrija.
statusEl código HTTP (mismo que la respuesta).
titleNombre corto del tipo de error.
typeURI del tipo (documental).
Los detail están escritos para ser auto-corregibles: un LLM que recibe el error suele poder arreglar el request y reintentar sin intervención humana.

Familias de status

StatusSignificadoQué hacer
400Request malformadoRevisa el JSON y los tipos.
401Falta o es inválido el tokenManda un Authorization: Bearer válido (auth).
403Sin permiso (p. ej. key read_only escribiendo)Usa una credencial con permiso (scopes).
404No existe (o no es tuyo)Verifica el id.
409Conflicto (p. ej. borrar algo con dependencias)Resuelve la dependencia que indica detail.
422Válido pero no procesable (reglas de negocio)Corrige según detail (montos, fechas, etc.).
429Rate limitEspera y reintenta con backoff.
5xxError nuestroReintenta con backoff; si persiste, repórtalo.

Códigos comunes

Cada error trae un code estable. Algunos ejemplos:
codeStatusCausa → arreglo
AUTH_MISSING_TOKEN401Falta el header → manda Authorization: Bearer ….
AUTH_INVALID_TOKEN401Key/token inválido o revocado → usa uno vigente.
API_KEY_READ_ONLY403Key de solo lectura escribiendo → usa read_write.
SPLIT_AMOUNT_MISMATCH422Las partes no suman el total → ajústalas.
La lista completa y actualizada de códigos vive en cada endpoint de la Referencia de API. Trátalos como contrato estable.