Skip to main content

Signing incl. verifying ID (v1)

Deprecated

This version of this step type has been deprecated. Documentation will not be maintained. Please use the successor version of this step: Signing incl. verifying ID (v2)

Signing incl. verifying ID (v1)​

Combines document-based IDV in Capture mode with instant signature issuance capabilities. This unified approach streamlines customer onboarding and contract execution while maintaining compliance with document-based IDV and electronic signature regulations.

Users can complete document-based IDV through agent-assisted review (VideoIdent), automated visual verification (AutoIdent), combined with either contract signing (eSign) or qualified electronic signature (QES). Each mode ensures compliance with regulations such as eIDAS, AML, GwG, and BaFin.


Key features​

This step can operate in one of three modes, driven entirely by the configured shortname:

  • VideoIdent with contract signing (VI + eSign): This flow combines agent-assisted VideoIdent verification with contract signing. The user first reviews the document, then completes a VideoIdent step to confirm their identity. After this verification, the user signs the document. The trust requirement is to ensure that the person signing the document is the authorised individual.

  • AutoIdent with contract signing (AI + eSign): This flow combines automated AutoIdent verification with contract signing. The user completes an AutoIdent step to confirm their identity and then signs the document. Like the VI + eSign mode, the primary goal is to get a document signed, but the identity verification is performed automatically rather than through an agent.

  • AutoIdent with qualified electronic signature (QES): This flow is used when the primary goal is identity verification, not contract signing. No contract is provided. The process focuses on performing an AML‑compliant document-based IDV step, and the trust seal/signature element is added only as an additional verification layer, not as a contract signature.


Configuration​

OptionTypeRequiredDefaultDescription
signingModestringYes—Signing mode: QES (Qualified Electronic Signature) or CONTRACT_SIGNING (standard contract signing). Accepted values: CONTRACT_SIGNING, QES.
inputSourcesobjectNo—Deprecated: use inputMapping instead.
inputSources.basicIdentitystringYes—ID of an upstream step whose BasicIdentity output provides identity data for verification and signing.
inputSources.documentsToSignstringNo—ID of an upstream step whose DocumentsToSign output provides the documents to sign.
configobjectYes—Environment-specific configuration for identity verification and signing services.
config.live.shortnamestringYes—Shortname identifier for the environment (live or staging), linked to a pre-configured journey on the platform. (live)
config.staging.shortnamestringYes—Shortname identifier for the environment (live or staging), linked to a pre-configured journey on the platform. (staging)
handoffbooleanNofalseWhen true, redirects the player immediately when the identification enters a pending review state and resumes polling in the background.
webJourneyOnlybooleanNofalseWhen true, the redirect URL is constructed as the DocIDV web journey URL instead of the channel chooser redirect URL.
enableRetrybooleanNofalseWhen true, adds a retry output route that can be used to handle user cancellations.

Example configuration​

CONTRACT_SIGNING mode

{
"signingMode": "CONTRACT_SIGNING",
"config": {
"live": { "shortname": "your-live-shortname" },
"staging": { "shortname": "your-staging-shortname" }
},
"inputSources": {
"basicIdentity": "doc-id-step",
"documentsToSign": "prepare-documents"
}
}

QES mode

{
"signingMode": "QES",
"config": {
"live": { "shortname": "your-live-shortname" },
"staging": { "shortname": "your-staging-shortname" }
},
"inputSources": {
"basicIdentity": "doc-id-step"
}
}

Input data blocks​

Data blockRequiredDescription
BasicIdentityYesBasicIdentity data containing first name and last name to initiate the verification session.
DocumentsToSignConditionalContract PDF documents to be signed. Present unless signingMode is QES.

*If the data block is not available when required, the flow will fail validation.


Routes​

RouteDescription
verifiedSuccessful document processing with identity extraction and signing. User's documents were successfully verified and signed.
fraud_detectedDocument or liveness identified as fraudulent. This occurs when fraud is confirmed after manual review. No signed documents produced.
retryAvailable only when enableRetry is true. The user abandoned or cancelled the session, triggering a retry transition.
info

When the user abandons or cancels the session and no retry route is configured, the session is aborted rather than routing to a named route. Agent-side cancellation (e.g. due to poor image quality) also results in either a retry transition or a session abort.


Output data blocks​

danger

This step produces the legacy DocumentVerification data block (v1 behaviour). If your integration requires the unified Verification data block, use DOC_ID_SIGNING:v2 instead.

RouteData blocks produced
verifiedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, DocumentVerification, BiometricSamples, SignedDocumentsPackage
fraud_detectedBasicIdentity, ExtendedIdentity, DocumentData, DocumentImages, DocumentVerification, BiometricSamples
retryDocumentVerification
Available only when enableRetry is true.

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": null,
"residentState": null,
"residentCity": null,
"residentPostalCode": null
}
DocumentData — verified
{
"documentType": "ID",
"documentNumber": "D123456789",
"expiryDate": "2030-06-15",
"issuanceDate": "2020-06-15",
"issuingCountry": "FR",
"issuingAuthority": null
}
DocumentVerification — verified
{
"verdict": {
"status": "VERIFIED",
"reason": null
},
"issues": [],
"report": {
"$ref": "vault",
"$id": "7c3a1e82-fd12-4b5c-9e27-1a2b3c4d5e6f"
},
"evidences": [
{
"type": "documentFrontOriginalImage",
"ref": {
"$ref": "vault",
"$id": "4d29a1b2-3c4d-5e6f-7a8b-9c0d1e2f3a4b"
}
}
]
}
SignedDocumentsPackage — verified
{
"signatureProcessId": "txn-b9e4c7d2-1f3a-4e5b-8c6d-0a1b2c3d4e5f",
"signedDocuments": {
"mode": "archive",
"archive": {
"$ref": "vault",
"$id": "b9e4c7d2-1f3a-4e5b-8c6d-0a1b2c3d4e5f"
},
"documents": []
},
"createdAt": "2026-02-10T14:00:01.000Z"
}