Ubiqs Insurtech
Mutual SegurosINS
Cumplimiento

Catálogo de errores

Toda respuesta de error sigue un esquema unificado: ok=false + error.{type, message, details}. Esta sección documenta los 7 tipos tipificados, los códigos del INS y los códigos específicos de la pasarela de pago.

7 tipos5 códigos INS7 códigos pago

Tipos de error tipificados

400
VALIDATION_ERROR
ReintentableAPI Ubiqs

Campos obligatorios faltantes o con formato inválido.

UX recomendado

Resaltar campos faltantes/inválidos en el formulario.

Resolución

  1. Revisar details.missing para identificar campos faltantes
  2. Revisar details.invalid para campos con formato incorrecto
  3. Corregir los datos y reintentar
Ejemplojson
{
  "ok": false,
  "error": {
    "type": "VALIDATION_ERROR",
    "message": "Campos obligatorios faltantes o inválidos",
    "details": {
      "missing": ["client.idNumber", "contact.email"],
      "invalid": ["client.birthDate"]
    }
  }
}
400
CONSENT_REQUIRED
ReintentableAPI Ubiqs

Intento de emisión (EMI) sin consentimiento informado.

UX recomendado

Regresar a la pantalla de consentimiento informado.

Resolución

  1. Presentar el texto de consentimiento informado al cliente
  2. Obtener aceptación explícita
  3. Enviar consent.accepted=true, consent.version y consent.timestamp en el request EMI
Ejemplojson
{
  "ok": false,
  "error": {
    "type": "CONSENT_REQUIRED",
    "message": "La emisión requiere consentimiento informado del cliente",
    "details": {
      "requiredFields": ["consent.accepted", "consent.version", "consent.timestamp"],
      "consentVersion": "cyberpro-consent-v1"
    }
  }
}
400
LOCATION_AMBIGUOUS
ReintentableAPI Ubiqs

Múltiples coincidencias al resolver ubicación por nombres.

UX recomendado

Mostrar selector con las opciones de details.candidates.

Resolución

  1. Presentar las opciones de candidates al usuario
  2. Reintentar usando los códigos del candidato seleccionado (más preciso que nombres)
502
INS_ERROR
No reintentableAPI INS

El INS rechazó la solicitud.

UX recomendado

Mostrar mensaje amigable; log interno para soporte.

Resolución

  1. Revisar details.detail para entender la causa
  2. Corregir los datos según el mensaje del INS
  3. Si persiste, contactar soporte
Ejemplojson
{
  "ok": false,
  "error": {
    "type": "INS_ERROR",
    "message": "El INS rechazó la solicitud",
    "details": { "status": 400, "codigoEstado": "99", "detail": "El número de identificación no corresponde al tipo indicado" }
  }
}
401
UNAUTHORIZED
No reintentableAPI Ubiqs

API key inválida o no proporcionada.

UX recomendado

Error de configuración interna — no mostrar al usuario final.

Resolución

  1. Verificar que el header x-api-key esté incluido en el request
  2. Confirmar que la clave corresponde al ambiente correcto
503
NETWORK_ERROR
AutoAPI Ubiqs

Error de conectividad con el servicio del INS.

UX recomendado

Servicio temporalmente no disponible, intente nuevamente.

Resolución

  1. Reintentar después de 5 segundos (máximo 2 reintentos automáticos)
  2. Si persiste >15 min, contactar soporte
504
UPSTREAM_TIMEOUT
AutoAPI Ubiqs

El INS no respondió dentro del tiempo esperado (>15s).

UX recomendado

La solicitud tardó más de lo esperado, intente nuevamente.

Resolución

  1. Reintentar después de 10 segundos (máximo 1 reintento)
  2. Si persiste, sugerir intentar más tarde

Códigos del INS (codigoEstado)

Códigos retornados por la API del INS y su mapeo a la API Ubiqs.

codigoEstadoSignificadoMapeo UbiqsAcción
00Operación exitosaok:trueProcesar respuesta normalmente
2Deuda pendiente de aplicar (asíncrono)ok:true (estado intermedio)Consultar DEUDA_ESTADO con consecutivoDeuda
98Solicitud rechazada (pago declinado)INS_ERRORVer tabla de pagos para detalle por escenario
99Error en datos enviadosINS_ERRORRevisar detail y corregir datos
500Error interno del servidor INSNETWORK_ERROR / INS_ERRORReintentar; si persiste, escalar

Respuestas del pago (cargo a tarjeta)

Escenarios cubiertos por la matriz PAGO con respuesta normalizada al cliente.

EscenarioCodEstadoEsAprobadaMensajeAcción recomendada
Pago satisfactorio001APPROVED (auth#)Continuar flujo → aplicar deuda
Tarjeta declinada980DECLINADASolicitar otra tarjeta o método de pago
Cuenta inválida980CUENTA INVALIDAVerificar datos de la tarjeta
Fondos insuficientes980FONDOS INSUFICIENTESInformar al cliente; sugerir otra tarjeta
Monto límite excedido980MONTO LIMITE EXCEDIDOReducir monto o usar otra tarjeta
Transacción inválida980TRANSACCION INVALIDAReintentar o escalar a soporte
Timeout del gateway500HTTP 500Reintentar (máximo 1 vez)