Skip to main content

Document ID signing (v3)

Identity verification combined with electronic signature, with cancellation routing (v3)

Extends Document ID signing (v2) with an explicit cancelled output route that lets flows handle user-initiated or agent-initiated session cancellations without throwing an error. Use DOC_ID_SIGNING:v3 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 Document ID signing (v2) — QES and contract signing modes, document verification, unified Verification data block, signed documents package.
  • Explicit cancellation routing — Cancelled sessions always exit via the cancelled port instead of throwing, enabling flow-level handling (retry prompts, rejection paths).
  • Configurable capture — Selectively disable biometric sample or document image capture to reduce data collection scope.

Configuration

ParameterTypeRequiredDescription
signingModestring (enum)YesSigning mode: QES (Qualified Electronic Signature) or CONTRACT_SIGNING (standard contract signing).
config.live.shortnamestringYesDocIDV shortname for the live environment. Provided by IDnow during onboarding.
config.staging.shortnamestringYesDocIDV shortname for the staging environment. Provided by IDnow during onboarding.
inputSources.basicIdentitystringYesID of an upstream step whose BasicIdentity output provides identity data for verification and signing.
inputSources.documentsToSignstringConditionalID of an upstream step whose DocumentsToSign output provides the documents to sign. Required when signingMode is CONTRACT_SIGNING; not required for QES.
handoffbooleanNoWhen 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. Default: false.
webJourneyOnlybooleanNoWhen true, the redirect URL is constructed as the DocIDV web journey URL instead of the channel chooser URL. Default: false.
capture.biometricSamplebooleanNoWhen false, the biometric sample (selfie) capture step is skipped and the BiometricSamples data block is not produced. Default: true.
capture.documentImagesbooleanNoWhen false, the document image capture step is skipped and the DocumentImages data block is not produced. Default: true.

Example

QES mode:

{
"signingMode": "QES",
"config": {
"live": { "shortname": "acme-live" },
"staging": { "shortname": "acme-staging" }
},
"inputSources": {
"basicIdentity": "SPHINX"
}
}

Contract signing mode:

{
"signingMode": "CONTRACT_SIGNING",
"config": {
"live": { "shortname": "acme-live" },
"staging": { "shortname": "acme-staging" }
},
"inputSources": {
"basicIdentity": "SPHINX",
"documentsToSign": "COLLECT_DOCUMENTS"
}
}

Wiring cancellation routing with a retry prompt

[
{
"id": "DOC_ID_SIGNING",
"type": "DOC_ID_SIGNING:v3",
"options": {
"signingMode": "QES",
"inputSources": { "basicIdentity": "SPHINX" },
"config": { "live": { "shortname": "acme-live" }, "staging": { "shortname": "acme-staging" } }
},
"next": [
{ "port": "verified", "id": "END_ACCEPTED" },
{ "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_SIGNING",
"type": "rollback",
"rollback": { "maxAttempts": 3 }
}
]
}
]

Input data blocks

Data blockRequiredModeDescription
BasicIdentityYesBothIdentity data from the upstream node (typically DocIDV). Used for verification and as signer identification in the signature process.
DocumentsToSignConditionalCONTRACT_SIGNINGDocuments to sign. Required when signingMode is CONTRACT_SIGNING; not required for QES.
File size limit

Each file referenced in DocumentsToSign must not exceed 20 MB. Exceeding this limit returns HTTP 422 with error code FILE_TOO_LARGE at session creation.


Routes

RouteConditionDescription
verifiedAlways availableIdentity verification succeeded and documents were signed successfully. Status from the signature service is either SUCCESS or SUCCESS_DATA_CHANGED.
fraud_detectedAlways availableIdentity verification failed due to fraud detection. Fraud was detected and confirmed after review. Identity data and verification information may be available for further analysis.
cancelledAlways availableSession cancelled by the user or agent. Carries a Verification data block; identity data blocks present only on agent-initiated cancellations.

Output data blocks

RouteData blocks producedNotes
verifiedBasicIdentity, ExtendedIdentity, DocumentData, Verification, SignedDocumentsPackage, DocumentImages (unless capture.documentImages: false), BiometricSamples (unless capture.biometricSample: false)All blocks populated; signed documents and audit trail returned in SignedDocumentsPackage.
fraud_detectedBasicIdentity, ExtendedIdentity, DocumentData, Verification, DocumentImages (unless capture.documentImages: false), BiometricSamples (unless capture.biometricSample: false)SignedDocumentsPackage not produced on the fraud path.
cancelledVerificationIdentity data blocks populated only when an agent cancelled with a business reason.

Relationship to Document ID signing (v2)

DOC_ID_SIGNING:v3 is a superset of DOC_ID_SIGNING:v2. Existing DOC_ID_SIGNING:v2 flows do not need to migrate — use DOC_ID_SIGNING:v3 for new flows that require explicit cancellation handling.