Verifications
A verification represents a single identity verification request. It captures the expected person details, address, and document information, tracks the document upload and processing pipeline, and records the final decision.
Lifecycle Overview
Creating a Verification
A verification is created with expected data — the information you believe to be true about the person being verified. This includes:
- Person details — first name, last name, date of birth
- Address details — street, city, state, postal code, country
- Document expectations — expected document types, numbers, and issuing countries
- Vendor metadata — optional
vendor_referenceandvendor_statefor your internal tracking
Once created, the verification is in Started status. The response includes a url and qr_code that can be used to direct the end user to the verification widget.
Expected Data vs Extracted Data
| Concept | Description |
|---|---|
| Expected data | What you submit when creating the verification — the information the system should validate against |
| Extracted data | What OCR technology reads from the uploaded document images |
The validation rules compare extracted data against expected data to determine matches and discrepancies.
Uploading Documents
Before a verification can be submitted, the required documents must be uploaded. Documents can be uploaded:
- Via the API — Direct upload using base64-encoded images
- Via the end-user widget — The embeddable SPA flow guides the user through document capture
Each document type (photo ID, proof of address, selfie) can have at most one document per verification. Documents are uploaded in Uploaded status and progress through the pipeline.
See the Documents section for detailed information.
Submitting a Verification
Once all required documents are uploaded, the verification must be submitted to trigger the processing pipeline:
- Documents are processed by the extraction pipeline
- Extracted data is compared against expected data using validation rules
- The system makes an automated decision (approved, rejected, or double-check)
Automated Processing Pipeline
Verification Actions
Once a verification is created, the following actions are available depending on its current status:
Approve
Manually approve a verification. Typically used when a verification is in Double Check status and a reviewer has confirmed the identity.
Available statuses: Submitted, Double Check
Reject
Manually reject a verification. Requires a reason or comment explaining the rejection.
Available statuses: Submitted, Double Check
Hold
Pause a verification. Useful when waiting for additional information.
Available statuses: Started, Submitted, Double Check
Resume
Resume a verification that was placed on hold. The verification returns to its previous status.
Available statuses: Hold
Cancel
Cancel a verification. Once canceled, a verification cannot be resumed or resubmitted.
Available statuses: Started, Submitted, Hold, Double Check
Resubmit
Resubmit a verification for processing. Used when the end user needs to provide new documents after a rejection.
Available statuses: Rejected
History
Every status change is recorded in the verification history. Each history entry includes:
- Previous status
- New status
- User who triggered the change
- Optional comment
- Timestamp
Common Scenarios
Standard Flow
- Create verification with expected data
- Upload photo ID and proof of address documents
- Submit verification
- Wait for automated processing
- Retrieve results
Double Check Flow
- Follow standard flow steps 1-3
- Automated processing flags documents for manual review
- Reviewer examines documents and extracted data
- Reviewer approves or rejects the verification
Best Practices
- Set vendor references to correlate verifications with your internal records
- Upload high-quality images for best OCR results
- Monitor webhook events to track verification state changes asynchronously
- Use the sandbox environment for integration testing before going live