Verifa collects over 150 fraud signals during the capture and verification
process. These signals feed into the risk_assessment check, which produces a
composite risk score (0–100) that can route sessions to approval, review, or
rejection.
Signals come from three sources:
Collected during the capture flow by analyzing how the user interacts with the verification UI.
Client-side device fingerprinting and automation detection.
Server-side analysis of the request origin and network behavior.
Analysis of uploaded ID document images for tampering and quality issues.
Cross-session duplicate detection via hashed identity links.
Validates that the client-side signal payload hasn’t been tampered with.
AI-generated face detection.
Collected by the mobile SDK (not available in web capture).
All triggered signals are aggregated into a composite risk score by the
risk_assessment check.
Certain signals trigger an automatic hard block regardless of the composite score:
bot_detected (when configured as block)virtual_camera (when configured as block)camera_injection_detected (when configured as block)integrity_checksum_mismatch (when configured as block)Each signal can be configured with one of three actions:
Configure signal actions per organization to tune risk sensitivity.
The risk_assessment check is auto-injected into every workflow. You can use
conditional nodes to route based on the risk level:
risk_assessment and duplicate_detection checks