We have two environments available for our customers, a staging environment for integration and testing and a production environment. For each environment you will receive different credentials.
| Environment | API Base URL |
|---|---|
| Staging | https://developer.staging.datachecker.nl |
| Production | https://developer.datachecker.nl |
It's recommended that you implement two separate processes. One to handle the upload of the documents and another process that will handle the processing of all the results. The following sequence diagram is an illustration of the processes.

post
/api/v2/oauth/token
Get an OAuth token to provide authorization for follow-up requests. The ClientID and ClientSecret can be submitted with Basic Auth, the scopes are send in the body.
Parameters
body| Name | Type | Description | |
|---|---|---|---|
body | Required | The request to retrieve an OAuth token. |
Example
| Field | Type | Description | |
|---|---|---|---|
scopes | Required | array[string] |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
accessToken | string | ||
expiresIn | string | ||
tokenType | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
get
/api/v2/sdk/token
Retrieves a token to unlock the SDK. The token is valid for an hour and can only be applied to one transaction.
Parameters
query| Name | Type | Description | |
|---|---|---|---|
numberOfChallenges | integer | Only used for the FACE_VERIFY SDK to trigger the challenges. | |
customerReference | string | ||
validateWatermark | boolean | ||
services | Required | array[string] | [FACE_VERIFY, AUTO_CAPTURE, NFC] |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
token | string | ||
transactionId | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
post
/api/v2/faceverify
Performs a face liveness check with challenges (up, right, down, left)
Parameters
body| Name | Type | Description | |
|---|---|---|---|
body | Required | The request for a face verify transaction. The transactionID can be retrieved from the sdk/token endpoint and the images should be base64 encoded. One COMPARE image and the LIVE images from the FaceVerify SDK will need to be provided. |
Example
| Field | Type | Description | |
|---|---|---|---|
transactionId | Required | string | |
images | Required | array[object] | |
images.data | string | ||
images.type | string | Optional, possible values: ADDITIONAL, BSN_STATEMENT, COMPARE, DRIVING_LICENSE, IDENTITY_CARD, LIVE, PAPER, PASSPORT, PORTRAIT, RESIDENCE_PERMIT, SIGNATURE, WORK_PERMIT | |
images.additionalDocumentType | string | Optional mapping for ADDITIONAL or PAPER type documents | |
images.customerReference | string |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
success | boolean |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
post
/api/v2/idverify
Performs a identity verification check
Parameters
body| Name | Type | Description | |
|---|---|---|---|
body | Required | The request for an identify verification transaction. The images should be base64 encoded. Possible values for the product are: IDV_LITE, IDV_STANDARD and RTW_STANDARD |
Example
| Field | Type | Description | |
|---|---|---|---|
transactionId | string | ||
product | Required | string | Possible values: IDV_LITE, IDV_STANDARD and RTW_STANDARD |
images | Required | array[object] | |
images.data | string | ||
images.type | string | Optional, possible values: ADDITIONAL, BSN_STATEMENT, COMPARE, DRIVING_LICENSE, IDENTITY_CARD, LIVE, PAPER, PASSPORT, PORTRAIT, RESIDENCE_PERMIT, SIGNATURE, WORK_PERMIT | |
images.additionalDocumentType | string | Optional mapping for ADDITIONAL or PAPER type documents | |
images.customerReference | string | ||
customerReference | string | ||
userId | string |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
transactionId | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
get
/api/v2/poll
Poll for transactions that are completed. If the optional query parameter is provided the search will only be performed for that specific transaction, otherwise it will search for all completed transactions.
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
results | array[object] | ||
results.resultId | string | ||
results.transactionId | string | ||
results.product | string | ||
results.customerReference | string | ||
results.completed | string | ||
results.userId | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
get
/api/v2/result/{resultId}
Retrieves the result of a face verify or id verify transaction. The required resultId can be retrieved from the poll endpoint.
Parameters
path| Name | Type | Description | |
|---|---|---|---|
resultId | Required | string |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
transactionId | string | ||
customerReference | string | ||
faceVerify | object | Optional, only available for PREMIUM products | |
faceVerify.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
faceVerify.messages | array[string] | ||
faceVerify.customerReferences | array[string] | ||
identity | object | ||
identity.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
identity.messages | array[string] | ||
identity.data | object | ||
identity.data.name | object | ||
identity.data.name.fullname | string | ||
identity.data.name.givenNames | string | ||
identity.data.name.surname | string | ||
identity.data.dateOfBirth | string | ||
identity.data.dateOfIssuance | string | ||
identity.data.dateOfExpiry | string | ||
identity.data.documentType | string | ||
identity.data.documentSubType | string | ||
identity.data.documentNumber | string | ||
identity.data.gender | string | ||
identity.data.issuingStateOrOrganization | string | ||
identity.data.nationality | string | ||
identity.data.personalGovernmentId | string | ||
identity.data.placeOfBirth | string | ||
identity.data.residencePermitType | string | Optional, only available for residence permits | |
identity.documentValidation | object | ||
identity.documentValidation.backgroundPrint | string | ||
identity.documentValidation.font | string | ||
identity.documentValidation.hologram | string | ||
identity.documentValidation.lamination | string | ||
identity.documentValidation.mrzFont | string | ||
identity.documentValidation.opticallyVariableInk | string | ||
identity.documentValidation.perforation | string | ||
identity.documentValidation.photoIntegration | string | ||
identity.documentValidation.stamps | string | ||
identity.verifications | object | ||
identity.verifications.sanctionList | object | ||
identity.verifications.sanctionList.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
identity.verifications.sanctionList.foundOnLists | array[string] | ||
identity.verifications.sanctionList.verificationResult | string | [NOT_EXECUTED, HIT, NO_HIT] | |
identity.verifications.lostAndStolen | object | ||
identity.verifications.lostAndStolen.messages | array[string] | ||
identity.verifications.lostAndStolen.verificationResult | string | [NOT_EXECUTED, HIT, NO_HIT] | |
identity.customerReferences | array[string] | ||
rightToWork | object | Optional, only available for RTW products | |
rightToWork.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
rightToWork.messages | array[string] | ||
rightToWork.data | object | ||
rightToWork.data.vsFromDate | string | ||
rightToWork.data.vsDueDate | string | ||
rightToWork.data.twvFromDate | string | ||
rightToWork.data.twvDueDate | string | ||
rightToWork.data.personalGovernmentId | string | ||
rightToWork.data.attachmentDueDate | string | ||
rightToWork.data.vignetteDueDate | string | ||
rightToWork.data.conditions | string | ||
rightToWork.data.details | string | ||
rightToWork.data.endDate | string | ||
rightToWork.data.dueDate | string | ||
rightToWork.data.startDate | string | ||
rightToWork.rtwType | string | ||
rightToWork.customerReferences | array[string] | ||
payrollTaxStatement | object | Optional, only available for PTS product | |
payrollTaxStatement.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
payrollTaxStatement.messages | array[string] | ||
payrollTaxStatement.data | object | ||
payrollTaxStatement.data.personalGovernmentIdPresent | boolean | ||
payrollTaxStatement.data.signDatePresent | boolean | ||
payrollTaxStatement.data.nameAddressResidencePresent | boolean | ||
payrollTaxStatement.data.signaturePresent | boolean | ||
payrollTaxStatement.data.applyPayrollTax | boolean | ||
payrollTaxStatement.data.payrollTaxDate | string | ||
payrollTaxStatement.data.signDate | string | ||
payrollTaxStatement.data.personalGovernmentId | string | ||
payrollTaxStatement.inputData | object | ||
payrollTaxStatement.inputData.applyPayrollTax | boolean | ||
payrollTaxStatement.inputData.city | string | ||
payrollTaxStatement.inputData.houseNumber | string | ||
payrollTaxStatement.inputData.payrollTaxDate | string | ||
payrollTaxStatement.inputData.postalCode | string | ||
payrollTaxStatement.inputData.street | string | ||
payrollTaxStatement.inputData.houseNumberAddition | string | ||
payrollTaxStatement.inputData.country | string | ||
payrollTaxStatement.inputData.addressInNld | boolean | ||
payrollTaxStatement.inputData.bsn | string | ||
payrollTaxStatement.inputData.dateOfBirth | string | ||
payrollTaxStatement.inputData.fullname | string | ||
payrollTaxStatement.inputData.nationality | string | ||
payrollTaxStatement.customerReferences | array[string] | ||
result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
messages | array[string] | ||
images | array[object] | ||
images.data | string | ||
images.documentType | string | ||
images.metadata | object | ||
images.pageType | string | ||
images.customerReference | string | ||
files | array[object] | ||
files.data | string | ||
files.documentType | string | ||
drivingLicense | object | Optional, only available when DL Check is applied | |
drivingLicense.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
drivingLicense.messages | array[string] | ||
drivingLicense.data | object | ||
drivingLicense.data.name | object | ||
drivingLicense.data.name.fullname | string | ||
drivingLicense.data.name.givenNames | string | ||
drivingLicense.data.name.surname | string | ||
drivingLicense.data.dateOfBirth | string | ||
drivingLicense.data.dateOfIssuance | string | ||
drivingLicense.data.dateOfExpiry | string | ||
drivingLicense.data.documentNumber | string | ||
drivingLicense.data.issuingStateOrOrganization | string | ||
drivingLicense.data.personalGovernmentId | string | ||
drivingLicense.data.placeOfBirth | string | ||
drivingLicense.data.class | string | ||
drivingLicense.data.classes | array[object] | ||
drivingLicense.data.classes.name | string | ||
drivingLicense.data.classes.dateOfExpiry | string | ||
drivingLicense.customerReferences | array[string] | ||
userId | string | ||
digitalSigning | object | Optional, only available for Digital Signing product | |
digitalSigning.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
digitalSigning.messages | array[string] | ||
digitalSigning.linkedTransactions | array[string] | ||
digitalSigning.customerReferences | array[string] | ||
vog | object | Optional, only available when VOG is requested | |
vog.createdAt | string | ||
vog.status | string | ||
vog.result | string | [UNKNOWN, APPROVED, DISAPPROVED, TECHNICAL_REJECT] | |
vog.messages | array[string] | ||
vog.customerReferences | array[string] | ||
additionalDocuments | array[object] | Optional, extracted data from additional documents | |
additionalDocuments.additionalDocumentType | string | ||
additionalDocuments.customerReferences | array[string] | ||
additionalDocuments.data | object | ||
additionalDocuments.data.socialSecurityNumber | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
post
/api/v2/secureidlink
Create a secureID link that will either be directly send to the person configured in the request or returned here if communication is disabled.
Parameters
body| Name | Type | Description | |
|---|---|---|---|
body | Required | Request to create a Secure ID Link |
Example
| Field | Type | Description | |
|---|---|---|---|
additionalDocuments | array[string] | The user will be asked to capture the additional documents | |
emailAddress | string | ||
communicationModes | array[string] | [MODE_EMAIL, MODE_SMS, MODE_WHATSAPP] | |
disableCommunication | boolean | When true, the link and QR code will be returned. The configured email and sms will not be sent. | |
languagePrefix | string | Available values are depending on your account configuration. | |
name | string | ||
phoneNumber | string | ||
enableOneTimePassword | boolean | Available values are depending on your account configuration. | |
product | string | Possible values: IDV_LITE, IDV_STANDARD, IDV_PREMIUM, RTW_STANDARD and RTW_PREMIUM | |
customerReference | string | ||
userId | string | ||
whatsappPhoneNumber | string |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
link | string | ||
secureId | string | ||
transactionId | string | ||
qrCode | string | ||
communicationsResponse | array[object] | ||
communicationsResponse.communicationMode | string | ||
communicationsResponse.status | string | ||
whatsappRedirectUrl | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
post
/api/v2/secureidlinks
Create multiple secureID links by uploading a csv file.
Parameters
body| Name | Type | Description | |
|---|---|---|---|
body | Required | Request to create multiple secureID links. |
Example
| Field | Type | Description | |
|---|---|---|---|
file | Required | string | The file should be a base64 encoded, semicolon delimited CSV file with the following columns: name, emailAddress, phoneNumber, language, customerReference |
product | Required | string | Possible values: IDV_LITE, IDV_STANDARD, IDV_PREMIUM, RTW_STANDARD and RTW_PREMIUM |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
success | boolean | ||
errors | array[object] | ||
errors.message | string | ||
errors.row | integer |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
post
/api/v2/vog
Request for starting the VOG process
Parameters
body| Name | Type | Description | |
|---|---|---|---|
body | Required |
| Field | Type | Description | |
|---|---|---|---|
customerReference | string | ||
emailAddress | string | ||
givenNames | string | ||
language | string | ||
surname | string | ||
userId | string | ||
vogRequest | object | ||
vogRequest.companyName | string | The name of the company | |
vogRequest.jobTitle | string | The job title | |
vogRequest.profiles | array[string] | A list of numbers that correspond to the VOG profiles | |
vogRequest.profileType | string | The type of the VOG profile. Possible values: GENERIC, SPECIFIC [GENERIC, SPECIFIC] |
Responses
200- A successful response.
| Field | Type | Description | |
|---|---|---|---|
transactionId | string |
default- An unexpected error response.
| Field | Type | Description | |
|---|---|---|---|
code | integer | ||
message | string | ||
details | array[object] | ||
details.@type | string |
To test the different kind of results, you can add a “dc-test” http header to the request of the IDVerify and SecureIDLink endpoints. This will immediately provide a mocked result that will be available at the polling and result endpoint. This is only available on the staging environment.
The content of the mocked result can change when another product is requested.
- IDV products will contain the identity object
- RTW products will also contain the rightToWork object
- PREMIUM products will also contain the faceVerify object (only available on the SecureIDLink endpoint)
| “dc-test” http header value | Result description |
|---|---|
| APPROVED | An approved result will be provided |
| APPROVED_EU | A Polish Passport will be returned |
| APPROVED_NON_EU | A Ukrainian Passport will be returned |
| APPROVED_RP | A Dutch Residence permit will be returned |
| DISAPPROVED | A disapproved result will be provided |
| TECHNICAL_REJECT | A rejected result will be provided |
Do you have questions or would you like to have a webhook configured? Contact the DataChecker support team.
