Skip to main content
Tuteliq’s fraud prevention doesn’t rely on a single signal. Every verification runs 7 independent cross-referencing layers that compare data from different sources on the same document. A forger must defeat all layers simultaneously — editing one field on the front of a document will be caught by mismatches against the MRZ, barcode, back side, or declared metadata.

Cross-referencing layers

1. MRZ vs. OCR text

When a document contains a Machine Readable Zone (passports, many ID cards), Tuteliq compares the MRZ-extracted fields against the OCR-extracted labels from the visible printed text. This is the highest-value fraud signal because the MRZ is protected by ICAO check digits that are difficult to recalculate correctly without specialized knowledge.

2. Barcode vs. OCR text

For US and Canadian driver’s licenses, the PDF417 barcode on the back encodes all personal data independently of the printed text. Most forgers only edit the visual side.

3. Document front vs. back

When both sides of a document are provided, Tuteliq extracts name and DOB from each side independently and compares them.

4. Document type consistency

If the user declares a document type (e.g., “passport”) but the MRZ indicates a different type (e.g., ID card with I< prefix), the mismatch is flagged.

5. IP vs. document country

Tuteliq compares the document’s country of origin against the geographic origin of the API request. A Brazilian CPF submitted from a Vietnamese IP address isn’t necessarily fraud, but it’s an anomaly worth flagging.
Geographic inconsistency is a soft signal — it generates a flag but doesn’t cause automatic failure. Diaspora populations, travelers, and VPN users can legitimately trigger this. It’s included in failure_reasons for your review logic to handle appropriately.

6. Age consistency (document vs. selfie)

When both a document and selfie are provided, Tuteliq compares the age calculated from the document’s DOB against the age estimated from the selfie by AgeNet, our own model. A discrepancy greater than 10 years is flagged.

7. OCR confidence gating

When OCR confidence falls below 60%, all extracted data is flagged as potentially unreliable. This prevents the system from making verification decisions based on garbage OCR output from blurry, damaged, or deliberately obscured documents.

Document validation

Document checks are deterministic. Extracted fields are validated against each other and against per-country norms, with no image sent to any model. Each check returns a pass or fail with a human-readable reason, so a reviewer can see which specific check failed rather than an opaque score.
Image-based forgery and recapture detection are not part of this pipeline. They were removed in July 2026 under a privacy requirement: no user image in the verification flow may reach a language model. If they return, they will run as a local model on our own infrastructure. Everything documented above is deterministic and involves no model inference on the document image.

Failure reasons

Every fraud signal generates a specific, human-readable failure reason:
These reasons are designed to be:
  • Actionable — your moderation team can understand exactly what went wrong
  • Specific — each reason identifies the exact data points that disagree
  • Auditable — included in the API response for compliance logging

Hard vs. soft failures

Use the failure_reasons array to build custom review workflows. For example, you might auto-reject failed results but route needs_review results to a human moderator queue with the specific reasons displayed.

Next steps

Document Checks

45-country document validation and MRZ parsing.

Liveness Detection

How visual liveness prevents spoofing attacks.