Skip to main content

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​

  1. Guides the user to capture or upload the document
  2. Reads the contactless chip where the document carries one; see Chip reading
  3. Runs authenticity and quality checks (security features, tampering, copy / screen attacks, score thresholds); see Document capture checks
  4. Applies your country and document-type filters
  5. Enforces minimum age when configured
  6. Produces a step result (PASSED, FAILED, or review statuses) with optional structured reasons

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.

CheckDescription
Tamper checkDetects if the ID's main portrait was physically tampered.
ID alteration checkValidates whether there are any foreign objects on the document.
AlignmentFlags 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 livenessConfirms whether the document was captured from a screen rather than the physical plastic document.
Paper ID livenessConfirms whether the document was captured from a printed paper rather than the physical plastic document.
Voided ID checkFlags 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 checkSearches for discrepancies in the document layout and other signs of fraud.
Template checkChecks whether the document layout matches a supported document template (text positions and presence of security features).
MRZ cross-checkChecks whether data extracted from the MRZ matches data extracted by OCR.
Expiration date validityConfirms that the expiration date is valid.
Document type side cross-checkChecks front/back consistency of the document (for example, if both images are the front of the ID).
Issue date validityConfirms that the document issue date is valid.
Barcode presence and formatWhen a barcode is expected on the document template, checks that it is present and matches the expected format.
Image quality checkFlags 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​

OutcomeWhat to do
PASSEDContinue the flow or accept the identity evidence
FAILED + reasons[]Map codes to UX (retry, different document, support), statuses and codes
Manual reviewKeep 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