Skip to main content

Verifying ID document (IDC) (v3)

Stable / GA

This is the current stable version of this step type.
A successor version of this step is in preview / alpha: Verifying ID document (IDC) (v4)

End-to-end, compliant document-based identity verification (v3)​

Verifies identity using secure identity documents through multiple verification modes, adapted to business and regulatory needs.

With this step, the enduser 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. The IDnow frontend ensures high-quality image capture, proper lighting checks, and guided user interaction, while maintaining a compliant and user-friendly verification experience.

Users can complete verification through automated visual verification (AI-driven document and security feature checks), automated NFC verification (secure chip reading for eID-supported documents), or agent-assisted verification (review by trained identity specialists). Each mode ensures compliance with regulations such as eIDAS, AML, GwG, and BaFin. Configurations are modular, enabling flexible integration across fully automated or hybrid identity verification flows.


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 both in Autoident and VideoIndent products.
  • Capture frontend: Guided user interface to collect document images, biometric samples, and NFC data directly from the end user through SDKs.
  • Optimized data quality - Built-in guidance ensures correct document positioning, image sharpness, and proper lighting for improved verification outcomes.
  • Configurable workflows - Automated and manual verification modes can be combined or sequenced based on business or regulatory requirements.
  • Regulatory alignment - Fully compliant with eIDAS, AML, GwG, EAA and BaFin standards for secure remote identity verification.

Configuration​

OptionTypeRequiredDefaultDescription
inputSourcesobjectNo—Specifies the workflow step IDs to use for sourcing data. If omitted, the step will use the latest available data blocks from the workflow. See Input mapping.
inputSources.basicIdentitystringNo—The ID of the step providing the BasicIdentity data block.
inputSources.extendedIdentitystringNo—The ID of the step providing the ExtendedIdentity data block.
captureobjectYes—Capture configuration including document types and biometric sample types.
capture.documentTypesstring[]Yes—Document types accepted for capture. Accepted values: ID, PASSPORT, RESIDENT_PERMIT, VISA, DRIVING_LICENSE, HEALTH_CARD.
capture.biometricSampleTypesstring[]Yes—Biometric sample types to collect (e.g. face image, liveness). Accepted values: SELFIE, VIDEO.
capture.biometricConsentHandlingstringNo"SDK"How biometric consent is handled during capture. Accepted values: SDK, CUSTOMER.
capture.withDocLivenessbooleanNo—When true, enables document liveness detection during capture.
configobjectYes—Environment-specific configuration.
config.live.realmstringYes—The realm identifier for the document verification service. Provided by IDnow during onboarding. (live)
config.staging.realmstringYes—The realm identifier for the document verification service. Provided by IDnow during onboarding. (staging)
handoffbooleanNofalseWhen true, redirects the player immediately on manual review trigger and resumes polling in the background.
enableRetrybooleanNofalseWhen true, adds a retry output route that can be used to handle user cancellations.

Example configuration​

{
"capture": {
"documentTypes": ["ID", "PASSPORT"],
"biometricSampleTypes": ["SELFIE"]
},
"config": {
"live": { "realm": "your-live-realm" },
"staging": { "realm": "your-staging-realm" }
}
}

Input data blocks​

Data blockRequiredDescription
BasicIdentityNoBasicIdentity data to compare against the extracted document data.
ExtendedIdentityNoExtendedIdentity data to compare against the extracted document data.
info

If the data block is not available, the step will execute normally without this information, and the flow will proceed without error.


Routes​

RouteDescription
verifiedSuccessful document processing with identity extraction. User's documents were successfully verified, either automatically or by an agent.
not_verifiedDocument verification failed, no processing possible.
fraud_detectedDocument identified as fraudulent, identity data extracted for manual review.
retryAvailable only when enableRetry is true. User cancelled and can retry.

Output data blocks​

Step compatibility

The DocumentImages produced by this step are ID-category images (passport, driving licence, etc.). They cannot be used as input for steps needing other, non-IDV DocumentImages.

RouteData blocks produced
verifiedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification
conditionally:
BiometricSamples (only when capture.biometricSampleTypes is non-empty)
not_verifiedVerification
fraud_detectedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification
conditionally:
BiometricSamples (only when capture.biometricSampleTypes is non-empty)
retryVerification
Available only when enableRetry is true.

This data block carries evidence artefacts under methods[].evidence[]. This Step can produce the following evidence types, each present only when the corresponding artefact is available:

  • documentFrontRecording,
  • documentBackRecording,
  • livenessRecording,
  • documentFrontOriginalImage,
  • documentBackOriginalImage,
  • analysisReport

Example payloads​

BasicIdentity — verified
{
"givenName": "Jean",
"familyName": "Dupont",
"name": "Jean Dupont",
"birthDate": "1985-03-22",
"birthPlace": "Paris"
}
ExtendedIdentity — verified
{
"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": "FR",
"residentState": null,
"residentCity": null,
"residentPostalCode": null
}
DocumentData — verified
{
"documentType": "ID",
"documentNumber": "D123456789",
"expiryDate": "2030-06-15",
"issuanceDate": "2020-06-15",
"issuingCountry": "FR",
"issuingAuthority": "Préfecture de Paris"
}
Verification — verified
{
"status": "verified",
"terminationReason": null,
"methods": [
{
"type": "documentCheck",
"checks": [
{
"technique": "documentValidity",
"sources": [],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "dataCrosscheck",
"sources": [
{
"type": "mrz",
"id": null
},
{
"type": "ocr",
"id": null
}
],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "securityFeatures",
"sources": [],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "faceMatch",
"sources": [],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
}
],
"evidence": [
{
"type": "documentFrontOriginalImage",
"ref": {
"$ref": "vault",
"$id": "3f8a1c2e-7a4b-4d91-8c62-f1a9237e6d05"
}
},
{
"type": "documentBackOriginalImage",
"ref": {
"$ref": "vault",
"$id": "7b2d9e4a-2c8f-4e17-9d53-b6e08a41c792"
}
},
{
"type": "analysisReport",
"ref": {
"$ref": "vault",
"$id": "c1e6f0b8-9d42-4f6a-8e77-3b5c1d90ae14"
}
}
]
}
],
"provider": "idnow",
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-02-10T14:00:01.000Z",
"verificationProcessId": "c1b9ba80-0fbc-420c-894c-1bc28d2a8fe9"
}
Verification — not_verified
{
"status": "rejected",
"terminationReason": null,
"methods": [
{
"type": "documentCheck",
"checks": [
{
"technique": "documentValidity",
"sources": [],
"outcome": "failed",
"issues": [
{
"code": "DOC_EXPIRATION_DATE",
"severity": "error",
"message": "There are some warnings concerning the document expiration date"
}
],
"performedBy": null,
"performedAt": null
},
{
"technique": "electronicRecord",
"sources": [
{
"type": "internalRegister",
"id": null
}
],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "dataCrosscheck",
"sources": [
{
"type": "mrz",
"id": null
},
{
"type": "ocr",
"id": null
},
{
"type": "inputData",
"id": null
}
],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "securityFeatures",
"sources": [],
"outcome": "passed",
"issues": [],
"performedBy": null,
"performedAt": null
},
{
"technique": "agentReview",
"sources": [],
"outcome": null,
"issues": [],
"performedBy": null,
"performedAt": null
}
],
"evidence": [
{
"type": "analysisReport",
"ref": {
"$ref": "vault",
"$id": "7634dfe5-8dda-43d9-927a-4f69c4be84ca"
}
},
{
"type": "documentFrontOriginalImage",
"ref": {
"$ref": "vault",
"$id": "e7389b6a-2d05-4a8f-9920-e47798c9f919"
}
},
{
"type": "documentBackOriginalImage",
"ref": {
"$ref": "vault",
"$id": "71541e7d-e1dc-4826-a700-8c606f4e2dd3"
}
}
]
}
],
"provider": "idnow",
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-08-28T09:28:59.000Z",
"verificationProcessId": "3a128c6d-4960-45fd-b4d1-5922f44a61be"
}