Skip to main content

Eventos soportados

Descripción general

Aquí se listan los sufijos de eventos que Verifik puede emitir. Tu endpoint recibe un type armado como ${projectFlow.type}_${sufijo} (en Smart Enroll suele ser onboarding, p. ej. onboarding_email_validation_created).

English: Supported Events.

Cuerpo HTTP

Cada envío es un POST HTTP a la URL del webhook del ProjectFlow con JSON:

{
"type": "onboarding_email_validation_created",
"object": { }
}
  • type — Cadena completa: ${projectFlow.type}_${sufijo}. Haz match con este valor.
  • object — Copia de la entidad principal. Los OTP se eliminan antes del envío.

Si el flujo no tiene webhook o la ruta no lo asocia, no se encola el evento.

Regla rápida

Las tablas muestran solo el sufijo. En logs verás el type con prefijo (onboarding_…, login_…, etc.).

Línea de tiempo típica de onboarding

El orden real depende del proyecto (pasos opcionales, omitir KYC, gateways). El diagrama resume un camino feliz habitual y dónde aparecen los eventos principales. Pasos paralelos (email vs teléfono) están simplificados.

flowchart TD
insert["Usuario inicia registro"] -->|"app_registration_created"| syncForm["sync: signUpForm"]
syncForm -->|"app_registration_sync_sign_up_form"| emailPhone["OTP email + teléfono"]
emailPhone -->|"email_validation_* / phone_validation_*"| syncMore["sync: instrucciones / documento / liveness"]
syncMore -->|"app_registration_sync_*"| doc["Validación de documento"]
doc -->|"document_validation_created"| lookup["Consulta fuente"]
lookup -->|"document_validation_source_lookup"| live["Liveness / biométrico"]
live -->|"biometric_validation_validated"| face["Comparación facial opcional"]
face -->|"face_verification_compare"| endSync["sync: end"]
endSync -->|"app_registration_completed"| done["COMPLETED"]
endSync -->|"app_registration_needs_manual_verification"| manual["Revisión manual"]
manual -->|"document_validation_manual_verification_required"| resolve["Resolver + sync end"]
resolve -->|"app_registration_completed"| done
skipPath["skipKYC permitido"] -->|"app_registration_completed_without_kyc"| done
Verificación manual vs completado

Si el registro o el documento está en NEEDS_MANUAL_VERIFICATION, un sync con paso end puede emitir app_registration_needs_manual_verification en lugar de app_registration_completed hasta desbloquear. Más tarde puede llegar completed tras otra acción (sync o adminOverride). El orden real en red puede variar en milisegundos.


Tablas de referencia (orden del ciclo de vida)

1. App registration (app_registration_*)

SufijoCuándo se emiteEntidad principal en objectNotas
app_registration_createdNuevo registro tras insert / initappRegistrationSuele incluir contexto projectFlow
app_registration_sync_<paso>sync con estado ONGOINGappRegistration<paso> en snake_case: ej. sign_up_form, instructions, skip_kyc
app_registration_completedsync end (u otra vía staff) cuando pasa requisitos y COMPLETEDappRegistration
app_registration_needs_manual_verificationsync end o reglas cuando hay bloqueo manualappRegistration
app_registration_completed_without_kycskipKYC permitido y estado COMPLETED_WITHOUT_KYCappRegistration
app_registration_failedsync end con FAILED cuando la completitud lo permiteappRegistration
app_registration_person_already_setIntento de persona cuando ya existeappRegistrationIncluye error, statusCode, message

2. Email (email_validation_*)

SufijoCuándo se emiteEntidad principalNotas
email_validation_createdPrimer envío de OTP por emailemailValidation
email_validation_resendReenvío con envío previo aún válidoemailValidation
email_validation_validatedOTP correcto (o demo válido)emailValidation
email_validation_failedEstado pasa a failedemailValidationPatrón email_validation_{status}
email_validation_otp_incorectOTP incorrectoemailValidationOrtografía incorect por compatibilidad API
email_validation_expiredSesión expirada (~10 min)emailValidation

3. Teléfono (phone_validation_*)

SufijoCuándo se emiteEntidad principalNotas
phone_validation_createdPrimer OTP (SMS/WhatsApp)phoneValidation
phone_validation_resendReenvío OTP misma validaciónphoneValidationPuede haber cooldown; force en API
phone_validation_validatedOTP correctophoneValidation
phone_validation_failedEstado failedphoneValidationPatrón phone_validation_{status}
phone_validation_otp_incorectOTP incorrectophoneValidation
phone_validation_expiredSesión expiradaphoneValidation

4. Documento (document_validation_*)

SufijoCuándo se emiteEntidad principalNotas
document_validation_createdInicia validación de documentodocumentValidationSuele incluir appRegistration, email, phone
document_validation_source_lookupConsulta a fuente externa / gobiernodocumentValidation
document_validation_data_source_errorRespuesta inválida o nombre no coincidedocumentValidationPuede incluir isSupported, infoValidationSupportedReason, notSupportedData
document_validation_manual_verification_requiredPasa a revisión manualdocumentValidationEl registro puede quedar NEEDS_MANUAL_VERIFICATION

5. Biométrico (biometric_validation_* y relacionados)

SufijoCuándo se emiteEntidad principalNotas
biometric_validation_newEstado newbiometricValidationPatrón biometric_validation_{status}
biometric_validation_validatedEstado validatedbiometricValidation
biometric_validation_failedEstado failedbiometricValidation
biometric_validation_created_personPersona creada desde flujo biométricobiometricValidation
biometric_validation_liveness_failedLiveness falla explícitamentebiometricValidation
biometrics_liveness_score_not_acceptableScore bajo el umbral del proyectobiometricValidationPuede incluir projectFlow

6. Rostro (face_verification_*)

SufijoCuándo se emiteEntidad principalNotas
face_verification_compareComparación terminada (selfie vs documento)appRegistrationIncluye compareResult

7. Información / antecedentes (information_validation_*)

SufijoCuándo se emiteEntidad principalNotas
information_validation_background_checkAntecedentes / listas completadosinformationValidation
information_validation_updatedSync desde flujo ligado a documentoinformationValidationDepende del contexto webhook en documento/flujo

Ejemplos de type completos

Sufijo (de las tablas)Ejemplo de type completo
email_validation_createdonboarding_email_validation_created
app_registration_sync_sign_up_formonboarding_app_registration_sync_sign_up_form
app_registration_completedonboarding_app_registration_completed

Páginas relacionadas