Saltar al contenido principal

Primera verificacion

Es momento de correr una verificacion real con el widget que embebiste en el paso anterior.

Que vas a testear

Un flujo de usuario completo:

  1. El usuario toca Comenzar
  2. El browser pide permiso de camara
  3. El usuario fotografia el frente del documento
  4. El usuario fotografia el reverso (solo si require-doc-back="true")
  5. El usuario se toma una selfie
  6. El widget corre controles de calidad, sube a Cloudflare R2, llama a la API
  7. Vos recibis un evento veridia:complete con el verificationId
  8. El veredicto (approved / review / rejected) se computa en ~2 segundos

Corrolo

Abri la pagina donde embebiste el widget. Usa un dispositivo real con camara — el widget es mobile-first pero tambien funciona en laptops.

:::tip Testing local Si estas testeando en localhost, agrega localhost (o 127.0.0.1) a los allowed origins de tu test API key en el dashboard. Sin eso, el widget rechaza cargar. :::

Tips para la captura del documento

  • Apoya el documento plano en una superficie con contraste (evita blanco sobre blanco)
  • No cubras las esquinas con los dedos
  • Evita luz directa reflejando en el documento (se va a disparar el flag heavy_glare)
  • Asegurate que el documento este completamente en el frame
  • Manten el telefono firme — las fotos borrosas las rechaza el control de calidad multi-signal

Tips para la selfie

  • Mira directamente a la camara
  • Buena iluminacion uniforme (sin contraluz)
  • Sacate lentes oscuros, gorros que cubran la cara
  • Quedate quieto durante la captura

Inspecciona el payload del evento

Agrega un console.log listener para ver exactamente que emite el widget:

<script>
document.querySelector('veridia-widget')
.addEventListener('veridia:complete', (e) => {
console.log('verificacion completa:', e.detail);
});

document.querySelector('veridia-widget')
.addEventListener('veridia:error', (e) => {
console.error('error de verificacion:', e.detail);
});
</script>

Cuando el usuario termina, tu consola va a mostrar algo asi:

{
"verificationId": "vf_AG07CDWRRFQV4T05ZXG2",
"userRef": "customer-12345",
"status": "queued"
}

El verificationId es lo que vas a usar para obtener el resultado final via GET /v1/verify/:id o lo que llega en tu webhook.

Vela en tu dashboard

Anda al dashboard de Veridia y abri Review queue. Vas a ver tu verificacion con:

  • Info del submitter (user ref, timestamp de envio)
  • Desglose de scores (confianza general, OCR, face match, liveness, calidad de doc)
  • Flags (ej. heavy_glare, low_face_match)
  • El veredicto final

Hace click en una verificacion para ver el breakdown completo y las imagenes capturadas.

Que pasa detras de escena

Cuando el widget llama a la API en submit, este pipeline se ejecuta:

PasoDondeQue
1BrowserControles de calidad (Laplacian, Tenengrad, Brenner)
2BrowserUpload directo a Cloudflare R2 (presigned URL)
3WorkerOCR via Workers AI — extrae nombre, numero de doc, fechas
4WorkerDespacha al backend con toda la data extraida
5BackendFace match (insightface buffalo_s)
6BackendScoring de liveness
7BackendCalcula score ponderado de confianza
8BackendDetermina veredicto: approved / review / rejected
9BackendPersiste a MySQL con audit trail
10BackendDispara webhook (si esta configurado)

Latencia end-to-end: ~2.0 a 2.7 segundos para una verificacion tipica.

Que significa el veredicto

VeredictoConfianzaQue deberias hacer
approvedScore alto, todas las senales pasanConfiar en el usuario, completar onboarding
reviewScore medio, algunos flags levantadosEnviar a tu cola de revision manual
rejectedScore bajo, fallas durasBloquear, pedir al usuario que reintente, o escalar

Errores comunes en esta etapa

ErrorCausa probableFix
errorInvalidKeyAPI key revocada o test key en produccionVerifica la key en tu dashboard
errorRateLimitedMuchas requests en poca ventanaAgrega throttling de tu lado
errorInsufficientCreditsEl tenant se quedo sin creditosTop up en el dashboard o contacta soporte
errorBlurryCalidad de imagen muy bajaEl usuario reintenta (el widget lo maneja automaticamente)
errorNoFaceCara no detectada en la selfieEl usuario reintenta con mejor framing
errorUploadFalla de red o R2 inaccesibleEl widget reintenta automaticamente

Proximo paso

Tenes un resultado de verificacion. Ahora aprende las tres formas de consumirlo.

Paso 3: Manejando resultados →