GovID & Selfie Match
Government ID document authentication and biometric selfie matching — Standard (one document) and Dual Document (two documents) variants.
Checker Category: Identity — GovID + Biometric
Used In Steps: Government ID and Selfie Match
Used In Workflows: Identity Verification, NIST IAL2
Supported Countries: 180+ countries; 5,000+ document types (see detailed coverage here)
Overview
Document + Selfie Match checkers authenticate a government-issued ID document and compare it biometrically to a live selfie. The document is checked for tampering and authenticity (not just read) — and the selfie undergoes liveness detection before the biometric comparison runs.
Two variants are available: Standard (one document + selfie) and Dual Document (two documents + selfie). Both use Incode's hosted capture session — not fully API-only.
End User Requirements
Government-issued photo ID. Mobile device with camera. Adequate lighting for document capture and selfie.
Role in Layered Verification
Strongest identity checker — combines document authenticity with biometric liveness. Typically used as step-up from phone-based methods (Identity Verification) or as primary method for high-assurance flows (NIST IAL2). Requires async capture session delivery (SMS link, QR code, or direct link).
Variants
What It Provides: One government ID document authenticated and compared to a live selfie. Passport, driver's license, or ID card supported. Checks document authenticity, liveness, and biometric face match.
Level of Assurance: High
Acquired Attributes
| Attribute | Code | Description |
|---|---|---|
| Document Type | DocumentType | Passport, driver's license, ID card |
| Gender | AcquiredGender | Gender from document |
| Full Name | FullName | Name from document (first, middle, last, suffix) |
| DOB | DOB | Date of birth from document |
| Driver's License Number | DriversLicenseNumber | DL number if applicable |
| Driver's License State | DriversLicenseState | Issuing state if applicable |
| Driver's License Issue Date | DriversLicenseIssueDate | Issue date if applicable |
| Driver's License Expiration Date | DriversLicenseExpirationDate | Expiration date if applicable |
| Street Address | AcquiredAddress | Address from document |
| Passport Issue Date | AcquiredPassportIssueDate | Issue date if passport |
| Passport Expiration Date | AcquiredPassportExpirationDate | Expiration date if passport |
| Passport Number | AcquiredPassportNumber | Passport number if applicable |
| Nationality | AcquiredNationality | Nationality from document |
| Gov ID Country | GovIDCountry | Country of issue |
Assertions
| Assertion | Key | Description |
|---|---|---|
| Provided DOB Matches DOB on Submitted Government ID | link.dob_document | Compares the provided date of birth to the date of birth on the submitted government ID. Passes if they match; fails if they do not. |
| Provided Nationality Matches Nationality on Submitted Government ID | link.nationality_document | Compares the provided nationality to the nationality on the submitted government ID. Passes if they match; fails if they do not. |
| Selfie Tampering Check | test.digitalAttack | Indicates whether a digital modification or manipulation has been applied to the selfie image. Passes if no manipulation is detected; fails if digital manipulation is identified. |
| Government ID Alignment Check | test.documentAlignmentCheck | Confirms that the submitted document image is properly aligned. Passes if alignment meets requirements; fails if it does not. |
| Back of Submitted Government ID Acceptable Lighting Check | test.documentBalancedLightBackCheck | Confirms that the back of the submitted government ID has acceptable lighting for clear capture. Passes if lighting is adequate; fails if it is not. |
| Front of Submitted Government ID Acceptable Lighting Check | test.documentBalancedLightFrontCheck | Confirms that the front of the submitted government ID has acceptable lighting for clear capture. Passes if lighting is adequate; fails if it is not. |
| Back of Government ID Image Sharpness Check | test.documentSharpnessBackCheck | Confirms that the back of the government ID image meets sharpness requirements. Passes if sharpness is sufficient; fails if the image is too blurry. |
| Front of Government ID Image Sharpness Check | test.documentSharpnessFrontCheck | Confirms that the front of the government ID image meets sharpness requirements. Passes if sharpness is sufficient; fails if the image is too blurry. |
| Government ID Type and Side Consistency Check | test.documentTypeSideCrosscheck | Confirms that the identified type and side of the captured government ID are consistent with each other. Passes if the type and captured side match expected values; fails if a mismatch is detected |
| RealID Document Check | test.document_isRealID | Confirms that the submitted document is a RealID-compliant identification. Passes if it is RealID-compliant; fails if it is not. |
| Selfie Facial Evasion Check | test.evasionAttack | Indicates whether the person is attempting to evade facial recognition by making unusual expressions or blocking facial features. Passes if no evasion is detected; fails if evasion behavior is identified. |
| Front of Government ID Physcial Presence Check | test.frontPaperOrScreen | Confirms that the front of the government ID was captured directly from a physical document, not from a screen display. Passes if physical presence is detected; fails if screen capture is detected. |
| Front of Government ID Tampering Check | test.frontTampered | Indicates whether the front of the submitted government ID shows signs of tampering. Passes if no tampering is detected; fails if tampering is identified. |
| Submitted Government ID Database Validation Check | test.governmentValidation | Confirms that the submitted document has been validated against government database records. Passes if validation succeeds; fails if the document cannot be confirmed. |
| Back of Document Post-it Check | test.postitCheckBack | Indicates whether a sticky note or post-it is obscuring the back of the document. Passes if no obstruction is detected; fails if one is identified. |
| Front of Document Post-it Check | test.postitCheckFront | Indicates whether a sticky note or post-it is obscuring the front of the document. Passes if no obstruction is detected; fails if one is identified. |
| Selfie Brightness Check | test.selfieBrightnessCheck | Confirms that the selfie image meets brightness requirements for accurate processing. Passes if brightness is within the acceptable range; fails if it is not. |
| Selfie Tinted Lenses Check | test.selfieLensesCheck | Indicates whether the person in the selfie is wearing tinted lenses that may affect facial recognition. Passes if no tinted lenses are detected; fails if they are identified. |
| Selfie Mask Check | test.selfieMaskCheck | Indicates whether the person in the selfie is wearing a mask. Passes if no mask is detected; fails if one is identified. |
Notes
Requires hosted UI (Incode) — not fully API-only. Deliver via SMS link, QR code, or direct link.
asyncUIRedirect parameter required — must be configured before go-live.
Image quality is the most common cause of false denials — retry under better lighting usually resolves.
What It Provides: Two government ID documents independently authenticated and cross-referenced against a single selfie. Both documents must pass all assertions independently. Higher assurance than single-document — dual cross-check makes document forgery significantly harder.
Level of Assurance: Very High
Acquired Attributes
Same attributes as Standard, applied independently to each document. Both document sets are returned in the response.
Full dual-document acquired attribute reference coming soon.
Assertions
Same assertion structure as Standard, applied independently to each document. Both sets must pass for approval.
| Assertion | Key | Description |
|---|---|---|
| Provided DOB Matches DOB on Submitted Government ID | link.dob_document | Compares the provided date of birth to the date of birth on the submitted government ID. Passes if they match; fails if they do not. |
| Provided DOB Matches DOB on Second Submitted Government ID | link.dob_secondDocument | Compares the provided date of birth to the date of birth on the second submitted government ID. Passes if they match; fails if they do not. |
| Provided Full Name Matches Full Name on Provided Driver's License | link.fullName_driversLicense | Compares the provided full name to the full name on the submitted driver's license. Passes if they match; fails if they do not. |
| Provided Full Name Matches Full Name on Provided Passport | link.fullName_passport | Compares the provided full name to the full name on the submitted passport. Passes if they match; fails if they do not. |
| Provided Nationality Matches Nationality on Submitted Government ID | link.nationality_document | Compares the provided nationality to the nationality on the submitted government ID. Passes if they match; fails if they do not. |
| Selfie Matches Submitted Government ID Photo | link.selfie_govID | Compares the provided selfie to the photo on the submitted government ID. Passes if they match; fails if they do not. |
| Selfie Matches Second Submitted Government ID Photo | link.selfie_secondGovID | Compares the provided selfie to the photo on the second submitted government ID. Passes if they match; fails if they do not. |
| Government ID Barcode Content Check | test.2DBarcodeContentCheck | Confirms that the 2D barcode content on the government ID passes integrity checks. Passes if content is valid; fails if integrity checks fail. |
| Government ID Barcode Readability Check | test.2DBarcodeReadable | Confirms that the 2D barcode on the government ID is readable and can be decoded. Passes if the barcode decodes successfully; fails if it cannot. |
| MRZ DOB Integrity Check | test.birthDateCheckDigit | Confirms that the check digit for the date of birth field in the MRZ is mathematically valid. Passes if the check digit is correct; fails if it is not. |
| MRZ Composite Check Digit Integrity Check | test.compositeCheckDigit | Confirms that the composite check digit covering the combined MRZ data fields is mathematically valid. Passes if the check digit is correct; fails if it is not. |
| Device Overall Risk Check | test.deviceRisk | Assesses the overall risk level associated with the device. Passes if device risk is within acceptable thresholds; fails if it is elevated. |
| Selfie Tampering Check | test.digitalAttack | Indicates whether a digital modification or manipulation has been applied to the selfie image. Passes if no manipulation is detected; fails if digital manipulation is identified. |
| Government ID Alignment Check | test.documentAlignmentCheck | Confirms that the submitted document image is properly aligned. Passes if alignment meets requirements; fails if it does not. |
| Government ID Authenticity Check | test.documentAuthenticated | Confirms that the submitted government ID has passed authentication checks. Passes if authenticated; fails if authentication fails. |
| Back of Submitted Government ID Acceptable Lighting Check | test.documentBalancedLightBackCheck | Confirms that the back of the submitted government ID has acceptable lighting for clear capture. Passes if lighting is adequate; fails if it is not. |
| Front of Submitted Government ID Acceptable Lighting Check | test.documentBalancedLightFrontCheck | Confirms that the front of the submitted government ID has acceptable lighting for clear capture. Passes if lighting is adequate; fails if it is not. |
| Government ID Type Classification Check | test.documentClassified | Confirms that the government ID image has been successfully identified and classified as a valid government-issued ID. Passes if the ID type can be determined from the image; fails if it cannot. |
| Government ID DOB Field Consistency Check | test.documentDOBCrosscheck | Confirms that the date of birth is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if they are not. |
| Government ID DOB Plausibility Check | test.documentDOBValid | Assesses whether the date of birth on the government ID is logically plausible, including format validity and reasonable date ranges. Passes if the date is plausible; fails if it is not. |
| Government ID Expiration Date Field Consistency Check | test.documentExpirationDateCrosscheck | Confirms that the expiration date is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if they are not. |
| Government ID Expiration Date Validity Check | test.documentExpirationDateValid | Confirms that the expiration date on the government ID is a valid date. Passes if the date is valid; fails if it is not. |
| Government ID Photo Quality Check | test.documentFacialPhotoCheck | Confirms that the facial photo on the submitted government ID is present and meets quality requirements. Passes if the photo is present and meets standards; fails if it does not. |
| Government ID Authenticity Check | test.documentFaked | Indicates whether the submitted government ID shows signs of being fabricated. Passes if no fabrication is detected; fails if signs of fabrication are found. |
| Government ID Full Name Field Consistency Check | test.documentFullNameCrosscheck | Confirms that the full name is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if discrepancies are found. |
| Government ID Number Alteration Check | test.documentIdAlterationCheck | Indicates whether the ID number on the submitted government ID shows signs of alteration. Passes if no alteration is detected; fails if alteration is identified. |
| Government ID Issue Date Validity Check | test.documentIssueDateValid | Assesses whether the issue date on the government ID is logically plausible, including format validity and reasonable date ranges. Passes if the date is plausible; fails if it is not. |
| Government ID Number Field Consistency Check | test.documentNumberCrosscheck | Confirms that the IDt number is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if discrepancies are detected. |
| Government ID OCR Quality Check | test.documentOcrConfidence | Assesses the quality of OCR data extraction from the government ID. Passes if extraction quality meets the required threshold; fails if confidence is too low. |
| Government ID Expiration Check | test.documentSeriesExpired | Confirms that the government ID's document series has not been expired by the issuing authority. Passes if the series is still valid; fails if it has been expired. |
| Government ID Sex Field Consistency Check | test.documentSexCrosscheck | Confirms that the sex or gender designation is consistent across all printed and machine-readable fields. Passes if they match; fails if they do not. |
| Back of Government ID Image Sharpness Check | test.documentSharpnessBackCheck | Confirms that the back of the government ID image meets sharpness requirements. Passes if sharpness is sufficient; fails if the image is too blurry. |
| Front of Government ID Image Sharpness Check | test.documentSharpnessFrontCheck | Confirms that the front of the government ID image meets sharpness requirements. Passes if sharpness is sufficient; fails if the image is too blurry. |
| Government ID Tampering Check | test.documentTampered | Indicates whether the submitted government ID shows signs of tampering. Passes if no tampering is detected; fails if tampering is identified. |
| Government ID Type and Side Consistency Check | test.documentTypeSideCrosscheck | Confirms that the identified type and side of the captured government ID are consistent with each other. Passes if the type and captured side match expected values; fails if a mismatch is detected |
| Government ID Physical Security Features Check | test.documentVisibleCharacteristics | Confirms that expected physcial security features (holograms, patterns, etc.) are present on the government ID. Passes if all expected features are present; fails if any are missing. |
| RealID Document Check | test.document_isRealID | Confirms that the submitted document is a RealID-compliant identification. Passes if it is RealID-compliant; fails if it is not. |
| Selfie Facial Evasion Check | test.evasionAttack | Indicates whether the person is attempting to evade facial recognition by making unusual expressions or blocking facial features. Passes if no evasion is detected; fails if evasion behavior is identified. |
| MRZ Expiration Date Check Digit Integrity Check | test.expirationDateCheckDigit | Confirms that the check digit for the expiration date field in the ID's MRZ is mathematically valid. Passes if the check digit is correct; fails if it is not. |
| Document Expiration Check | test.expired | Confirms that the submitted document has not expired. Passes if the document is still valid; fails if it is expired. |
| Spoofed Browser Check | test.fakeBrowserCheck | Indicates whether the session is using a spoofed browser. Passes if no spoofed browser is detected; fails if one is identified. |
| Font Tampering Check | test.fontAlterationCheck | Indicates whether the fonts on the submitted document show signs of tampering. Passes if no font tampering is detected; fails if font tampering is identified. |
| Submitted Government ID Database Validation Check | test.governmentValidation | Confirms that the submitted document has been validated against government database records. Passes if validation succeeds; fails if the document cannot be confirmed. |
| Selfie Closed Eyes Check | test.hasClosedEyes | Indicates whether the person in the selfie has closed eyes. Passes if eyes are open; fails if closed eyes are detected. |
| Selfie Head Cover Check | test.hasHeadCover | Indicates whether the person in the selfie is wearing a head cover. Passes if no head cover is detected; fails if one is identified. |
| MRZ Line Format Check | test.mrzLineFormatCheck | Confirms that the MRZ line format on the document is correct. Passes if the format is valid; fails if it is not. |
| MRZ Successful Parse Check | test.mrzParsableCheck | Confirms that the MRZ on the document can be successfully parsed. Passes if parsing succeeds; fails if it does not. |
| Session Behavior Risk Check | test.overallBehaviorRisk | Assesses the overall behavioral risk level for the session based on aggregated signals. Passes if the overall risk is within acceptable thresholds; fails if it is elevated. |
| Government IDs Cumulative Authenticity Check | test.overallDocumentsAuthentication | Assesses the cumulative authentication result across all submitted government IDs. Passes if all authentication checks succeed; fails if any fail. |
| Government ID Live Capture Check | test.paperIdLiveness | Confirms that the government ID was captured from a physical document and not a screen reproduction. Passes if physical capture is confirmed; fails if a screen reproduction is detected. |
| Government ID Physical Damage Check | test.physicalAttack | Indicates whether the government ID shows signs of physical manipulation or damage. Passes if no physical manipulation or damage is detected; fails if physical manipulation or damage is identified. |
| Government ID Tampering Check | test.possibleFraud | Indicates whether the submitted government ID shows signs of tampering or fraud. Passes if no tampering or fraud indicators are detected; fails if tampering or fraud indicators are present. |
| Government ID Punched Holes Check | test.punchedHoles | Indicates whether the submitted government ID has been punched with holes, indicating cancellation or voiding. Passes if no punched holes are detected; fails if they are found. |
| Government ID Live Capture Check | test.screenIdLiveness | Confirms that the government ID capture is not from a screen display. Passes if no screen display is detected; fails if a screen capture is identified. |
| Second Government ID Alignment Check | test.secondDocumentAlignmentCheck | Confirms that the second submitted document image is properly aligned. Passes if alignment meets requirements; fails if it does not. |
| Second Government ID Authenticity Check | test.secondDocumentAuthenticated | Confirms that the second submitted government ID has passed authentication checks. Passes if authenticated; fails if authentication fails. |
| Front of Second Submitted Government ID Acceptable Lighting Check | test.secondDocumentBalancedLightFrontCheck | Confirms that the front of the second submitted government ID has acceptable lighting for clear capture. Passes if lighting is adequate; fails if it is not. |
| Second Government ID Type Classification Check | test.secondDocumentClassified | Confirms that the second government ID image has been successfully identified and classified as a valid government-issued ID. Passes if the ID type can be determined from the image; fails if it cannot. |
| Second Government ID DOB Field Consistency Check | test.secondDocumentDOBCrosscheck | Confirms that the date of birth on the second submitted government ID is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if they are not. |
| Second Government ID DOB Plausibility Check | test.secondDocumentDOBValid | Assesses whether the date of birth on the second submitted government ID is logically plausible, including format validity and reasonable date ranges. Passes if the date is plausible; fails if it is not. |
| Second Government ID Expiration Date Field Consistency Check | test.secondDocumentExpirationDateCrosscheck | Confirms that the expiration date on the second submitted government ID is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if they are not. |
| Second Government ID Expiration Date Validity Check | test.secondDocumentExpirationDateValid | Confirms that the expiration date on the second submitted government ID is a valid date. Passes if the date is valid; fails if it is not. |
| Second Government ID Photo Quality Check | test.secondDocumentFacialPhotoCheck | Confirms that the facial photo on the second submitted government ID is present and meets quality requirements. Passes if the photo is present and meets standards; fails if it does not. |
| Second Government ID Fake Check | test.secondDocumentFaked | Indicates whether the second submitted government ID shows signs of being fabricated. Passes if no fabrication is detected; fails if signs of fabrication are found. |
| Second Government ID Full Name Field Consistency Check | test.secondDocumentFullNameCrosscheck | Confirms that the full name on the second submitted government ID is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if discrepancies are found. |
| Second Government ID Number Alteration Check | test.secondDocumentIdAlterationCheck | Indicates whether the ID number on the second submitted government ID shows signs of alteration. Passes if no alteration is detected; fails if alteration is identified. |
| Second Government ID Issue Date Validity Check | test.secondDocumentIssueDateValid | Assesses whether the issue date on the second submitted government ID is logically plausible, including format validity and reasonable date ranges. Passes if the date is plausible; fails if it is not. |
| Second Government ID Number Field Consistency Check | test.secondDocumentNumberCrosscheck | Confirms that the ID number on the second submitted government ID is consistent across all printed and machine-readable fields. Passes if all fields are consistent; fails if discrepancies are detected. |
| Second Government ID OCR Quality Check | test.secondDocumentOcrConfidence | Assesses the quality of OCR data extraction from the second submitted government ID. Passes if extraction quality meets the required threshold; fails if confidence is too low. |
| Second Government ID Live Capture Check | test.secondDocumentPaperIdLiveness | Confirms that the second submitted government ID was captured from a physical document and not a screen reproduction. Passes if physical capture is confirmed; fails if a screen reproduction is detected. |
| Second Government ID Punched Holes Check | test.secondDocumentPunchedHoles | Indicates whether the second submitted government ID has been punched with holes, indicating cancellation or voiding. Passes if no punched holes are detected; fails if they are found. |
| Second Government ID No Screen Capture Check | test.secondDocumentScreenIdLiveness | Confirms that the second government ID capture is not from a screen display. Passes if no screen display is detected; fails if a screen capture is identified. |
| Second Government ID Sex Field Consistency Check | test.secondDocumentSexCrosscheck | Confirms that the sex or gender designation on the second submitted government ID is consistent across all printed and machine-readable fields. Passes if they match; fails if they do not. |
| Front of Second Government ID Image Sharpness Check | test.secondDocumentSharpnessFrontCheck | Confirms that the front of the second government ID image meets sharpness requirements. Passes if sharpness is sufficient; fails if the image is too blurry. |
| Second Government ID Tampering Check | test.secondDocumentTampered | Indicates whether the second submitted government ID shows signs of tampering. Passes if no tampering is detected; fails if tampering is identified. |
| Second Government ID Physical Security Features Check | test.secondDocumentVisibleCharacteristics | Confirms that expected physical security features (holograms, patterns, etc.) are present on the second submitted government ID. Passes if all expected features are present; fails if any are missing. |
| Second Document Expiration Check | test.secondExpired | Confirms that the second submitted document has not expired. Passes if the document is still valid; fails if it is expired. |
| Selfie Brightness Check | test.selfieBrightnessCheck | Confirms that the selfie image meets brightness requirements for accurate processing. Passes if brightness is within the acceptable range; fails if it is not. |
| Selfie Tinted Lenses Check | test.selfieLensesCheck | Indicates whether the person in the selfie is wearing tinted lenses that may affect facial recognition. Passes if no tinted lenses are detected; fails if they are identified. |
| Selfie Liveness Check | test.selfieLiveness | Confirms that the selfie passes liveness detection, indicating a live person is present. Passes if liveness is confirmed; fails if it is not. |
| Selfie Mask Check | test.selfieMaskCheck | Indicates whether the person in the selfie is wearing a mask. Passes if no mask is detected; fails if one is identified. |
| Person Under 18 Check | test.underageCheck | Confirms that the provided date of birth indicates the person is not under 18 years of age. Passes if the person is 18 or older; fails if they are under 18. |
Notes
Same API integration as Standard — dual capture is handled within the hosted Incode capture session; no additional API calls required.
Either document failing causes the step to fail — check both assertion sets independently on denial.
Document type combinations are configurable (e.g., passport required as primary, DL as secondary).
Testing & Expected Results
Testing follows Government ID and Selfie Match step procedures for both variants. See Government ID and Selfie Match for test credentials and step-by-step instructions.
| Scenario | Input | Expected Result |
|---|---|---|
| Approve | Andrew Roshell + Passport | approve |
| Deny | Andrew Roshell + Driver's License | deny |
| Real verification | Any name + ID Card | Actual document + selfie required |
For Dual Document: select Passport for both captures to approve; Driver's License for either to deny.
Related Resources
→ Government ID and Selfie Match | → Identity Verification | → NIST IAL2
Updated 7 days ago

