API-Only Integration
The API-only approach gives you complete control over the user experience. You build the capture UI, collect documents and selfies in your own application, and submit them to Verifa for processing.
When to use API-only
- You need full control over the user experience and camera flow
- You’re building for a non-standard platform (kiosk, desktop, embedded device)
- You’re integrating into an existing capture pipeline
- You want to pre-process images before submission
Flow overview
Step 1: Create a session
Save the id and extract the token from the capture_url path. The token is
used for the capture endpoints.
Step 2: Record consent
Before uploading any biometric data, record the user’s consent:
This records the timestamp, IP address, and consent version. Consent is required before documents or selfies can be submitted.
Step 3: Select document type
Supported document types: passport, drivers_license, national_id,
residence_permit.
Step 4: Upload documents
Upload the front side of the ID document:
Upload the back side (required for driver’s licenses and national IDs):
Document requirements
Documents are encrypted with AES-256-GCM immediately on receipt.
Step 5: Upload selfie
The selfie is compared against the photo on the ID document during face matching. For best results:
- Well-lit, front-facing photo
- No sunglasses or face coverings
- Neutral expression
- Minimum 480px resolution
Step 6: Submit additional data (optional)
If your workflow requires additional information:
Upload proof of address
Step 7: Complete capture
Signal that all data has been submitted and trigger workflow processing:
The session status moves to processing and the workflow engine begins
executing checks.
Step 8: Get the result
Via webhook
Via polling
Fraud signals
When using the API-only approach, you won’t get automatic client-side fraud signal collection (behavioral, device fingerprinting, etc.) unless you submit them manually:
Server-side signals (IP analysis, document forensics, duplicate detection) run automatically regardless of integration method.
Capture endpoint reference
All capture endpoints use the token path (/verify/\{token\}/...) and do not
require API key authentication — the token itself serves as the credential.
Error handling
Capture endpoints return 400 Bad Request for:
- Expired token (20-minute TTL)
- Session already completed
- Missing consent (must be recorded before document/selfie upload)
- File too large (>10 MB)
- Invalid file format
Related
- Web Capture Flow — Use the hosted capture UI instead
- Mobile SDK — Native capture for mobile apps
- Fraud Signals — What signals to submit for best detection
- Sessions — Full session lifecycle