Production-grade age and identity verification with document intelligence, biometric matching, liveness detection, and multi-layer fraud prevention, covering 34 countries.
Most verification providers give you OCR and a face match. Tuteliq cross-references every data source on the document against every other , MRZ check digits, barcode data, OCR text, front vs. back, document vs. selfie, and flags any inconsistency as potential tampering. This catches forgeries that pass single-layer checks.
Age Verification
Confirm user age via document analysis, biometric estimation, or both.
Identity Verification
Full identity confirmation with document authentication, face matching, liveness detection, and fraud prevention.
Document Checks
34 countries with algorithmic validation. ICAO 9303 MRZ. PDF417 barcode decoding.
Fraud Prevention
Cross-referencing layers, MRZ check-digit validation, document type consistency, and IP geolocation checks.
What makes Tuteliq different
45-Country Document Validation
Algorithmic check digit validation for CPF, personnummer, Aadhaar, Codice Fiscale, CURP, SSN, and 28 more. Not just format checks, full mathematical verification.
7-Layer Cross-Referencing
MRZ vs. OCR. Barcode vs. OCR. Front vs. back. Document vs. selfie. Declared type vs. detected type. IP vs. document country. OCR confidence gating.
Deterministic Document Validation
ICAO 9303 MRZ check digits, PDF417/AAMVA barcode decoding and OCR cross-referencing validate the document. No image is sent to any language model.
Tier availability
Feature
Minimum Tier
Credits
Assure ($499/mo)
10 (Liveness Only) / 20 (Complete)
25 per verification
POST /api/v1/verify/age/submit . Verify a user's age through document analysis, biometric age estimation, or both. Returns a verified age range, confidence score, and detailed document intelligence.
Verification methods
Method
How it works
Best for
Document
Extracts DOB from government ID via OCR, MRZ parsing, and barcode decoding
High-assurance age gates, parental consent
Biometric
Estimates age from a selfie using our own model on our infrastructure (no image sent to any language model)
Frictionless age checks, onboarding flows
Combined
Document + biometric with cross-reference, flags age inconsistencies > 10 years
Maximum assurance, verifies the document belongs to the person
Request
Response
Response fields
Field
Type
Description
verified
boolean
Whether age verification succeeded
estimated_age
integer
Best estimate of user's age
age_range
string
Tuteliq age bracket: under-10, 10-12, 13-15, or 14-17
is_minor
Whether the user is under 18
confidence
float
Confidence score (0.0–1.0)
method
Method used: document, biometric, or combined
document_type
Detected document type
document_country
ISO 3166-1 alpha-2 country code
biometric_age
Age estimated from selfie (if provided)
document_age
Age from document DOB (if provided)
document.ocr_confidence
OCR confidence percentage (0-100)
document.mrz_valid
Whether MRZ check digits passed (if MRZ present)
document.document_number_valid
Whether document number passed algorithmic validation
document.expired
Whether the document has expired
credits_used
Credits consumed
Age extraction sources
DOB is extracted from multiple sources and cross-referenced. Priority order:
- MRZ (Machine Readable Zone). Most reliable. ICAO 9303 check digit validated.
- PDF417 barcode, US/Canadian driver's licenses. AAMVA-encoded structured data.
- OCR labels. Text patterns like "Date of Birth:", "DOB:", date formats.
- Selfie estimation. Age bracket estimated by our own model (fallback).
When multiple sources disagree, the verification flags the inconsistency.
Supported documents
Document Type
Coverage
Passport
All ICAO-compliant passports worldwide (MRZ validated)
National ID card
All countries with MRZ-equipped cards + 34 countries with document number validation
Driver's license
All countries via OCR + US/Canada via PDF417 barcode
Residence permit
Via OCR text extraction
Documents must be a clear, well-lit photo in JPEG or PNG format. Maximum file size: 10 MB.
POST /api/v1/verify/identity/submit . Full identity verification combining document authentication, face matching, liveness detection, and multi-layer fraud prevention.
What it checks
Every identity verification runs all of these checks automatically:
Check
What it does
Document number validation
Algorithmic check digit verification for 34 countries (CPF, personnummer, Aadhaar, CURP, SSN, etc.)
MRZ validation
ICAO 9303 check digits on document number, DOB, expiry, and composite, catches any MRZ tampering
Document validation
Deterministic checks: MRZ check digits, PDF417/AAMVA decoding, OCR field cross-referencing
Face matching
128-dimensional descriptor comparison between document photo and live selfie
Liveness detection
Visual analysis: landmark motion, texture analysis, depth cues, cross-frame consistency
MRZ/OCR cross-referencing
Compares name, DOB, and document number between MRZ and printed text, flags mismatches
Front/back cross-referencing
Compares extracted data between document front and back sides
Barcode cross-referencing
Compares PDF417 barcode data against OCR and MRZ (US/CA licenses)
Document type consistency
Validates declared type matches MRZ-detected type (passport vs. ID card)
IP geolocation check
Flags geographic inconsistency between document country and request origin
OCR confidence gating
Flags low-confidence extractions as unreliable
Document expiry
Checks expiry from labels, MRZ, and barcodes
Age consistency
Cross-checks document age against selfie age estimate (flags > 10 year discrepancy)
All checks passed
match_score
Face match score (0.0–1.0)
liveness_passed
Liveness check passed
document_validated
Document passed deterministic validation checks
Age from document DOB
Under 18
Overall confidence (0.0–1.0)
flags
array
Warning flags (e.g., low_ocr_confidence, geographic_inconsistency)
checks
object
Individual check results, see below
failure_reasons
Human-readable reasons for failure (empty if verified)
Checks object
mrz_valid
boolean | null
MRZ check digits valid (null if no MRZ)
mrz_fields
object | null
Parsed MRZ fields with check-digit-validated data
document_number_valid
Document number passed algorithmic validation
document_expired
Document expiry check
face_match
Face on document matches selfie
liveness
Liveness detection passed
validation
Deterministic document validation results (MRZ check digits, barcode, OCR cross-checks)
barcode
PDF417/barcode data (US/CA licenses)
cross_references_passed
All cross-referencing checks passed
Verification outcomes
Status
Meaning
Examples
Valid document, face match, liveness passed
failed
Hard failure, definitive fraud signal
Liveness failed, face mismatch, document check failed
needs_review
Soft failure, human review recommended
Low OCR confidence, document expired, name mismatch
Integration patterns
Age gate on sign-up
Parental consent flow (COPPA)
Moderator/admin verification
Error handling
Verification-specific errors use the VRF_9xxx code range:
Code
HTTP
VRF_9001
400
Document image is required
VRF_9002
Document image is unreadable or too low quality
VRF_9003
Unsupported document type
VRF_9004
Selfie image is required for liveness check
VRF_9005
Face not detected in selfie
VRF_9006
Liveness check failed
VRF_9007
500
Verification service error (safe to retry)
VRF_9008
403
Age verification not available on your plan (requires Assure)
VRF_9009
Identity verification not available on your plan (requires Assure)
Data handling
Verification involves sensitive personal data. Tuteliq processes documents and selfies in real time and does not store images or extracted PII after the verification is complete. Only the verification result (age range, pass/fail) is retained. See the GDPR page for data handling details.
Deep dive into 45-country document validation, MRZ parsing, and barcode reading.
Liveness Detection
How visual liveness analysis prevents spoofing attacks.
Multi-layer cross-referencing, MRZ check-digit validation, and document type consistency checks.