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 usarpayload.status como desfecho biométrico — o mesmo campo retornado por GET /api/kyc/biometric/sessions/:id.
Dois canais de entrega:
- Webhooks da organização — inscreva-se em
biometric.session_*em configuração de webhooks (todas as transições de status). webhookUrlpor request — URL HTTPS opcional emPOST /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: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— Quandostatusérejected(ex.:FACE_MATCH_SCORE_LOW,CROSS_ENTITY,CAPTURE_DECLINED).payload.mode—face_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 viaGET /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
evente formato depayloaddos webhooks da organização. - Assinatura HMAC em
X-Webhook-Signaturecom o webhook secret KYC configurado. - Headers adicionais:
X-Webhook-Event,X-Webhook-ID,X-Webhook-Timestamp.
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.