IDCheck Web Capture (v4)
Document-based identity verification with cancellation routing (v4)
Extends IDCheck Web Capture (v3) with an explicit cancelled output route that lets flows handle user-initiated or agent-initiated session cancellations without throwing an error. Use DOC_ID:v4 when you want to route cancelled sessions to a RETRY_PROMPT:v1 step or to a rejection end node, rather than relying on the generic error path.
Key features
- All capabilities of IDCheck Web Capture (v3) — automated visual verification, NFC, agent-assisted verification, guided capture frontend, configurable document types and biometric sample types.
- Explicit cancellation routing — Cancelled sessions always exit via the
cancelledport instead of throwing, enabling flow-level handling (retry prompts, rejection paths). - Handoff support — Redirects the player immediately on manual review trigger and resumes polling in the background.
Configuration
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
capture | object | Yes | — | Capture configuration including document types and biometric sample types. |
capture.documentTypes | array | Yes | — | List of accepted document types: ID, PASSPORT, RESIDENT_PERMIT, VISA, DRIVING_LICENSE, HEALTH_CARD. |
capture.biometricSampleTypes | array | Yes | — | List of accepted biometric sample types: SELFIE, VIDEO. Pass an empty array to skip biometric capture. |
capture.biometricConsentHandling | string (enum) | No | SDK | How biometric consent is handled during capture: SDK (handled by the IDnow SDK) or CUSTOMER (handled by the integrating application). |
capture.withDocLiveness | boolean | No | — | When true, enables document liveness detection during capture. |
config.live.realm | string | Yes | — | Realm identifier for the document verification service in the live environment. Provided by IDnow during onboarding. |
config.staging.realm | string | Yes | — | Realm identifier for the document verification service in the staging environment. Provided by IDnow during onboarding. |
handoff | boolean | No | false | When true, redirects the player immediately when the identification enters a pending review state and resumes polling in the background. Uses the session redirectUrl if configured; otherwise shows a submission-complete message. |
inputSources | object | No | — | Maps upstream step IDs to data blocks forwarded for cross-checking. |
inputSources.basicIdentity | string | No | — | ID of an upstream step whose BasicIdentity output should be forwarded for identity data cross-checking. |
inputSources.extendedIdentity | string | No | — | ID of an upstream step whose ExtendedIdentity output should be forwarded for identity data cross-checking. |
Example
{
"capture": {
"documentTypes": ["ID", "PASSPORT"],
"biometricSampleTypes": ["SELFIE"],
"biometricConsentHandling": "SDK"
},
"config": {
"live": { "realm": "acme-live" },
"staging": { "realm": "acme-staging" }
}
}
Wiring cancellation routing with a retry prompt
[
{
"id": "DOC_ID",
"type": "DOC_ID:v4",
"options": {
"capture": { "documentTypes": ["ID"], "biometricSampleTypes": ["SELFIE"] },
"config": { "live": { "realm": "acme-live" }, "staging": { "realm": "acme-staging" } }
},
"next": [
{ "port": "verified", "id": "END_ACCEPTED" },
{ "port": "not_verified", "id": "END_REJECTED" },
{ "port": "fraud_detected", "id": "END_REJECTED" },
{ "port": "cancelled", "id": "RETRY_PROMPT" }
]
},
{
"id": "RETRY_PROMPT",
"type": "RETRY_PROMPT:v1",
"options": {},
"next": [
{ "port": "retry", "id": "DOC_ID", "type": "rollback", "rollback": { "maxAttempts": 3 } }
]
}
]
Input data blocks
| Data block | Required | Description |
|---|---|---|
BasicIdentity | No | Forwarded to the verification service when inputSources.basicIdentity is configured. |
ExtendedIdentity | No | Forwarded to the verification service when inputSources.extendedIdentity is configured. |
Routes
| Route | Condition | Description |
|---|---|---|
verified | Always available | Document successfully processed; identity data extracted. |
not_verified | Always available | Document verification failed; no identity data available. |
fraud_detected | Always available | Document identified as fraudulent; identity data extracted for manual review. |
cancelled | Always available | Session cancelled by the user or agent. Carries a Verification data block; identity data blocks populated only on agent-initiated cancellations with a business reason. |
Output data blocks
| Route | Data blocks produced | Notes |
|---|---|---|
verified | BasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification, and BiometricSamples (when capture.biometricSampleTypes is non-empty) | All blocks populated. |
not_verified | Verification | Only the verification record is available. |
fraud_detected | BasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, Verification, and BiometricSamples (when capture.biometricSampleTypes is non-empty) | Identity data available for review. |
cancelled | Verification | Identity data blocks populated only when an agent cancelled with a business reason. |
Relationship to IDCheck Web Capture (v3)
DOC_ID:v4 is a superset of DOC_ID:v3. Existing DOC_ID:v3 flows do not need to migrate — use DOC_ID:v4 for new flows that require explicit cancellation handling.