Document Verification API Documentation
Authorization
header as follows:/openJourney
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer yourAccessToken |
Response Structure
Parameter | Type | Required | Description |
---|---|---|---|
journeyId | string | Yes | Unique identifier for the verification journey. |
passThroughData | object | No | Optional metadata to be carried through the journey. |
/addImage
Request Body Parameters
Parameter | Type | Required | Description |
---|---|---|---|
journeyId | String | Yes | Unique identifier for the verification journey. |
imageName | String | Yes | Name of the uploaded image file. |
imageSide | String | Yes | Specifies which side of the document (front, back, selfie). |
storeOnly | Boolean | No | If true, stores the image without classification. |
imageData | String | Yes | Base64-encoded image or multipart file. |
passThroughData | Object | No | Custom metadata (e.g., user ID). |
/verify
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer yourAccessToken |
Request Body Parameters
Parameter | Type | Required | Description |
---|---|---|---|
journeyId | String | Yes | Unique identifier for the verification journey. |
Response Structure
Parameter | Type | Description |
---|---|---|
journeyId | String | Unique identifier for the verification journey. |
status | String | Status of the verification process (e.g., verificationComplete ). |
identitySubject | Object | Contains extracted identity details from the document. |
identitySubject.type | String | Type of identity subject (e.g., "person" ). |
identitySubject.fullName | String | Full name as extracted from the document. |
identitySubject.nameStructure | Object | Breakdown of the name details. |
identitySubject.nameStructure.firstName | String | First name of the individual. |
identitySubject.nameStructure.lastName | String | Last name of the individual. |
identitySubject.nameStructure.nativeFullName | String | Native full name of the individual. |
identitySubject.gender | String | Gender (M , F , or X ). |
identitySubject.nationality | String | Nationality code (ISO 3166, e.g., "DE" ). |
identitySubject.dob | String | Date of birth (YYYY/MM/DD ). |
identitySubject.addressSingleLine | String | Extracted address in single-line format. |
identitySubject.email | String | Extracted email (if available). |
identitySubject.mobileNumber | String | Extracted mobile number (if available). |
authoritativeData | Object | Contains verified details from the identity document. |
authoritativeData.identityDocument | Object | Identity document details. |
authoritativeData.identityDocument.type | String | Type of document (passport , IDCard , etc.). |
authoritativeData.identityDocument.idNumber | String | Document ID number. |
authoritativeData.identityDocument.issuingCountry | String | Country that issued the document. |
authoritativeData.identityDocument.expeditor | String | Issuing authority (e.g., "BH Neunkirchen" ). |
authoritativeData.identityDocument.expirationDate | String | Expiry date of the document (YYYY/MM/DD ). |
authoritativeData.identityDocument.verificationChannel | String | How verification was performed (optical , manual , etc.). |
proofOfWork | Object | Contains metadata related to proof of verification. |
proofOfWork.type | String | Type of proof (e.g., "image" ). |
proofOfWork.titleOfProof | String | Title describing the proof (e.g., "IDFront" ). |
proofOfWork.timestampOfProof | String | Timestamp when the proof was collected (YYYY/MM/DDTHH:MM:SSZ ). |
auditTrail | Object | Contains logging details about the verification process. |
auditTrail.workId | String | Unique ID of the verification attempt. |
auditTrail.workStatus | String | Status of the work (PASS , FAIL ). |
auditTrail.workStartTst | String | Timestamp when the verification started. |
auditTrail.workEndTst | String | Timestamp when the verification ended. |
auditTrail.workResult | String | Summary of the verification result. |
fraudAlerts | Object | Contains fraud detection-related data. |
fraudAlerts.fraudAlertDetail | Array | List of detected fraud alerts (if any). |
fraudAlerts.aggregateFraudAlertScore | Number | Overall fraud risk score (0 = no risk ). |
croppedImages | Object | Cropped images extracted from the document. |
croppedImages.front | String | Base64-encoded image of the front side. |
croppedImages.portrait | String | Base64-encoded portrait image from the document. |
croppedImages.signature | String | Base64-encoded signature image. |
croppedImages.back | String | Base64-encoded image of the back side. |
croppedImages.selfie | String | Base64-encoded selfie image (if applicable). |
/verify/age
ageFrom
and ageTo
are mutually exclusive—do not use both in the same request.
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer yourAccessToken |
Request Body Parameters
Parameter | Type | Description |
---|---|---|
ageFrom | Number | Minimum age for eligibility (can’t combine with ageTo ). |
ageTo | Number | Maximum age for eligibility (can’t combine with ageFrom ). |
minDisabilityPercentage | Number | Minimum disability percentage required for eligibility. |
Response Structure
Parameter | Type | Description |
---|---|---|
journeyId | String | Unique identifier for the verification journey. |
status | String | Status of the verification process (ageAndDisabilityVerificationComplete ). |
ageResult | String | Indicates if the individual meets the age requirement (yes or no ). |
disabilityResult | String | Indicates if the individual meets the disability criteria (eligible or not eligible ). |
/verify/single
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer yourAccessToken |
Request Body Parameters
Parameter | Type | Required | Description |
---|---|---|---|
images | Array | Yes | List of image objects for verification. |
imageName | String | Yes | Name of the uploaded image. |
imageSide | String | Yes | Specifies document side (front , back , etc.). |
imageData | String | Yes | Base64-encoded image data (or file upload via multipart). |
Response Structure
Parameter | Type | Description |
---|---|---|
journeyId | String | Unique identifier for the verification journey. |
status | String | Status of the verification process (e.g., verificationComplete ). |
identitySubject | Object | Contains extracted identity details from the document. |
identitySubject.type | String | Type of identity subject (e.g., "person" ). |
identitySubject.fullName | String | Full name as extracted from the document. |
identitySubject.nameStructure | Object | Breakdown of the name details. |
identitySubject.nameStructure.firstName | String | First name of the individual. |
identitySubject.nameStructure.lastName | String | Last name of the individual. |
identitySubject.nameStructure.nativeFullName | String | Native full name of the individual. |
identitySubject.gender | String | Gender (M , F , or X ). |
identitySubject.nationality | String | Nationality code (ISO 3166, e.g., "DE" ). |
identitySubject.dob | String | Date of birth (YYYY/MM/DD ). |
identitySubject.addressSingleLine | String | Extracted address in single-line format. |
identitySubject.email | String | Extracted email (if available). |
identitySubject.mobileNumber | String | Extracted mobile number (if available). |
authoritativeData | Object | Contains verified details from the identity document. |
authoritativeData.identityDocument | Object | Identity document details. |
authoritativeData.identityDocument.type | String | Type of document (passport , IDCard , etc.). |
authoritativeData.identityDocument.idNumber | String | Document ID number. |
authoritativeData.identityDocument.issuingCountry | String | Country that issued the document. |
authoritativeData.identityDocument.expeditor | String | Issuing authority (e.g., "BH Neunkirchen" ). |
authoritativeData.identityDocument.expirationDate | String | Expiry date of the document (YYYY/MM/DD ). |
authoritativeData.identityDocument.verificationChannel | String | How verification was performed (optical , manual , etc.). |
proofOfWork | Object | Contains metadata related to proof of verification. |
proofOfWork.type | String | Type of proof (e.g., "image" ). |
proofOfWork.titleOfProof | String | Title describing the proof (e.g., "IDFront" ). |
proofOfWork.timestampOfProof | String | Timestamp when the proof was collected (YYYY/MM/DDTHH:MM:SSZ ). |
auditTrail | Object | Contains logging details about the verification process. |
auditTrail.workId | String | Unique ID of the verification attempt. |
auditTrail.workStatus | String | Status of the work (PASS , FAIL ). |
auditTrail.workStartTst | String | Timestamp when the verification started. |
auditTrail.workEndTst | String | Timestamp when the verification ended. |
auditTrail.workResult | String | Summary of the verification result. |
fraudAlerts | Object | Contains fraud detection-related data. |
fraudAlerts.fraudAlertDetail | Array | List of detected fraud alerts (if any). |
fraudAlerts.aggregateFraudAlertScore | Number | Overall fraud risk score (0 = no risk ). |
croppedImages | Object | Cropped images extracted from the document. |
croppedImages.front | String | Base64-encoded image of the front side. |
croppedImages.portrait | String | Base64-encoded portrait image from the document. |
croppedImages.signature | String | Base64-encoded signature image. |
croppedImages.back | String | Base64-encoded image of the back side. |
croppedImages.selfie | String | Base64-encoded selfie image (if applicable). |
HTTP Status | Meaning | Description |
---|---|---|
200 | OK | Request succeeded. See response body for details. |
400 | Bad Request | The request was invalid or missing required parameters. |
401 | Unauthorized | Authentication failed or the user lacks valid credentials. |
403 | Forbidden | The user does not have permission to perform this operation. |
404 | Not Found | Resource or endpoint not found. |
422 | Unprocessable Entity | The request is understood, but cannot be processed (e.g., malformed base64 or missing data). |
429 | Too Many Requests | Rate limit exceeded. |
500 | Internal Server Error | A generic server-side error occurred. |
4xx
or 5xx
status code), the API returns a JSON body with the following format:
Response Structure
Field | Type | Description |
---|---|---|
errorCode | String | A short code identifying the specific error scenario, e.g., invalidImageData . |
errorMessage | String | A human-readable description of the error. |
details | Object | Additional context (e.g., invalid field, expected values vs. actual). |
errorCode
is particularly useful for programmatic checks in client applications.errorMessage
should help developers quickly understand what went wrong.details
can be omitted if no extra info is needed.Endpoint | Error Code | HTTP Status | Error Message | Description |
---|---|---|---|---|
/openJourney | journeyAlreadyExists | 400 | A journey already exists for this user/session. | Occurs if the client tries to open a new journey while one is still active. |
/addImage | invalidImageData | 400 | Base64 string is malformed or missing. | Triggered if imageData is not valid base64 or is absent. |
journeyNotFound | 404 | No active journey with the given journeyId . | The provided journeyId does not exist or has already been closed. | |
/verify | journeyNotFound | 404 | No active journey with the given journeyId . | Attempted verification on an invalid or missing journeyId . |
missingImages | 422 | Required images (front/back/selfie) were not all provided. | Verification could not be completed because essential images are missing. | |
/verify/age | mutuallyExclusive | 400 | ageFrom and ageTo cannot both be specified. | The request included both ageFrom and ageTo , which is not allowed. |
journeyNotFound | 404 | No active journey with the given journeyId . | As above. | |
/verify/single | missingImages | 422 | Not all necessary images (front/back) were provided. | Single-step verification requires all images in a single request. |
invalidImageData | 400 | Base64 string is malformed or missing. | Same as above, but specifically applies to single-step scenarios. |
4xx
or 5xx
).errorCode
to determine the type of error (e.g., JOURNEY_NOT_FOUND
), and handle it in your client application (e.g., show a specific user message).errorMessage
for a human-readable explanation of the issue.details
if present, to get more granular context (e.g., which field triggered the error).