Primeira verificacao
Hora de executar uma verificacao real com o widget que voce embedou no passo anterior.
O que voce vai testar
Um fluxo de usuario completo:
- O usuario clica em Comecar
- O browser pede permissao de camera
- O usuario fotografa a frente do documento
- O usuario fotografa o verso (apenas se
require-doc-back="true") - O usuario tira uma selfie
- O widget executa controles de qualidade, faz upload para Cloudflare R2, chama a API
- Voce recebe um evento
veridia:completecom overificationId - O veredicto (
approved/review/rejected) e computado em ~2 segundos
Execute
Abra a pagina onde voce embedou o widget. Use um dispositivo real com camera — o widget e mobile-first mas tambem funciona em laptops.
:::tip Testing local
Se voce esta testando em localhost, adicione localhost (ou 127.0.0.1) aos allowed origins da sua test API key no dashboard. Sem isso, o widget recusa carregar.
:::
Dicas para a captura do documento
- Apoie o documento plano numa superficie com contraste (evite branco sobre branco)
- Nao cubra os cantos com os dedos
- Evite luz direta refletindo no documento (vai disparar o flag heavy_glare)
- Garanta que o documento esteja totalmente no frame
- Mantenha o celular firme — fotos borradas sao rejeitadas pelo controle de qualidade multi-signal
Dicas para a selfie
- Olhe diretamente para a camera
- Boa iluminacao uniforme (sem contraluz)
- Tire oculos escuros, chapeus que cubram o rosto
- Fique parado durante a captura
Inspecione o payload do evento
Adicione um console.log listener para ver exatamente o que o widget emite:
<script>
document.querySelector('veridia-widget')
.addEventListener('veridia:complete', (e) => {
console.log('verificacao completa:', e.detail);
});
document.querySelector('veridia-widget')
.addEventListener('veridia:error', (e) => {
console.error('erro de verificacao:', e.detail);
});
</script>
Quando o usuario termina, seu console vai mostrar algo assim:
{
"verificationId": "vf_AG07CDWRRFQV4T05ZXG2",
"userRef": "customer-12345",
"status": "queued"
}
O verificationId e o que voce vai usar para obter o resultado final via GET /v1/verify/:id ou o que chega no seu webhook.
Veja no seu dashboard
Va ao dashboard Veridia e abra Review queue. Voce vai ver sua verificacao com:
- Info do submitter (user ref, timestamp de envio)
- Detalhamento de scores (confianca geral, OCR, face match, liveness, qualidade de doc)
- Flags (ex:
heavy_glare,low_face_match) - O veredicto final
Clique numa verificacao para ver o breakdown completo e as imagens capturadas.
O que acontece nos bastidores
Quando o widget chama a API no submit, este pipeline e executado:
| Passo | Onde | O que |
|---|---|---|
| 1 | Browser | Controles de qualidade (Laplacian, Tenengrad, Brenner) |
| 2 | Browser | Upload direto para Cloudflare R2 (presigned URL) |
| 3 | Worker | OCR via Workers AI — extrai nome, numero do doc, datas |
| 4 | Worker | Despacha ao backend com toda a data extraida |
| 5 | Backend | Face match (insightface buffalo_s) |
| 6 | Backend | Scoring de liveness |
| 7 | Backend | Calcula score ponderado de confianca |
| 8 | Backend | Determina veredicto: approved / review / rejected |
| 9 | Backend | Persiste no MySQL com audit trail |
| 10 | Backend | Dispara webhook (se configurado) |
Latencia end-to-end: ~2.0 a 2.7 segundos para uma verificacao tipica.
O que significa o veredicto
| Veredicto | Confianca | O que voce deve fazer |
|---|---|---|
approved | Score alto, todos os sinais passam | Confiar no usuario, completar onboarding |
review | Score medio, alguns flags levantados | Enviar para sua fila de revisao manual |
rejected | Score baixo, falhas duras | Bloquear, pedir ao usuario para tentar de novo, ou escalar |
Erros comuns nesta etapa
| Erro | Causa provavel | Fix |
|---|---|---|
errorInvalidKey | API key revogada ou test key em producao | Verifique a key no seu dashboard |
errorRateLimited | Muitas requests em pouca janela | Adicione throttling do seu lado |
errorInsufficientCredits | Tenant ficou sem creditos | Top up no dashboard ou contate suporte |
errorBlurry | Qualidade de imagem muito baixa | O usuario tenta de novo (o widget gerencia automaticamente) |
errorNoFace | Rosto nao detectado na selfie | O usuario tenta de novo com melhor framing |
errorUpload | Falha de rede ou R2 inacessivel | O widget tenta de novo automaticamente |
Proximo passo
Voce tem um resultado de verificacao. Agora aprenda as tres formas de consumi-lo.