Person Verification
Verify an individual end-to-end with document capture, biometric liveness, face matching, database checks, and screening. This guide covers initiating a journey, redirecting the user, and interpreting structured results.What Person Verification checks
A Person Verification journey orchestrates up to six check types:- Identity Document Capture. Passport, national ID, or driving licence scanned with OCR.
- Biometric Liveness. Selfie with liveness detection to confirm the user is physically present.
- Face Match. Compares the selfie against the document photo.
- Document Authenticity. Tamper detection and fraud analysis on the captured document.
- Database Verification. Name, address, and date of birth validated against official databases.
- PEP/Sanctions Screening (WorldCheck). Screening on the individual across PEP, sanctions, adverse media, and watchlist databases.
Data tiers
Tier 1: Minimum
The bare minimum to initiate a Person Verification journey.Tier 2: Standard
Adds date of birth, contact details, and address. This is the recommended minimum for production.Tier 3: Full
Adds nationality, document type preference, and external reference for idempotency.Flow overview
1
Initiate the journey
Person Verification uses async Model 2 because the user must interact with the verification UI. Post to the Response:Store both tokens immediately:
/kyc/init endpoint.pull. Retrieves verification results.start. Constructs the verification URL for the user.
2
Construct the verification URL and redirect the user
3
User completes verification
The user goes through an interactive flow:
- Document selection. Choose a document type: passport, national ID, or driving licence.
- Document capture. Photograph the front (and back if applicable) of the document.
- Selfie capture. Take a selfie for biometric matching.
- Liveness check. Follow on-screen prompts to prove physical presence.
- Submission. Data is sent to Zenoo for processing.
4
Receive results
Option A: Webhook (recommended)
Configure a webhook endpoint to receiveverification.completed events.Option B: Poll for results
Option C: Both
Use webhooks for real-time notification and polling as a fallback for missed webhooks. This is the most resilient pattern.5
Interpret the results
A complete Person Verification response includes identity verification, document details, biometric results, screening, phone verification, email verification, address verification, and compliance metadata.
Decision matrix
A document
ATTENTION result means the document requires human review, not necessarily rejection. Check document.validation_result before making a pass/fail decision.Check dimension statuses
Identity statuses:Document statuses:
Biometric statuses:
Screening statuses:
Handling edge cases
journey.abandoned
The user closed the browser or navigated away before completing verification.journey.expired
The 24-hour URL expired before the user completed the flow.Document issues
If the document fails authenticity checks,document.validation_result will be ATTENTION or FAILED. Common causes:
- Blurry or glare-obscured image
- Expired document
- Tamper indicators detected
- Document type not supported for the selected country
document.validation_result before making a pass/fail decision. An ATTENTION result means the document requires human review, not necessarily rejection.
Server-side Person Verification (no user interaction)
For database lookups, phone verification, and screening that do not require document capture, use the sync endpoint directly.- Batch processing existing customer data
- Pre-screening before initiating a full journey
- Ongoing monitoring re-checks on known individuals
- Flows where you already have verified identity documents from another source
Next steps
Screening
Run standalone screening checks
Webhooks Guide
Set up real-time notifications
Sync vs Async
Understand when to use each execution model
Error Handling
Handle failures and retries