Cada código de negocio, cuándo aparece y cómo resolverlo.
Los errores de negocio traen un code estable en el cuerpo. Úsalo en tu lógica en lugar
del message, que puede cambiar. La estructura del error está en
convenciones.
const res = await fetch(url, opciones);if (!res.ok) { const error = await res.json(); switch (error.code) { case 'HALLAZGOS_PENDIENTES': return mostrar('Justifica los hallazgos pendientes antes de certificar.'); case 'DOCUMENTO_NO_LISTO': return reintentarEnUnosSegundos(); default: throw new Error(`${error.statusCode}: ${error.message}`); }}
Solo en el alta obsoleta POST /v1/avaluos (no la uses; da de alta con POST /v1/avaluos/procesar),
una institution o property_type que no existe en el catálogo responde 422sin code,
con el mensaje institution 'X' no existe en el catálogo o property_type 'X' no existe en el catálogo.
La evaluación no arranca sola: cuando document.puede_evaluar sea true, lánzala con POST /v1/avaluos/{folio}/evaluar y certifica cuando latest_evaluation.estado sea completed.
SIN_HASH
409
No hay huella del documento que certificar.
Vuelve a subir el PDF; si persiste, repórtalo.
EVALUACION_NO_COMPLETADA
409
Faltan etapas por terminar.
Espera a latest_evaluation.estado: completed.
CRITICOS_PENDIENTES
409
Hay hallazgos críticos sin justificar.
Justifícalos o corrige el PDF.
HALLAZGOS_PENDIENTES
409
Hay hallazgos sin justificar, de cualquier severidad.
Justifícalos o corrige el PDF.
DOCUMENTO_NO_LISTO y DOCUMENTO_CON_ERRORES también pueden aparecer al certificar.
Un valor fuera de rango o de otro tipo responde 422 sin code, con mensajes como
no puede ser mayor que 50 o 'mercado.radio_km_default' espera un número.