Skip to main content

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.

note

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

OptionTypeRequiredDescription
capture.documentTypesstring[]YesDocument types accepted for capture. Accepted values: "ID", "PASSPORT", "RESIDENT_PERMIT", "VISA", "DRIVING_LICENSE", "HEALTH_CARD".
capture.biometricSampleTypesstring[]YesBiometric sample types to collect (e.g. face image, liveness).
capture.biometricConsentHandling"SDK" | "CUSTOMER"NoWho handles biometric consent. Defaults to "SDK".
capture.withDocLivenessbooleanNoWhether to require document liveness detection.
config.live.realmstringYesRealm identifier for the live environment.
config.staging.realmstringYesRealm identifier for the staging environment.
handoffbooleanNoWhether the step supports handoff to another device. Defaults to false.
inputSourcesObjectNoSpecifies 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.basicIdentityStringNoThe ID of the step providing the BasicIdentity data block.
inputSources.extendedIdentityStringNoThe ID of the step providing the ExtendedIdentity data block.

Input data blocks

Data blockRequiredDescription
BasicIdentityNoPre-filled identity data to associate with the verification.
ExtendedIdentityNoExtended identity data to associate with the verification.

Routes

RouteDescription
verifiedDocument verified and identity extracted successfully.
not_verifiedDocument verification failed; no identity data could be extracted.
fraud_detectedDocument identified as fraudulent; identity data extracted for manual review.
cancelledUser cancelled the step; partial verification data is available for routing.

Output data blocks

RouteData blocks producedNotes
verifiedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification, BiometricSamplesBiometricSamples only present when biometricSampleTypes is non-empty.
not_verifiedVerification
fraud_detectedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification, BiometricSamplesBiometricSamples only present when biometricSampleTypes is non-empty.
cancelledVerification
Step compatibility

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"
}