Skip to main content

Visão geral

Sessões biométricas incorporadas são geridas de ponta a ponta pela Gu1. Quando o usuário conclui a captura na UI hospedada, a Gu1 persiste a sessão, aplica as políticas da organização (limiares de face match, cruzamento entre entidades, billing) e envia webhooks com o resultado da sessão. Sua integração deve usar payload.status como desfecho biométrico — o mesmo campo retornado por GET /api/kyc/biometric/sessions/:id. Dois canais de entrega:
  1. Webhooks da organização — inscreva-se em biometric.session_* em configuração de webhooks (todas as transições de status).
  2. webhookUrl por request — URL HTTPS opcional em POST /api/kyc/biometric/sessions; a Gu1 faz POST em desfechos terminais de captura (approved, rejected, abandoned, expired). Cancelamento manual via API dispara apenas webhooks da organização.

Tipos de evento

Sobre o payload

Mesma envoltória externa dos eventos KYC:
O payload interno é a linha da sessão biométrica na Gu1 (mesmo formato da API REST).

Campos do payload

  • payload.status — Status da sessão: pending, in_progress, approved, rejected, abandoned, cancelled, expired.
  • payload.rejectionCode / payload.rejectionMessage — Quando status é rejected (ex.: FACE_MATCH_SCORE_LOW, CROSS_ENTITY, CAPTURE_DECLINED).
  • payload.modeface_match (liveness + comparação com retrato do KYC).
  • payload.sessionUrl — URL de captura enquanto a sessão está ativa.
  • payload.decision — Detalhe técnico da captura (scores, chaves de mídia). Imagens via GET /api/kyc/biometric/sessions/:id/media?key=.
  • payload.entity — Snapshot da entidade pessoa (id, externalId, name, type).

Exemplo: sessão criada

Exemplo: em progresso

Exemplo: aprovada

Exemplo: rejeitada

Códigos comuns de rejectionCode

webhookUrl por request

  • Mesmos nomes de event e formato de payload dos webhooks da organização.
  • Assinatura HMAC em X-Webhook-Signature com o webhook secret KYC configurado.
  • Headers adicionais: X-Webhook-Event, X-Webhook-ID, X-Webhook-Timestamp.
Ver verificação de assinatura.
Cancelamento manual (POST /api/kyc/biometric/sessions/:id/cancel) emite biometric.session_cancelled apenas nos webhooks da organização; não faz POST ao webhookUrl do request.