API

Staging

https://developer.staging.datachecker.nl

Production

https://developer.datachecker.nl
More information can be found in our integration document

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.

EnvironmentAPI Base URL
Staginghttps://developer.staging.datachecker.nl
Productionhttps://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.

Workflow

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
NameDescription
bodyRequired

The request to retrieve an OAuth token.

Example

{
  "scopes": [
    "productapi.idverify.write",
    "productapi.sdk.read",
    "productapi.secureidlink.write"
  ]
}
FieldTypeDescription
scopesRequired

array[string]

Responses

200

- A successful response.

{
  "accessToken": "acc3ss_t0ken",
  "expiresIn": "3600",
  "tokenType": "Bearer"
}
FieldTypeDescription
accessToken

string

expiresIn

string

tokenType

string

default

- An unexpected error response.

FieldTypeDescription
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
NameTypeDescription
numberOfChallenges

integer

Only used for the FACE_VERIFY SDK to trigger the challenges.

customerReference

string

validateWatermark

boolean

servicesRequired

array[string]

[FACE_VERIFY, AUTO_CAPTURE, NFC]

Responses

200

- A successful response.

{
  "token": "base64 encoded token",
  "transactionId": "ae663ac6-60c1-4cc4-aa72-f05a7c91e68a"
}
FieldTypeDescription
token

string

transactionId

string

default

- An unexpected error response.

FieldTypeDescription
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
NameDescription
bodyRequired

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

{
  "transactionId": "8b4b2d8a-f832-4553-8acf-bdb76aae6763",
  "images": [
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "type": "COMPARE"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "type": "LIVE"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "type": "LIVE"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "type": "LIVE"
    }
  ]
}
FieldTypeDescription
transactionIdRequired

string

imagesRequired

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.

FieldTypeDescription
success

boolean

default

- An unexpected error response.

FieldTypeDescription
code

integer

message

string

details

array[object]

details.@type

string

post

/api/v2/idverify

Performs a identity verification check

Parameters

body
NameDescription
bodyRequired

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

{
  "product": "IDV_LITE",
  "images": [
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "type": "IDENTITY_CARD"
    }
  ]
}
FieldTypeDescription
transactionId

string

productRequired

string

Possible values: IDV_LITE, IDV_STANDARD and RTW_STANDARD

imagesRequired

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.

{
  "transactionId": "8b4b2d8a-f832-4553-8acf-bdb76aae6763"
}
FieldTypeDescription
transactionId

string

default

- An unexpected error response.

FieldTypeDescription
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.

{
  "results": [
    {
      "resultId": "1317e999-1ba3-4699-9e60-035af976b76c",
      "transactionId": "ae663ac6-60c1-4cc4-aa72-f05a7c91e68a",
      "product": "IDV_PREMIUM",
      "customerReference": "reference-id",
      "completed": "2023-07-31T08:02:17.499Z"
    },
    {
      "resultId": "7d4a4704-563e-4cec-8eef-ea98c5e4e870",
      "transactionId": "268b8961-0e60-473e-ae03-6d90e32d6c64",
      "product": "IDV_LITE",
      "customerReference": "reference-id-other",
      "completed": "2023-07-31T08:05:19.528Z"
    }
  ]
}
FieldTypeDescription
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.

FieldTypeDescription
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
NameTypeDescription
resultIdRequired

string

Responses

200

- A successful response.

{
  "result": "APPROVED",
  "transactionId": "ed04064c-1165-4afb-b2b1-96b22f6f1552",
  "faceVerify": {
    "result": "APPROVED"
  },
  "identity": {
    "result": "APPROVED",
    "data": {
      "name": {
        "fullname": "WILLEKE LISELOTTE DE BRUIJN",
        "givenNames": "WILLEKE LISELOTTE",
        "surname": "DE BRUIJN"
      },
      "dateOfBirth": "1965-10-03",
      "dateOfIssuance": "2014-09-03",
      "dateOfExpiry": "2024-09-03",
      "documentType": "PASSPORT",
      "documentNumber": "SPECI2O14",
      "gender": "F",
      "issuingStateOrOrganization": "NLD",
      "nationality": "NLD",
      "personalGovernmentId": "999999990",
      "placeOfBirth": "AMSTERDAM",
      "residencePermitType": "I"
    },
    "documentValidation": {
      "backgroundPrint": "APPROVED",
      "font": "APPROVED",
      "hologram": "APPROVED",
      "lamination": "APPROVED",
      "mrzFont": "APPROVED",
      "opticallyVariableInk": "NOT_APPLICABLE",
      "perforation": "NOT_APPLICABLE",
      "photoIntegration": "APPROVED",
      "stamps": "APPROVED"
    }
  },
  "rightToWork": {
    "result": "APPROVED",
    "data": {
      "vsFromDate": "2024-03-01",
      "vsDueDate": "2024-07-01",
      "twvFromDate": "2024-01-01",
      "twvDueDate": "2024-12-31",
      "personalGovernmentId": "999999990"
    }
  },
  "images": [
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "documentType": "PASSPORT",
      "pageType": "FRONT"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "documentType": "PASSPORT",
      "pageType": "BACK"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "documentType": "BSN_STATEMENT",
      "pageType": "ANY"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "documentType": "WORK_PERMIT",
      "pageType": "ANY"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "documentType": "COMPARE"
    },
    {
      "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==",
      "documentType": "LIVE"
    }
  ]
}
FieldTypeDescription
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.

FieldTypeDescription
code

integer

message

string

details

array[object]

details.@type

string

post

/api/v2/vog

Request for starting the VOG process

Parameters

body
NameDescription
bodyRequired

FieldTypeDescription
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.

FieldTypeDescription
transactionId

string

default

- An unexpected error response.

FieldTypeDescription
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 valueResult description
APPROVEDAn approved result will be provided
APPROVED_EUA Polish Passport will be returned
APPROVED_NON_EUA Ukrainian Passport will be returned
APPROVED_RPA Dutch Residence permit will be returned
DISAPPROVEDA disapproved result will be provided
TECHNICAL_REJECTA rejected result will be provided

Do you have questions or would you like to have a webhook configured? Contact the DataChecker support team.