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
45 countries with algorithmic validation. ICAO 9303 MRZ. PDF417 barcode decoding.
Fraud Prevention
7 cross-referencing layers, recapture detection, LLM-powered authenticity analysis, 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 39 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. Every inconsistency is flagged.
AI-Powered Authenticity
Vision model analyzes document layout, security features, fonts, and color consistency against known templates. Detects screen photos, printout recaptures, and digital manipulation.
Tier availability
| Feature | Minimum Tier | Credits |
|---|---|---|
| Age Verification (liveness only) | Pro ($99/mo) | 10 per verification |
| Age Verification (full) | Pro ($99/mo) | 20 per verification |
| Identity Verification | Business ($349/mo) | 25 per verification |
Age Verification
POST /v1/verification/age
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 vision AI (child/teen/adult classification) | 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 | boolean | Whether the user is under 18 |
confidence | float | Confidence score (0.0-1.0) |
method | string | Method used: document, biometric, or combined |
document_type | string | Detected document type |
document_country | string | ISO 3166-1 alpha-2 country code |
biometric_age | integer | Age estimated from selfie (if provided) |
document_age | integer | Age from document DOB (if provided) |
document.ocr_confidence | integer | OCR confidence percentage (0-100) |
document.mrz_valid | boolean | Whether MRZ check digits passed (if MRZ present) |
document.document_number_valid | boolean | Whether document number passed algorithmic validation |
document.expired | boolean | Whether the document has expired |
credits_used | integer | 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 — Vision AI age bracket classification (fallback).
Supported documents
| Document Type | Coverage |
|---|---|
| Passport | All ICAO-compliant passports worldwide (MRZ validated) |
| National ID card | All countries with MRZ-equipped cards + 45 countries with document number validation |
| Driver’s license | All countries via OCR + US/Canada via PDF417 barcode |
| Residence permit | Via OCR text extraction |
Identity Verification
POST /v1/verification/identity
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 45 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 authenticity | AI vision analysis of layout, security features, fonts, colors, and photo integration |
| Recapture detection | Detects photos of screens (moire patterns), printouts, and photo-of-photo attacks |
| 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 as tampering |
| 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) |
Request
Response
Response fields
| Field | Type | Description |
|---|---|---|
verified | boolean | All checks passed |
match_score | float | Face match score (0.0-1.0) |
liveness_passed | boolean | Liveness check passed |
document_authenticated | boolean | Document passed authenticity checks |
estimated_age | integer | Age from document DOB |
is_minor | boolean | Under 18 |
confidence | float | Overall confidence (0.0-1.0) |
document_type | string | Detected document type |
document_country | string | ISO 3166-1 alpha-2 country code |
flags | array | Warning flags (e.g., low_ocr_confidence, geographic_inconsistency) |
checks | object | Individual check results — see below |
failure_reasons | array | Human-readable reasons for failure (empty if verified) |
credits_used | integer | Credits consumed |
Checks object
| Field | Type | Description |
|---|---|---|
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 | boolean | null | Document number passed algorithmic validation |
document_expired | boolean | Document expiry check |
face_match | boolean | Face on document matches selfie |
liveness | boolean | Liveness detection passed |
recapture | string | "none", "screen", "printout", or "photo_of_photo" |
authenticity | object | AI-powered document authenticity analysis |
barcode | object | null | PDF417/barcode data (US/CA licenses) |
cross_references_passed | boolean | All cross-referencing checks passed |
Verification outcomes
| Status | Meaning | Examples |
|---|---|---|
verified | All checks passed | Valid document, face match, liveness passed |
failed | Hard failure — definitive fraud signal | Liveness failed, face mismatch, recapture detected |
needs_review | Soft failure — human review recommended | Low OCR confidence, document expired, name mismatch between MRZ and printed text |
Integration patterns
Age gate on sign-up
Parental consent flow (COPPA)
Moderator/admin verification
Error handling
Verification errors use theVRF_9xxx code range:
| Code | HTTP | Description |
|---|---|---|
VRF_9001 | 400 | Document image is required |
VRF_9002 | 400 | Document image is unreadable or too low quality |
VRF_9003 | 400 | Unsupported document type |
VRF_9004 | 400 | Selfie image is required for liveness check |
VRF_9005 | 400 | Face not detected in selfie |
VRF_9006 | 400 | Liveness check failed |
VRF_9007 | 500 | Verification service error (safe to retry) |
VRF_9008 | 403 | Age verification not available on your plan (requires Pro) |
VRF_9009 | 403 | Identity verification not available on your plan (requires Business) |
Data handling
Next steps
Document Checks
Deep dive into 45-country document validation, MRZ parsing, and barcode reading.
Liveness Detection
How visual liveness analysis prevents spoofing attacks.
Fraud Prevention
Multi-layer cross-referencing, recapture detection, and authenticity analysis.