Developers

Errores

Maneja errores de protocolo, autorización, dominio e idempotencia de forma segura.

Los errores HTTP usan un envelope estable:

{
  "error": {
    "code": "ERROR_CODE",
    "message": "causa_exacta",
    "details": {}
  }
}

code es la familia del error; message identifica la causa exacta y es el valor que conviene ramificar en tu código. details aporta contexto cuando existe (por ejemplo, los scopes que faltan).

Códigos HTTP

EstadoSignificadoAcción recomendada
400Request o JSON inválidoCorregir el request; no reintentar sin cambios.
401API key ausente o inválidaCorregir autenticación server-side.
403Scope insuficiente, origen no permitido o producto no habilitadoRevisar permisos; nunca degradar a ALLOW.
404Recurso del tenant no encontradoVerificar el identificador y el tenant.
409Conflicto de idempotencia o estadoNo cambiar la clave para ocultar un conflicto semántico.
422Precondición de dominio incumplidaCorregir estado o datos antes de reintentar.
500INTERNAL_ERROR o inconsistencia interna clasificadaNo asumir consentimiento ni autorización; reintentar con backoff sólo si es seguro.
503Una dependencia necesaria no está disponibleReintentar con backoff; no degradar el flujo.

Un DENY de negocio se entrega como HTTP 200 y es una decisión válida. Un error 5xx significa que Consensa no pudo producir o confirmar una decisión confiable; nunca lo conviertas en ALLOW.

RATE_LIMITED y AUTHORIZATION_STATE_UNAVAILABLE existen en el vocabulario de dominio, pero no se anuncian como responses de una operación Integration API v1 mientras el transporte actual no las emita.

Errores que vas a ver seguido

error.messageDóndeQué revisar
idempotency_key_requiredToda escritura con Idempotency-KeyFalta el header.
consent_api_scope_requiredCualquier operaciónerror.details.missingScopes dice cuál falta.
unsupported_identifierResolve y creación de sesionesSólo existen {cl,rut} y {email,email}.
customer_resolution_conflictResolveEl identifier ya está asociado a otro userReference.
verified_not_caller_controlledResolve y creación de sesionesverified no lo controla quien llama.
ORIGIN_NOT_ALLOWEDCreación de sesiones, canje del ticketEl origin no está en la lista del tenant, o tu página no corre en él.
CONFIG_NOT_PUBLISHEDMetadata y creación de sesionesEl Flow no tiene versión publicada utilizable.
REDEC_NOT_ENABLEDOperaciones REDECEl producto REDEC no está habilitado para tu tenant.
internal_consent_code_is_server_generatedOtorgamiento REDECLo genera Consensa; no lo envíes.

Reintentos

Reintenta timeouts, errores transitorios y respuestas 5xx con backoff y límite. En escrituras, conserva la misma Idempotency-Key y el mismo payload para el mismo comando semántico.

Una respuesta fallida, ausente o ambigua nunca equivale a consentimiento ni autorización. Para authorization/check y redec/accesses/authorize, continúa sólo ante un ALLOW o un authorized explícito.

Eventos del Web Component

El evento consensa:error contiene sólo interactionReference y un code sanitizado. Úsalo para feedback de interfaz; la investigación y reconciliación deben basarse en respuestas server-side y observabilidad autorizada.

En esta página