Document verification
Document verification confirms that a government-issued identity document is authentic, readable, and acceptable for your flow, and extracts the fields you need for onboarding and compliance.
What it does
- Guides the user to capture or upload the document
- Reads the contactless chip where the document carries one; see Chip reading
- Runs authenticity and quality checks (security features, tampering, copy / screen attacks, score thresholds); see Document capture checks
- Applies your country and document-type filters
- Enforces minimum age when configured
- Produces a step result (
PASSED,FAILED, or review statuses) with optional structuredreasons
Chip reading
Many modern identity documents carry a contactless chip: most current passports, and biometric national identity cards and driving licences in a growing number of countries. Where the presented document has one and the capture device can reach it, Zyphe reads the chip in addition to the printed document.
The chip matters because its contents are signed by the issuing authority. Fields read from it are not a transcription of what a camera saw, so a forged or altered printed surface does not survive comparison with them, and the portrait can be taken from the chip rather than from the photograph on the card.
Chip reading supplements the image pipeline, it does not replace it. A document is still checked for tampering, screen and paper capture, template match and MRZ consistency, because not every document carries a chip and not every capture context can reach one. Where no chip is present or it cannot be read, verification proceeds on the printed document and the checks below.
Document capture checks
When a document is captured or uploaded, the platform runs automated authenticity, quality, and data-consistency checks before accepting it. Failures surface as structured codes on the step result (data.dv.reasons[]); see Statuses and codes.
| Check | Description |
|---|---|
| Tamper check | Detects if the ID's main portrait was physically tampered. |
| ID alteration check | Validates whether there are any foreign objects on the document. |
| Alignment | Flags when the picture is badly aligned and the alignment/cropping correction could not produce a usable crop, and when the cropped capture is too close to the image edges. |
| Screen ID liveness | Confirms whether the document was captured from a screen rather than the physical plastic document. |
| Paper ID liveness | Confirms whether the document was captured from a printed paper rather than the physical plastic document. |
| Voided ID check | Flags IDs that have been intentionally voided, such as those with cut corners, punched holes, or visible void marks. These alterations indicate the ID is no longer valid for use. |
| Fake ID check | Searches for discrepancies in the document layout and other signs of fraud. |
| Template check | Checks whether the document layout matches a supported document template (text positions and presence of security features). |
| MRZ cross-check | Checks whether data extracted from the MRZ matches data extracted by OCR. |
| Expiration date validity | Confirms that the expiration date is valid. |
| Document type side cross-check | Checks front/back consistency of the document (for example, if both images are the front of the ID). |
| Issue date validity | Confirms that the document issue date is valid. |
| Barcode presence and format | When a barcode is expected on the document template, checks that it is present and matches the expected format. |
| Image quality check | Flags glares above a threshold and low-resolution images. |
These checks contribute to the document authenticity score and step outcome. You can tune the minimum acceptable document score and related filters in the flow builder.
Where it sits in a flow
Document verification is usually the first identity step. Pair it with liveness so you know a live person matches the document portrait. Other steps (PoA, phone, forms) can follow depending on risk appetite.
Document verification → Liveness → (optional PoA / form / phone) → Result + webhook
Outcomes you should handle
| Outcome | What to do |
|---|---|
PASSED | Continue the flow or accept the identity evidence |
FAILED + reasons[] | Map codes to UX (retry, different document, support), statuses and codes |
| Manual review | Keep the user pending until review completes, manual review |
Configure it
Operational settings (thresholds, filters, labels) live in the flow builder:
→ Document verification guide · Create a flow
Related
- Antifraud controls, where document checks sit next to liveness, KYB, AML, and TM
- Verification process, public link vs SDK
- Webhook payload: DV
- Reusable credentials, reuse a prior verification when eligible