IDCheck Web Capture (v4)
End-to-end, compliant document-based identity verification (v4)
Verifies identity using secure identity documents through multiple verification modes, adapted to business and regulatory needs.
In Capture mode, the end user completes verification through the IDnow frontend, which guides them step by step in providing the required identity evidence. This includes capturing document images, performing biometric checks (such as face matching and liveness detection), and optionally reading electronic document chips via NFC.
DOC_ID:v4 is the successor to DOC_ID:v3. It uses a realm-based configuration instead of the shortname-based environment config used in earlier versions.
Key features
- Automated visual verification: AI-based analysis of ID document authenticity, integrity, and visual security features.
- Automated NFC verification: Secure reading and validation of embedded NFC chips in electronic identity documents.
- Agent-assisted verification: Expert review for complex, regulated, or escalated cases.
- Configurable capture: Document types, biometric sample types, and liveness detection can be configured per deployment.
Configuration
| Option | Type | Required | Description |
|---|---|---|---|
capture.documentTypes | string[] | Yes | Document types accepted for capture. Accepted values: "ID", "PASSPORT", "RESIDENT_PERMIT", "VISA", "DRIVING_LICENSE", "HEALTH_CARD". |
capture.biometricSampleTypes | string[] | Yes | Biometric sample types to collect (e.g. face image, liveness). |
capture.biometricConsentHandling | "SDK" | "CUSTOMER" | No | Who handles biometric consent. Defaults to "SDK". |
capture.withDocLiveness | boolean | No | Whether to require document liveness detection. |
config.live.realm | string | Yes | Realm identifier for the live environment. |
config.staging.realm | string | Yes | Realm identifier for the staging environment. |
handoff | boolean | No | Whether the step supports handoff to another device. Defaults to false. |
inputSources | Object | No | Specifies the workflow step IDs to use for sourcing data. If omitted, the node uses the latest available data blocks from the workflow. See Input mapping. |
inputSources.basicIdentity | String | No | The ID of the step providing the BasicIdentity data block. |
inputSources.extendedIdentity | String | No | The ID of the step providing the ExtendedIdentity data block. |
Input data blocks
| Data block | Required | Description |
|---|---|---|
BasicIdentity | No | Pre-filled identity data to associate with the verification. |
ExtendedIdentity | No | Extended identity data to associate with the verification. |
Routes
| Route | Description |
|---|---|
verified | Document verified and identity extracted successfully. |
not_verified | Document verification failed; no identity data could be extracted. |
fraud_detected | Document identified as fraudulent; identity data extracted for manual review. |
cancelled | User cancelled the step; partial verification data is available for routing. |
Output data blocks
| Route | Data blocks produced | Notes |
|---|---|---|
verified | BasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification, BiometricSamples | BiometricSamples only present when biometricSampleTypes is non-empty. |
not_verified | Verification | |
fraud_detected | BasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification, BiometricSamples | BiometricSamples only present when biometricSampleTypes is non-empty. |
cancelled | Verification |
The DocumentImages produced by DOC_ID:v4 are ID-category images (passport, driving licence, etc.). They cannot be used as input to IBAN_VERIFICATION:v1 or PROOF_OF_ADDRESS:v1, which require bank or address documents respectively.
Example payloads
BasicIdentity — verified
{
"dataBlockId": "01957a00-0000-7000-8000-000000000001",
"type": "BasicIdentity",
"givenName": "Jean",
"familyName": "Dupont",
"name": "Jean Dupont",
"birthDate": "1985-03-22",
"birthPlace": "Paris"
}
ExtendedIdentity — verified
{
"dataBlockId": "01957a00-0000-7000-8000-000000000002",
"type": "ExtendedIdentity",
"portrait": { "$ref": "vault", "$id": "020ff369-43d8-4b8a-94e7-6814c0bdc35a" },
"nationality": "FRA",
"personalAdministrativeNumber": null,
"familyNameBirth": "Dupont",
"givenNameBirth": "Jean",
"sex": 1,
"emailAddress": null,
"mobilePhoneNumber": null,
"residentAddress": null,
"residentStreet": null,
"residentHouseNumber": null,
"residentHouseName": null,
"residentCountry": null,
"residentState": null,
"residentCity": null,
"residentPostalCode": null
}
DocumentData — verified
{
"dataBlockId": "01957a00-0000-7000-8000-000000000003",
"type": "DocumentData",
"documentType": "ID",
"documentNumber": "D123456789",
"expiryDate": "2030-06-15",
"issuanceDate": "2020-06-15",
"issuingCountry": "DE",
"issuingAuthority": "Bürgeramt Berlin"
}
Verification — verified
{
"dataBlockId": "01957a00-0000-7000-8000-000000000004",
"type": "Verification",
"status": "verified",
"terminationReason": null,
"methods": [
{
"type": "documentCheck",
"checks": [
{ "check": "documentAuthenticity", "result": "passed" },
{ "check": "documentExpiry", "result": "passed" },
{ "check": "chipVerification", "result": "passed" }
]
}
],
"provider": "IDnow",
"trustFramework": "eidas",
"assuranceLevel": "high",
"verifiedAt": "2026-02-10T14:00:01.000Z",
"verificationProcessId": "txn-abc123"
}