Resumo
Webhooks permitem receber notificações em tempo real when a KYC verification status changes. gu1 enviará automaticamente solicitações HTTP POST ao seu endpoint webhook configurado quando o status de uma validação atualiza.Por Que Usar Webhooks?
Atualizações em Tempo Real
Receba notificações instantâneas quando o status de verificação muda
Eficiente
Não precisa consultar a API repetidamente
Fluxos Automatizados
Atualiza automaticamente contas de usuário baseado nos resultados de verificação
Melhor UX
Notifique clientes imediatamente após verificação
Eventos de Webhook
gu1 envia webhooks para os seguintes eventos de validação KYC:| Tipo de Evento | Descrição | Quando Disparado |
|---|---|---|
kyc.validation_created | Sessão de validação criada | Quando você cria uma nova validação KYC |
kyc.validation_in_progress | Cliente iniciou verificação | Cliente começa o processo de verificação |
kyc.validation_approved | Verificação aprovada | Identidade verificada com sucesso |
kyc.validation_rejected | Verificação rejeitada | Verificação de identidade falhou |
kyc.validation_abandoned | Cliente abandonou o processo | Cliente saiu sem completar |
kyc.validation_expired | Sessão de validação expirou | Sessão expirou (tipicamente após 7 dias) |
Configurar Webhooks
Step 1: Configurar URL do Webhook
Configure a URL do seu webhook no painel da gu1:- Vá para Settings → Webhooks
- Adicione um novo endpoint webhook (e.g.,
https://yourapp.com/webhooks/kyc) - Inscreva-se em eventos KYC (
kyc.*) - Salve e ative o webhook
webhookUrl ao criar validações individuais.
Step 2: Criar um Endpoint Webhook
Crie um endpoint em sua aplicação para receber solicitações POST webhook:Step 3: Tornar Seu Endpoint Publicamente Acessível
Seu endpoint webhook deve ser:- Publicamente acessível via HTTPS
- Capaz de receber solicitações POST
- Retornar um código de status 200 para confirmar recepção
Para desenvolvimento local, use ferramentas como ngrok para criar uma URL pública que conecta ao seu servidor local.
Estrutura do Payload do Webhook
Todos os webhooks seguem esta estrutura padrão:Campos Comuns do Payload
Identificador único para este evento webhook
O tipo de evento (e.g.,
kyc.validation_approved)Timestamp ISO 8601 quando o evento ocorreu
Dados específicos do evento (veja abaixo para cada tipo de evento)
O ID de validação KYC na gu1
O ID da entidade (pessoa) sendo verificada
Informações da entidade incluindo seu
externalId para busca fácilStatus de validação atual:
pending, in_progress, approved, rejected, abandoned, expiredPayloads Específicos por Evento
kyc.validation_created
Enviado quando uma nova validação KYC é criada.kyc.validation_in_progress
Enviado quando um cliente inicia o processo de verificação.kyc.validation_approved
Enviado quando a verificação é concluída com sucesso.verifiedAt: Timestamp quando a verificação foi aprovadaextractedData: Informações pessoais extraídas do documentoverifiedFields: Array de campos que foram verificados com sucessowarnings: Array de avisos detectados durante a verificaçãodecision: Resultados de verificação (imagens/URLs removidas por segurança)
kyc.validation_rejected
Enviado quando a verificação falha.kyc.validation_abandoned
Enviado quando um cliente inicia mas não completa a verificação.kyc.validation_expired
Enviado quando uma sessão de validação expira sem conclusão.Melhores Práticas
Retornar 200 Rapidamente
Retornar 200 Rapidamente
Sempre retorne um código 200 o mais rápido possível para confirmar recepção. Processe o webhook assincronamente se necessário.
Lidar com Idempotência
Lidar com Idempotência
Você pode receber o mesmo webhook várias vezes. Use o
id campo para garantir que processa cada evento apenas uma vez.Use entity.externalId para Busca
Use entity.externalId para Busca
O webhook inclui
entity.externalId que é o ID que você forneceu ao criar a entidade. Use isto para buscar o cliente em seu banco de dados.Armazenar IDs de Validação
Armazenar IDs de Validação
Armazene o
validationId da gu1 em seu banco de dados. Isto permite consultar detalhes de validação depois se necessário.Lidar com Erros Graciosamente
Lidar com Erros Graciosamente
Se o processamento falhar, registre o erro mas ainda retorne 200 para prevenir retentativas. Armazene webhooks falhados para revisão manual.
Verificar Autenticidade do Webhook (Em Breve)
Verificar Autenticidade do Webhook (Em Breve)
Versões futuras incluirão assinaturas de webhook. Por enquanto, garanta que sua URL webhook seja privada e use HTTPS.
Testando Webhooks
Desenvolvimento Local
Use ngrok para expor seu servidor local:Fluxo de Testes
- Crie uma validação KYC de teste
- Seu endpoint webhook recebe
kyc.validation_created - Cliente completa verificação
- Seu endpoint webhook recebe
kyc.validation_approvedorkyc.validation_rejected
Solução de Problemas
Não Recebendo Webhooks
Não Recebendo Webhooks
Verifique estes itens:
- URL webhook é publicamente acessível via HTTPS
- Firewall permite solicitações POST recebidas
- Endpoint retorna código 200
- Webhook está configurado e ativo no painel da gu1
- Verifique logs do servidor por solicitações recebidas
Recebendo Webhooks Duplicados
Recebendo Webhooks Duplicados
Isto é normal. Implemente verificações de idempotência usando o
id campo para lidar com duplicados.Endpoint Webhook Expirando
Endpoint Webhook Expirando
Processe webhooks assincronamente. Retorne 200 imediatamente e lide com lógica de negócio em jobs em segundo plano.
Faltando extractedData
Faltando extractedData
extractedData and verifiedFields são incluídos apenas em kyc.validation_approved and kyc.validation_rejected eventos.