Estructura uniforme
string
Código estable y legible por máquina. Úsalo para ramificar tu lógica de manejo de errores (no parsees el
message).string
Mensaje legible para personas. Puede cambiar con el tiempo: no lo uses para tomar decisiones en tu código.
array
Presente en errores de validación. Lista de
{ field, issue } que indica qué campo falló y por qué. En el modo lote de POST /v2/debts cada entrada trae además index y externalRequestId del item que falló. Un JSON malformado devuelve [{ "field": "body", "issue": "Invalid JSON syntax" }].string
Identificador único de la petición. Compártelo con soporte para rastrear exactamente qué pasó.
Catálogo de códigos
RESOLUTION_ERROR sin companyCode indica que la organización asociada a tu token no está bien configurada en el sistema. Si lo ves de forma persistente, contacta a soporte con el requestId.Errores del API Gateway (401 y 403)
Los 401 y 403 los emite el API Gateway, antes de que la petición llegue a la API, y no usan la estructura uniforme: no traen el objeto error ni requestId.
El message es informativo
El texto de error.message sirve para depurar, pero no es un contrato: puede cambiar sin aviso. Para decidir qué hacer usa error.code y, en errores de validación, error.details[].field. Los ejemplos de mensajes en estas guías son ilustrativos.
Recomendaciones
Rama por code
Decide tu lógica con
error.code, nunca con el texto de message.Guarda el requestId
Registra el
requestId en tus logs: es la forma más rápida de que soporte rastree una petición.Reintenta con idempotencia
Ante
429 o 500, reintenta con la misma Idempotency-Key para evitar duplicados.Valida antes de enviar
Usa
error.details para mostrar a tus usuarios qué campo corregir en errores 400.
