Skip to main content

Resumen

Las sesiones biométricas embebidas las gestiona Gu1 de punta a punta. Cuando el usuario termina la captura en la UI hospedada, Gu1 persiste la sesión, aplica las políticas de tu organización (umbrales de face match, cruces entre entidades, billing) y envía webhooks con el resultado de la sesión. Tu integración debe usar payload.status como veredicto biométrico — el mismo campo que devuelve GET /api/kyc/biometric/sessions/:id. Dos canales de entrega:
  1. Webhooks de organización — suscribite a biometric.session_* en configuración de webhooks (todas las transiciones de estado).
  2. webhookUrl por request — URL HTTPS opcional en POST /api/kyc/biometric/sessions; Gu1 hace POST en resultados terminales de captura (approved, rejected, abandoned, expired). Un cancel manual por API solo dispara webhooks de organización.

Tipos de evento

Sobre el payload

Misma envoltura externa que eventos KYC:
El payload interno es la fila de sesión biométrica en Gu1 (misma forma que la API REST).

Campos del payload

  • payload.status — Estado de la sesión: pending, in_progress, approved, rejected, abandoned, cancelled, expired.
  • payload.rejectionCode / payload.rejectionMessage — Cuando status es rejected (p. ej. FACE_MATCH_SCORE_LOW, CROSS_ENTITY, CAPTURE_DECLINED).
  • payload.modeface_match (liveness + comparación con retrato del KYC).
  • payload.sessionUrl — URL de captura mientras la sesión está activa.
  • payload.decision — Detalle técnico de la captura (scores, claves de media). Imágenes vía GET /api/kyc/biometric/sessions/:id/media?key=.
  • payload.entity — Snapshot de la entidad persona (id, externalId, name, type).

Ejemplo: sesión creada

Ejemplo: en progreso

Ejemplo: aprobada

Ejemplo: rechazada

Códigos frecuentes de rejectionCode

webhookUrl por request

  • Mismo event y forma de payload que los webhooks de organización.
  • Firma HMAC en X-Webhook-Signature con el webhook secret KYC configurado.
  • Headers adicionales: X-Webhook-Event, X-Webhook-ID, X-Webhook-Timestamp.
Ver verificación de firma.
El cancel manual (POST /api/kyc/biometric/sessions/:id/cancel) emite biometric.session_cancelled solo en webhooks de organización; no hace POST al webhookUrl del request.