Cross-device flow
Recommended integration path for mobile, web, and native apps. Create a session on your server, open the URL in a webview or QR code, get the result back via Server-Sent Events. Includes code samples for iOS (Swift), Android (Kotlin), React Native, Flutter, and web (iframe).
Age Verification
Confirm user age via document analysis, biometric estimation, or both. Direct-submission API for same-device flows.
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, deterministic document validation, 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.
No Image Ever Reaches a Model
Document validation is deterministic: ICAO 9303 check digits, PDF417/AAMVA decoding, and field cross-referencing. Age comes from our own model on our own infrastructure. No identity document or selfie is sent to a language model.
Tier availability
Age 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
Request
Response
Response fields
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 — AgeNet, our own convolutional age-estimation model, run on our infrastructure (fallback). No LLM and no third-party vision API touches a verification image.
Supported documents
Documents must be a clear, well-lit photo in JPEG or PNG format. Maximum file size: 10MB.
Identity Verification
POST /api/v1/verify/identity/submit
Full KYC identity verification combining document authentication, face matching, liveness detection, and country-specific national-ID validation. Assure plan and above.
What it checks
Every identity verification runs all of these checks automatically:Request
cURL
passport=@passport.jpg instead of id_front/id_back when verifying a passport. The liveness_token is issued by the liveness challenge step (see Liveness detection doc).
Response
null when not extractable (e.g. height_cm for national ID cards that don’t print height, or national_id for countries without a per-country extractor in this release).
Response fields
national_id object
Returned only when the document’s country has a per-country extractor in this release.
Countries with validators but no extractor yet (returns
null for national_id until extractors land): DEU, FRA, ITA, NLD, GBR, IRL, CHE, AUT, CZE, ROU, HRV, BGR, GRC, HUN, EST, LVA, LTU, ARG, MEX, CHL, COL, PER, ECU, URY, CAN, USA, JPN, KOR, ZAF, THA, TUR.
Verification outcomes
Integration patterns
Age gate on sign-up
Parental consent flow (COPPA)
Moderator/admin verification
Error handling
Verification errors use theVERIFY_11xxx code range:
cURL example error response
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, MRZ check-digit validation, and geographic consistency checks.