1. References

API Documentation: The API documentation of endpoints and models is available here.
Swagger: The swagger.json of the openapi documentation is available here.

2. Overview

2.1. Core Principles

The Customer Identity Server (CIS) is a solution designed to manage and organize documents analyses. The system can process documents either within organized files or as standalone:

  • Folder-based processing: Manage a file containing one or more documents, enabling to have cross-checks of the information within the different documents.

  • Single document processing: Manage an individual document analysis.

2.2. Types of Analysis

2.2.1. Core automatic analysis

The platform performs an automatic analysis of the submitted document, including image processing, document type recognition, automatic data extraction, and checks performed on the document.

Additionally, our platform offers the possibility to add additional verification depending on the integrator needs.

2.2.2. Manual analysis

Once an automatic analysis has been performed, it is possible to have the report reviewed by a person called a "manual operator". This step is not mandatory, and it is possible to activate this feature via configurations depending on the integrator use cases:

  • Systematic review: All documents are sent for manual review

  • Conditional review: Triggered based on predefined criteria

For more information, please reach out for your point of contact.

2.2.3. Additional analysis for consolidation

After at least one automatic analysis has been performed, and data have already been extracted, it is possible to configure additional analysis, most of them being dedicated to try to detect fraudulent documents or enrich extracted data.

For more information, please reach out for your point of contact.

2.3. Content of a report

Either it is a file report or a document report, you will find a check tree that contains the list of all processed checks and their individual result. In case of error or warning, you may find a reason explaining the result.

2.3.1. Document report content

Extracted data

Extracted data represents information that has been read, parsed, and structured from the analyzed document using advanced OCR and data processing technologies.

Processed Images

As part of the analysis response, you will receive a list of processed images generated during the document verification workflow. Those images are either the originals or the crops derived from the originals.

  1. Note: All extracted images are given in JPEG format.

2.3.2. File report content

As a file is an aggregation of documents, the check tree is an aggregation of documents check trees taking the worst status for each check. Additionally, "cross-checks" are performed to validate the consistency of the documents (as they all belong to the same person).

Identities

File level identities represent an aggregation of identity information across individual document analysis within the file. As part of the file analysis results, you will get a list of identities containing aggregated data extracted from all processed document.

2.4. Terminology

Integrator: IDnow’s contractual customer who implements and integrates the CIS API into their existing systems.

End-User: The integrator’s customer who submits documents to the CIS platform for verification and control.

Realm: The integrator’s dedicated storage space for the files and documents. It also holds dedicated configurations that allows to customize flows, notifications endpoints and report checks tree.

Document: The smallest analyzable unit in the API. A document contains one or more images used for analysis and are related to the given type of that document (e.g., ID Card, Passport, Proof of Address). Documents can exist standalone or be grouped within a file.

File: A container that groups multiple documents. When a file is analyzed, all contained documents are processed individually first, then their results are aggregated and cross-checked at the file level to provide one single report.

Image: A physical representation of a document that is processed during the analysis flow (e.g., photo, scan, PDF page). Sets of images will be created during the process of the analysis flow (e.g., crops).

Attachment: A physical file that is not processed during the analysis flow. It is most often an additional proof that needs to be stored alongside with the processed images of a document. An attachment can be added at file level.

Comment: This is a piece of information, a text, added manually by a person and dedicated to other persons reading a file content.

Report: The consolidated output of an analysis. A report aggregates extracted data (e.g., name, date of birth), derived image artifacts (e.g., crops), and validation checks (e.g., data consistency, image quality or specific checks). Reports are produced at the document level and can be aggregated at the file level.

Notification: A small message sent to the integrator’s system to notify specific steps of the analysis flow have been reached or performed.

3. API Endpoints

The CIS API exposes two distinct services:

  • Authentication service (OpenID Connect): obtain an access token via the token endpoint.

  • Main CIS API: protected by OpenID Connect and accessible using the issued access token.

3.1. Authentication

  • Protocol: OAuth2

  • Required flow: Client Credentials

  • Authorization header: Authorization: Bearer <access_token>

  • Transport: HTTPS (TLS) only

3.2. Environments and URLs

3.2.1. Sandbox

Platform dedicated to testing and integration validation. Data and configuration are isolated from Production and performance/SLA may differ.

3.3. Examples

See section Getting started for examples.

4. Asynchronous mode

Most API endpoints support two execution modes: synchronous and asynchronous.

  • In synchronous mode, the server processes the request and returns the operation result in the same response.

  • In asynchronous mode, the server immediately creates and returns a task associated with the requested operation. The operation is then processed in the background.

Asynchronous mode is strongly recommended for time-consuming operations (for example, the check workflow). For such operations, some features may be unavailable in synchronous mode (e.g., check a document and check a file will not have manual review).

The task response contains a uid that you can use later to retrieve the task status via the get task endpoint.

You can also configure callback endpoints to be notified when a task is completed. This mechanism eliminates the need to poll the task or the related entity periodically. For more details on the notification process, refer to the notifications section.

Note

Recommendations:

  • Prefer asynchronous mode for operations with high latency. In that case, Prefer using the notification method over a polling mechanism.

  • If you still use synchronous mode, set appropriate client timeouts and be aware that some features may not be available.

5. Getting Started

5.1. Authentication

All API endpoints require authentication.

Authentication uses OAuth 2.0 with the Client Credentials grant. Obtain an access token from the OpenID Connect token endpoint, then include it in subsequent API calls via the Authorization header.

Example: retrieve an access_token (Client Credentials grant):

curl --location '$AUTH_ENDPOINT/auth/realms/customer-identity/protocol/openid-connect/token' \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data "grant_type=client_credentials" \
--data "client_id=$CLIENT_ID" \
--data "client_secret=$CLIENT_SECRET"

And the response you will receive containing the access token, and its duration validity:

{
    "access_token": "eyJhbGci...IbNMQKRew",
    "expires_in": 300,
    "refresh_expires_in": 0,
    "token_type": "Bearer",
    "not-before-policy": 0,
    "scope": "email profile"
}
Note

With the Client Credentials grant, a refresh token is not issued (refresh_expires_in: 0). Re-request an access token when expired.

Use the token for subsequent API calls:

curl '$CIS_API_ENDPOINT/rest/health' \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Authorization: Bearer eyJhbGci...IbNMQKRew"

5.2. Notifications

The CIS API provides a notification (callback) mechanism. Callbacks are sent to your configured endpoints when specific steps in the analysis workflow occur (for example, when a file analysis completes and its report is available).

Some actions are synchronous (for example, creating an empty file), while others are asynchronous (for example, starting a file analysis). With notifications, you can trigger an asynchronous operation and wait for the corresponding event instead of polling.

Note

You can configure multiple callback endpoints.
Notifications include the relevant UIDs associated with the workflow, so you do not need one endpoint per flow.
Your endpoints should be configured once and can be updated as needed.

5.2.1. Setting up notifications endpoints

Add a new callback endpoint:

curl '$CIS_API_ENDPOINT/rest/v1/realm/$MY_REALM/endpoint' \
--header 'Content-Type: application/json' \
--header "Accept: application/json" \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data ' {
    "clientId": "callback-for-available-report",
    "url": "https://production.my-company.io/"
}'

You will receive a response like this example:

{
  "clientId": "callback-for-available-report",
  "url": "https://production.my-company.io/",
  "active": true
}

By default, the endpoint is not ready to receive events. You need to subscribe to specific events:

curl '$CIS_API_ENDPOINT/rest/v1/realm/$MY_REALM/endpoint/endpoint/callback-for-available-report/event' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{
	"eventKind": "FILE",
	"method": "UPDATE",
	"operation" : "CHECK"
}'

To subscribe to all events related to files, set event kind to "FILE" (no method, no operation). To subscribe to all events related to file updates, set kind to "FILE" and method to "UPDATE" (no operation), and so on.

The list of available events is visible in the annex.

The format of the events is the following:

{
  "resourceId": "f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c",
  "resourceType": "DOCUMENT", // Corresponds to the event kind
  "event": "UPDATE_CHECK_DOCUMENT", // Concatenation of event method and event operation (separated by an underscore)
  "eventDate": "2024-10-27T14:30:00.000Z",
  "eventData": {
    "realm": "my-company",
    "check_status": "OK", // The status of the check report if available
    "event_status": "OK", // Ok if no exception raised during the process, else the ErrorMessage
    "old_state": "IN_PROGRESS",
    "new_state": "FINAL",
    "old_validity": "VALID",
    "new_validity": "VALID",
    "file_uid": "3a626a76-e536-46d2-8887-64ccb364df39",
    "document_uid": "f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c",
    "image_uid": " 7041ebdc-14dd-4b97-97a9-b3525b6ed4c5 ",
    "document_type": "PASSPORT",
    "image_side": "RECTO"
  }
}

The client calling your notification endpoint uses a short timeout. Your endpoint MUST acknowledge receipt quickly with HTTP 200 OK and MUST NOT perform long-running processing in the request path.

Long response times may lead to timeouts on our side, and the notification will be marked as failed.

On failure or any non-200 response, the system performs a limited number of retries.

For more details, see the notifications API description.

If you need further guidance or advanced filtering examples, contact your point of contact.

5.3. Basic Flows

5.3.1. Working with single document

If your flow only requires to analyse one single document, you do not need to create a file. You can simply create a document with images (or add images in a second call) and then proceed to start the analysis.

Here is an example on how to proceed with an ID Card document.

First create the document (with images):

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document?synchronous=true' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{
  "type": "ID",
  "images": [
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "documentPart": "RECTO",
      "type": "DL"
    },
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "documentPart": "VERSO",
      "type": "DL"
    }
  ]
}'

If working in synchronous mode (which is recommended for this call), you will receive a response containing the uid of the created document:

{
  "uid": "f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c",
  "owner": "my-company",
  "type": "ID",
  "creationDate": "2025-10-21T10:52:27+0200",
  "lastUpdateDate": "2025-10-21T10:52:27+0200",
}

Once your document contains all the required images to process it, you can start the analysis flow:

curl -X POST '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document/f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c/check' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew'

During the analysis, you will receive notifications on configured endpoints. With those notifications you will know when all steps of the analysis are done.

Once you receive the final notification, you can get the document. The response will contain the report generated:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document/f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c'
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew'

You can find the details of a document response in the document response section.

If you update a document after a check has been performed, the status of the last report of this document will be set as obsolete.

An example of a DocumentResponse is available in the annex.

It is possible to create empty document (without images) in order to add images later during your process. If you created an empty document, you can add images with the following request:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document/f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c/addImages?synchronous=true' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '[
  {
    "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
    "documentPart": "RECTO",
    "type": "DL"
  },
  {
    "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
    "documentPart": "VERSO",
    "type": "DL"
  }
]'

5.3.2. Working with files

Your use case may require that a set of documents are check all together and that the consistency between all of them is verified. In that case you will need to work with files.

Let’s create a file where you will add an ID document and a proof of address.

First you need to create an empty file. In this example we will provide no options or parameters at all:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/file?synchronous=true' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{}'

If working in synchronous mode (which is recommended for this call), you will receive a response containing the uid of the created file:

{
  "uid": "3a626a76-e536-46d2-8887-64ccb364df39",
  "creationDate": "2025-10-21T10:52:27+0200",
  "lastUpdateDate": "2025-10-21T10:52:27+0200",
  "validity": "NOT_VALIDATED",
  "state": "INITIAL"
}

You can now add the documents inside the file. When creating the document, you can specify the uid of the wanted file, or you can link the document to a file in a separate call.

In the following example we will automatically link the documents to the file by adding the fileUid in the request:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document?synchronous=true&fileUid=3a626a76-e536-46d2-8887-64ccb364df39' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{
  "type": "ID",
  "images": [
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "documentPart": "RECTO",
      "type": "DL"
    },
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "documentPart": "VERSO",
      "type": "DL"
    }
  ]
}'
curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document?synchronous=true&fileUid=3a626a76-e536-46d2-8887-64ccb364df39' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{
  "type": "ADDRESS_PROOF",
  "images": [
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "type": "DL"
    }
  ]
}'

If working in synchronous mode (which is recommended for this call), you will receive a response containing the uid of the created document:

{
    "uid": "f5ba2d29-d93b-4c0e-9ad0-60fd4bf01e1c",
    "owner": "my-company",
    "type": "ADDRESS_PROOF",
    "fileUid": "3a626a76-e536-46d2-8887-64ccb364df39",
    "lastReportStatus": "NONE",
    "creationDate": "2025-10-27T15:32:22+0100",
    "lastUpdateDate": "2025-10-27T15:32:22+0100"
}

Once your file contains all the required documents, you can start the analysis flow:

curl -X POST '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/file/3a626a76-e536-46d2-8887-64ccb364df39/check' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew'

During the analysis, you will receive notifications on configured endpoints. With those notifications you will know when all steps of the analysis are done.

Once you receive the final notification, you can get the file. The response will contain the report generated:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/file/3a626a76-e536-46d2-8887-64ccb364df39'
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew'

You can find the details of a document response in the file response section.

If you update a file or a document of the file after a check has been performed, the status of the last report of this file will be set as obsolete.

An example of a FileResponse is available in the annex.

5.4. Customizing reports

5.4.1. Check Factory

The generated report includes a standard check tree (a structured set of checks with statuses and details). Depending on your business requirements, you may want to adjust the outcome of certain checks so that the final report better matches your internal policies.

The Check Factory is a built-in configuration mechanism that allows ones to:

  • Enable or disable specific checks,

  • Map statuses (for example, convert ERROR to WARNING or OK under certain conditions),

  • Personalize check behavior based on defined rules.

Examples:

  • Some checks can produce different error causes. You can configure status mapping so that a specific cause of ERROR is downgraded to WARNING or OK when it aligns with your policy.

  • The IDENTITY_MAJORITY check validates that the document owner is at least 18 years old. You can adjust this minimum age (e.g., to 21) to fit your business rules.

Note

You can not manage this configuration via the API.

For setup or further details, please contact your point of contact.

5.4.2. Manual analysis triggers

In order to consolidate the extracted data and the report, it is possible to activate a review by a manual operator.

It is possible to configure that activation by setting up triggers that will only send the document to manual review for specific cases only.

Examples:

  • If a certain check is in ERROR or WARNING, the document will be manually reviewed.

  • If a specific field is missing on the document, the document will be manually reviewed.

Manual analysis comes with an additional cost, but can in some cases improves the quality of the report.

Note

You can not manage this configuration via the API.

For setup or further details, please contact your point of contact.

5.4.3. Additional analysis

It is possible to activate additional analysis. Those analyses perform complementary verifications.

Some of them will add additional checks to the report.

For more information on the exhaustive list of available additional analyses, please contact your point of contact.

5.4.4. Working with input data

When creating a file or a document, it is possible to specify input data. This is a set of information that you are expecting to see in a document or in a file.

Providing input data will activate additional "cross-check" (also called matching checks) against what is expected and what was extracted during the analysis.

You can find the list of all the available input data here:

For more details about input data, please reach out to your point of contact.

Within a document

When analysing a single document, there is no point of comparison to perform the "cross-checks" by default. You can specify input data to force the matching checks.

For example, if the end-user provides you with his personal information, you can add them as input data when creating the document:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/document?synchronous=true' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{
  "type": "ID",
  "inputData": {
    "persons": [
      {
        "identityData": {
          "firstNames": [
            "Sherlock"
          ],
          "lastName": "Holmes",
          "gender": "M",
          "nationality": "GBR"
        }
      }
    ]
  },
  "images": [
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "documentPart": "RECTO",
      "type": "DL"
    },
    {
      "data": "/9j/4AAQSkZJRgABAQAAAQABAAD…(truncated)…",
      "documentPart": "VERSO",
      "type": "DL"
    }
  ]
}'
Within a file

When working in a file, by default if an ID document is present, then all the extracted data from that document will be used as reference for input data for all other non ID documents. This mechanism aims to ensure that there is a consistency between all documents.

If no ID document is present in the file and you provided no input data, no data will be used as reference.

In the same way as the documents, it is possible to specify input data when creating a file. If that is the case, those data will serve as reference for the "cross-checks" of the file, even if data are extracted from an ID document present in the file.

If the same input data were provided both in the file and in some of its document, then the value from the file will be used as reference.

Example to create a file with input data:

curl '$CIS_API_ENDPOINT/rest/v1/$MY_REALM/file?synchronous=true' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGci...IbNMQKRew' \
--data '{
  "inputData": {
    "persons": [
      {
        "identityData": {
          "firstNames": [
            "Sherlock"
          ],
          "lastName": "Holmes",
          "gender": "M",
          "nationality": "GBR"
        }
      }
    ]
  }
}'

6. Error codes

When an error occurs, message body contains an error code, an error message and optionally some parameters.
Response is formatted in JSON.

{
  "errorCode": "CIS_DOCUMENT_UNKNOWN",
  "errorMessage": "Unknown document [someDocument]",
  "parameters": {
    "documentUid": "someDocument"
  }
}

6.1. Available error codes

Error code Cause Http code

CIS_API_BAD_REQUEST

Generic 400 error

400

CIS_API_FORBIDDEN

Generic 403 error

403

CIS_API_NOT_FOUND

Generic 404 error

404

CIS_API_INTERNAL_ERROR

Generic 500 error

500

CIS_NOT_IMPLEMENTED

Method not implemented

501

CIS_IMAGE_TOO_LARGE

Submitted image is too large (max. 4Mb)

413

CIS_ATTACHMENT_TOO_LARGE

Submitted attachment is too large (max. 10 Mb)

413

CIS_INVALID_CONTENT

An input data field is invalid

415

CIS_CUSTOMER_FILE_UNKNOWN

Unknown customer file [{fileUid}]

404

CIS_CUSTOMER_FILE_INVALID

Invalid customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_FORMAT_INVALID

Invalid customer file format [{fileUid}]

400

CIS_CUSTOMER_FILE_NO_DOCUMENT

No document linked to customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_NO_REPORT

No report for customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_REQUIRED

Customer file is required

400

CIS_CUSTOMER_FILE_EMAIL_REQUIRED

Email is required for customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_EMAIL_FORMAT_INVALID

Email format is customer file [{fileEmail}]

400

CIS_CUSTOMER_FILE_PASSWORD_REQUIRED

Password is required for customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_ALREADY_EXISTS

Customer file [{fileUid}] already exists

409

CIS_CUSTOMER_FILE_EMAIL_ALREADY_USED

Email [{fileEmail}] is already used

409

CIS_CUSTOMER_FILE_COMMENT_UNKNOWN

Unknown comment [{commentUid}] for customer file [{fileUid}]

404

CIS_CUSTOMER_FILE_COMMENT_INVALID

Invalid comment [{commentUid}] for customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_ATTACHMENT_UNKNOWN

Unknown attachment [{attachmentUid}] for customer file [{fileUid}]

404

CIS_CUSTOMER_FILE_ATTACHMENT_INVALID

Invalid attachment [{attachmentUid}] for customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_STATE_UNKNOWN

Unknown value for state [{state}]

400

CIS_CUSTOMER_FILE_STATE_INVALID

Cannot update state to [{state}]

400

CIS_CUSTOMER_FILE_NOT_UPDATABLE

Customer file [{fileUid}] is locked and cannot be updated

400

CIS_CUSTOMER_FILE_NOT_CHECKABLE

Customer file [{fileUid}] is locked and cannot be checked

400

CIS_CUSTOMER_FILE_NOT_ATTACHABLE

Attachments on customer file [{fileUid}] cannot be modified

400

CIS_CUSTOMER_FILE_MAX_DOCUMENTS_REACHED

Max. number of documents reached for customer file [{fileUid}]

400

CIS_CUSTOMER_FILE_MAX_ATTACHMENTS_REACHED

Max. number of attachments reached for customer file [{fileUid}]

400

CIS_THUMBNAIL_INVALID_REQUEST

Thumbnail is available only for images and PDF attachments

400

CIS_CUSTOMER_TAG_INVALID

Tag must not contain ',' character

400

CIS_DOCUMENT_UNKNOWN

Unknown document [{documentUid}]

404

CIS_DOCUMENT_INVALID

Invalid document [{documentUid}]

400

CIS_DOCUMENT_UNKNOWN_FOR_REALM

Unknown document [{documentUid}] for this realm [{realm}]

400

CIS_DOCUMENT_NOT_LINKED

Document [{documentUid}] not linked to customer file [{fileUid}]

400

CIS_DOCUMENT_ALREADY_LINKED

Document [{documentUid}] already linked to customer file [{fileUid}]

409

CIS_DOCUMENT_ALREADY_LINKED_OTHER

Document [{documentUid}] already linked to another customer file

409

CIS_DOCUMENT_NO_REPORT

No report for document [{documentUid}]

400

CIS_DOCUMENT_INVALID_EVIDENCE_KEY

Evidence key already exists for customer file [{fileUid}]

409

CIS_DOCUMENT_INVALID_REFERENCE

Invalid reference document [{documentUid}]

400

CIS_DOCUMENT_NO_BIOMETRIC_REFERENCE

Reference document [{documentUid}] cannot be used for biometric analysis

400

CIS_DOCUMENT_COUNTRY_NOT_SUPPORTED

This country is not supported for this kind of document

400

CIS_IMAGE_UNKNOWN

Unknown image [{imageUid}] for realm [{realm}]

404

CIS_IMAGE_CONTENT_REQUIRED

Image content is required

400

CIS_IMAGE_SIDE_REQUIRED

Image side is required

400

CIS_IMAGE_TYPE_REQUIRED

Image type is required

400

CIS_IMAGE_REQUIRED

Image is required

400

CIS_IMAGE_LIST_NOT_EMPTY

Image list must not be empty

400

CIS_IMAGE_DOCUMENT_INVALID

Image [{imageUid}] does not belong to document [{documentUid}]

400

CIS_CHECK_CONFLICT

Check conflict on document [{documentUid}]. Newer analysis is available

409

CIS_CHECK_REPORT_UNKNOWN

Unknown check report [{checkReportUid}]

404

CIS_CHECK_REPORT_INVALID_FOR_REALM

Unknown check report [{checkReportUid}] for realm [{realm}]

400

CIS_CHECK_REPORT_CUSTOMER_FILE_REQUIRED

Customer file is required

400

CIS_CHECK_REPORT_DOCUMENT_REQUIRED

ONBOARDING_ID header is required for SDKs calls

400

CIS_CHECK_REPORT_ISSUER_REQUIRED

Issuer is required

400

CIS_CHECK_REPORT_ISSUER_TYPE_REQUIRED

Issuer type is required

400

CIS_TASK_UNKNOWN

Unknown task [{taskUid}]

404

CIS_BACKEND_IMAGE_TYPE_INVALID

Request does not contain required image types (DL or DL + IR + UV)

400

CIS_BACKEND_NO_RECTO_OR_VERSO

Request must contain at least a RECTO and/or a VERSO image

400

CIS_BACKEND_NO_DL

Request must contain at least a daylight image

400

CIS_BACKEND_DOCUMENT_TYPE_INCOMPATIBLE

Document type [{documentType}] returned by backend analysis is incompatible with category [{documentCategory}]

400

CIS_REALM_UNKNOWN

Unknown realm [{realm}]

404

CIS_REALM_INVALID

Invalid realm [{realm}]

400

CIS_REALM_PARAMETER_VALUE_INVALID

Invalid value for parameter [{realmParameter}]

400

CIS_REALM_ALREADY_EXISTS

The realm [{realm}] already exists

409

CIS_REALM_READ_ONLY

The realm [{realm}] contains data and cannot be modified or deleted

400

CIS_REALM_ENDPOINT_UNKNOWN

Unknown endpoint [{clientId}]

404

CIS_REALM_ENDPOINT_INVALID

Invalid endpoint [{clientId}]

400

CIS_REALM_ENDPOINT_CLIENT_ID_INVALID

Invalid endpoint client id [{clientId}]

400

CIS_REALM_ENDPOINT_CLIENT_ID_ALREADY_EXISTS

Endpoint with client id [{clientId}] already exists

400

CIS_REALM_ENDPOINT_URL_INVALID

Endpoint URL cannot be null

400

CIS_DOCUMENT_NOT_SIGNED

Document not signed

404

CIS_UNKNOWN_DOCUMENT_DEFINITION

Unknown document definition

404

CIS_UNKNOWN_SIGNATURE_SESSION

Unknown signature session

404

CIS_SIGNATURE_SESSION_NOT_FINISHED

Signature session not finished

400

CIS_NFC_STATUS_INVALID

NFC capture is not valid

400

CIS_NFC_ANALYSIS_NOT_FOUND

No ongoing NFC analysis was found for this document

404

CIS_DOCUMENT_MANUAL_ANALYSIS_IN_PROGRESS

Cannot check document [{documentUid}], manual analysis in progress

409

CIS_DOCUMENT_LIVENESS_IN_PROGRESS

Cannot check document [{documentUid}], liveness analysis in progress

409

CIS_DOCUMENT_EMRTD_IN_PROGRESS

Cannot check document [{documentUid}], a NFC reading is in progress

409

CIS_DOCUMENT_VIDEOSCAN_IN_PROGRESS

Cannot check document [{documentUid}], a video capture is in progress

409

CIS_DOCUMENT_OPERATION_IN_PROGRESS

Cannot update document [{documentUid}], an operation is in progress

409

CIS_LIVENESS_NO_REFERENCE

Document [{documentUid}] does not contain liveness reference document

400

CIS_LIVENESS_NO_PORTRAIT

Document [{documentUid}] does not contain portrait

400

CIS_LIVENESS_CANNOT_CREATE_DOCUMENT

Creation of liveness documents is not allowed. Please use "startLiveness" method to start session

405

CIS_LIVENESS_INVALID_FILE

File [{fileUid}] is different from reference document file

409

CIS_ONE_LIVENESS_BY_FILE

The file [{fileUid}] already contains a liveness document.

400

CIS_LIVENESS_CANNOT_CREATE_DOCUMENT

Creation of liveness documents is not allowed. Please use "startLiveness" method to start session

405

CIS_LIVENESS_CANNOT_UPDATE_DOCUMENT

Update of liveness documents is not allowed. Please use "startLiveness" method to start session

405

CIS_LIVENESS_CANNOT_CHECK_DOCUMENT

Check of liveness documents is not allowed. Please use "startLiveness" method to start session

406

CIS_LIVENESS_INVALID_FILE

File [{fileUid}] is different from reference document file

409

CIS_SYNCHRONOUS_CHECK_NOT_AVAILABLE

Synchronous check is not available for document [{documentUid}]

400

CIS_CONCURRENT_FILE_CHECK

A check for the file [{fileUid}] is already running

406

CIS_CONCURRENT_DOCUMENT_CHECK

A check for the document [{documentUid}] is already running

406

CIS_INTERNAL_ERROR

Internal server error

500

CIS_BAD_REQUEST

Bad request

400

CIS_FORBIDDEN

Forbidden

403

CIS_NOT_FOUND

Not found

404

CIS_PDF_DIMENSIONS_INVALID

The PDF contains pages with dimensions that exceed the allowed limits or fall below the minimum required size.

400

6.2. Message parameters

Error code Description

realm

Realm name

fileUid

File identifier

fileEmail

File email

documentUid

Document identifier

documentType

Document type

documentCategory

Document category

checkReportUid

Check report identifier

imageUid

Image identifier

commentUid

Comment identifier

attachmentUid

Attachment identifier

taskUid

Task identifier

clientId

Endpoint client id

state

File state

7. Notes about the SDKs

The SDK works with the CIS. It means that during the onboarding of the end-users, file, documents and images are created inside the CIS.

This means you can configure your notification endpoints and monitor ongoing flows.

All the analysis will also be available in your Back Office. You will have additional analysis available: bio liveness that captured the face challenge of the end-user, document liveness that captured the documents challenge of the end-user and emrtd/nfc if the option is configured.

8. Compatibility policy

Wherever possible, REST resources and their representations will be maintained in a backwards compatible manner.

If it is necessary to change a representation in a way that is not backwards compatible, a new resource (or media type) will be created using the new representation, and the old resource (or media type) will be maintained in accordance with the deprecation policy, attached at the end of this document.

The behaviour of an API may change without warning if the existing behaviour is incorrect or constitutes a security vulnerability.

8.1. Backwards compatibility

An API is Backwards Compatible if a program written against one version of that API will continue to work the same way, without modification, against future versions of the API.

If a resource exists at a particular URI, that same resource will continue to exist with the same meaning in future versions. This means:

  • The meaning of HTTP response codes can be trusted. If a URI that used to 200 now returns a 404, you know it is because the resource cannot be found, not because the resource has moved to another location

  • A resource MAY support additional query parameters in future versions but they WILL NOT be mandatory. The absence of a value or a default value (as appropriate) will maintain prior behaviour

  • If a resource accepts a representation (e.g. via POST or PUT), it will continue to accept the same representation in future versions. Any additional properties that are recognised in a resource WILL NOT be mandatory, and the default value assumed in their absence will be chosen to maintain the previous meaning of the resource

  • A resource MAY be modified to return a "redirection" response code (e.g. 301, 302) instead of directly returning the resource. Clients MUST handle HTTP-level redirects, and respect HTTP headers (e.g. Location)

  • The canonical URI of a resource used in "self links" or used by other resources to point to the resource MAY change

8.1.1. Stable representations

If the resource at a URI is documented as being available in a specific media type (e.g. via the Content-Type header), that media type will be maintained. If a resource returns a default media type in the absence of content negotiation, that default will be maintained.

8.1.2. Structured representations (application/json)

Resources with a media type of application/json have additional stability guarantees.

If a property exists in a JSON object returned by the REST API, it will continue to be returned with the same name, and the same value type (i.e. String, number, array or object). If that value is an array, the type of the contents of the array will not change. If the value is an object, that object will satisfy the same compatibility guarantees as the document as a whole:

  • If a property has a primitive type and the API documentation does not explicitly limit its possible values, clients MUST NOT assume the values are constrained to a particular set of possible responses

  • If a property of an object is not explicitly declared as mandatory in the API, clients MUST NOT assume it will be present

  • New properties MAY be added to a representation at any time, but a new property MUST NOT alter the meaning of an existing property

  • If a property of an object is a URI, then the resource identified by that URI MUST maintain the same compatibility guarantee

8.1.3. Resource/rate limits and paging

Resource and rate limits, and the default and maximum sizes of paged data ARE NOT considered part of the API and may change (possibly dynamically). It is the responsibility of the client to read the road signs and obey the speed limit.

8.2. API versioning

Responses will not be tagged with the version of the API. Clients should be aware that the deployed API version might change without notice, even between requests. The recommended way for a client to proactively determine if a particular capability is available in the API is to request it and see if it is there, and handle failure gracefully if that capability becomes unavailable during an interaction.

8.3. Forward compatibility

An API is Forwards Compatible if a program written against one version of the API will also work the same way, without modification, against previous versions of the API.

We make no guarantee of Forwards Compatibility in our REST APIs, but we provide the following non-normative guidelines about our approach to forwards compatibility.

Postel’s Law
Be conservative in what you do, be liberal in what you accept from others

Where possible, we follow the Robustness Principle above. This means that the API will determine what to do with a request based only on the parts of that it recognises.

  • Request query parameters that are not recognised by the server will be ignored

  • Properties of structured (i.e. JSON) data submitted via mutative requests that are not recognised by the server will be ignored

9. Annex

9.1. Available notification events

Kind Method Operation Event description

FILE

CREATE

DEFAULT

File has been created

CLONE

File has been cloned

DELETE

DEFAULT

File has been deleted

UPDATE

DEFAULT

File has been updated using update method

STATE

File state has changed

VALIDITY

File validity has changed

CHECK

File has been checked

CHECK_DOCUMENT

Document has been checked during a file check

START_MANUAL_ANALYSIS_DOCUMENT

Document is sent to manual analysis during a file check

START_CORRELATION_SEARCH_DOCUMENT

Document is sent to correlation search during a file check

ADD_DOCUMENT

Document has been added to file

REMOVE_DOCUMENT

Document has been removed from file

ADD_COMMENT

Comment has been added to file

REMOVE_COMMENT

Comment has been removed from file

ADD_ATTACHMENT

Attachment has been added file

UPDATE_ATTACHMENT

Attachment has been updated

REMOVE_ATTACHMENT

Attachment has been removed from file

DOCUMENT

CREATE

DEFAULT

Document has been created

DELETE

DEFAULT

Document has been deleted

UPDATE

DEFAULT

Document has been updated user update method

CHECK

Document has been checked

START_MANUAL_ANALYSIS

Document is sent to manual analysis

START_CORRELATION_SEARCH

Document is sent to correlation search

ADD_IMAGE

Image has been added to document

REMOVE_IMAGE

Image has been removed from document

9.2. Example of a document report response

{
    "uid": "c6ebcec0-4fb4-48de-9149-a78529018f83",
    "generationDate": "2025-10-30T11:57:16+0100",
    "globalStatus": "ERROR",
    "checks": [
        {
            "identifier": "BACKEND_ANALYSIS",
            "title": "Document analysis",
            "message": "The document has been analysed",
            "type": "DOCUMENT_ACCEPTABILITY",
            "status": "OK",
            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
            "fileUid": "file-1761058574"
        },
        {
            "identifier": "ID_ANALYSIS",
            "title": "ID analysis",
            "message": "The ID is not OK",
            "type": "UNKNOWN",
            "status": "ERROR",
            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
            "fileUid": "file-1761058574",
            "subChecks": [
                {
                    "identifier": "MODEL_RECOGNIZED",
                    "title": "Document type identification",
                    "message": "Identified document",
                    "type": "DOCUMENT_ACCEPTABILITY",
                    "status": "OK",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574"
                },
                {
                    "identifier": "MODEL_EXPIRATION_DATE",
                    "title": "Validity dates for the document type",
                    "message": "This type of document is within its validity period",
                    "type": "DOCUMENT_VALIDITY",
                    "status": "OK",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574"
                },
                {
                    "identifier": "DOC_SPECIMEN",
                    "title": "Specimen",
                    "message": "This document is a specimen",
                    "type": "DOCUMENT_ACCEPTABILITY",
                    "status": "ERROR",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574"
                },
                {
                    "identifier": "DOC_EXPIRATION_DATE",
                    "title": "Expiration of the document",
                    "message": "The document is within its validity period",
                    "type": "DOCUMENT_ACCEPTABILITY",
                    "status": "OK",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574",
                    "dataReferences": [
                        {
                            "givenValue": "11/02/2030"
                        }
                    ]
                },
                {
                    "identifier": "ID_FALSIFICATION",
                    "title": "Falsification detection",
                    "message": "Document is not falsified",
                    "type": "UNKNOWN",
                    "status": "OK",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574",
                    "subChecks": [
                        {
                            "identifier": "DOC_BLACKLISTED",
                            "title": "Verification if the document is blacklisted.",
                            "message": "No blacklist has been checked for this document",
                            "type": "OTHER",
                            "status": "NONE",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "EMISSION_COUNTRY",
                            "title": "Document issue country",
                            "message": "The issue country of the document is valid",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "dataReferences": [
                                {
                                    "givenValue": "FRA"
                                }
                            ]
                        },
                        {
                            "identifier": "EMISSION_DATE",
                            "title": "Document issue date",
                            "message": "The issue date of the document has not been verified",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "NONE",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "dataReferences": [
                                {
                                    "givenValue": "12/02/2020"
                                }
                            ]
                        },
                        {
                            "identifier": "DOC_NATIONALITY",
                            "title": "Holder nationality",
                            "message": "The holder nationality is valid",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "dataReferences": [
                                {
                                    "givenValue": "FRA"
                                }
                            ]
                        },
                        {
                            "identifier": "VALIDITY_PERIOD",
                            "title": "Check the validity period of the document with respect to the model",
                            "message": "The validity period of the document could not be evaluated",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "NONE",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "MRZ_FIELDS_SYNTAX",
                            "title": "Compliance of MRZ fields",
                            "message": "The MRZ fields are well-formed",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "dataReferences": [
                                {
                                    "givenValue": "IDFRAZ710RNHA77<<<<<<<<<<<<<<<"
                                },
                                {
                                    "givenValue": "9007138F3002119FRA<<<<<<<<<<<4"
                                },
                                {
                                    "givenValue": "MARTIN<<MAELIS<GAELLE<MARIE<<<"
                                }
                            ]
                        },
                        {
                            "identifier": "MRZ_CHECKSUMS",
                            "title": "MRZ checksums",
                            "message": "All MRZ checksums are valid",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "dataReferences": [
                                {
                                    "givenValue": "IDFRAZ710RNHA77<<<<<<<<<<<<<<<"
                                },
                                {
                                    "givenValue": "9007138F3002119FRA<<<<<<<<<<<4"
                                },
                                {
                                    "givenValue": "MARTIN<<MAELIS<GAELLE<MARIE<<<"
                                }
                            ]
                        },
                        {
                            "identifier": "MRZ_EXPECTED_FOUND",
                            "title": "Checking for the presence of a MRZ",
                            "message": "MRZ expected by the model and found",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_FIRSTNAMES",
                            "title": "Consistency of holder's firstnames",
                            "message": "The holder's firstnames of the MRZ are consistent with the firstnames extracted from the document",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_LASTNAME",
                            "title": "Consistency of holder's lastname",
                            "message": "The holder's lastname of the MRZ is consistent with the lastname extracted from the document",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_BIRTHDATE",
                            "title": "Consistency of holder's birth date",
                            "message": "The holder's birth date extracted from the MRZ is consistent with the birth date extracted from the document",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_DOCNUM",
                            "title": "Consistency of the document number",
                            "message": "The document number extracted from the MRZ is consistent with the one extracted from the document",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_EXPIRATIONDATE",
                            "title": "Consistency of the expiration date",
                            "message": "The expiration date extracted from the MRZ is consistent with the one extracted from the document",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_EMISSIONDATE",
                            "title": "Consistency of the emit date",
                            "message": "The emit date has not been verified",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "NONE",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "OCR_PERSONALNUM",
                            "title": "Consistency of the personal number",
                            "message": "The personal number has not been verified",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "NONE",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "MODEL_COLOR_MATCHING",
                            "title": "Colorimetric analysis of the day-light image",
                            "message": "The document background is colored",
                            "type": "DOCUMENT_ACCEPTABILITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "MRZ_ALIGNEMENT",
                            "title": "Validity of MRZ graphical format",
                            "message": "The MRZ graphical format seems correct",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "MRZ_CLASSIFIER",
                            "title": "Verification of the consistency of the MRZ with the document model",
                            "message": "The MRZ is consistent with the document model",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "PHOTO_CONFORMITY",
                            "title": "Extensive photo compliance check",
                            "message": "The detected photo is legit",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "PHOTO_LOCATION",
                            "title": "Check of the presence and location of the photo",
                            "message": "A photo has been detected at the location indicated in the document model",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "VISUAL_SECURITY",
                            "title": "Verification of graphical security elements",
                            "message": "The graphical security elements are present and valid",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "SIDES_MODEL_MATCHING",
                            "title": "Match of the two sides with the document model",
                            "message": "The two sides match with the same document model",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "SIDES_DATA_MATCHING",
                            "title": "Data consistency between the two sides of the document",
                            "message": "The data on the two sides of the document are consistent",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "BARCODE_CONFORMITY",
                            "title": "Barcode validity",
                            "message": "The barcode of the document is valid",
                            "type": "UNKNOWN",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "subChecks": [
                                {
                                    "identifier": "BARCODE_EXPECTED_FOUND",
                                    "title": "Checking for the presence of barcode and its format",
                                    "message": "Barcode found matching model expectation",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                                    "fileUid": "file-1761058574"
                                },
                                {
                                    "identifier": "BARCODE_FIELDS_SYNTAX",
                                    "title": "Compliance of barcode fields",
                                    "message": "The barcode encoding has not been checked",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "NONE",
                                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                                    "fileUid": "file-1761058574"
                                },
                                {
                                    "identifier": "BARCODE_SIGNATURE",
                                    "title": "Issuer and signature validity",
                                    "message": "The issuer and signature has not been checked",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "NONE",
                                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                                    "fileUid": "file-1761058574"
                                }
                            ]
                        }
                    ]
                },
                {
                    "identifier": "ID_ACCEPTANCE",
                    "title": "ID type and origin",
                    "message": "The ID is not accepted",
                    "type": "UNKNOWN",
                    "status": "OK",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574",
                    "subChecks": [
                        {
                            "identifier": "INVALIDATED_DOCUMENT",
                            "title": "Verification of the document validity",
                            "message": "The document is valid",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574"
                        },
                        {
                            "identifier": "ORIGINAL_DOCUMENT",
                            "title": "Check that the document analyzed is an original",
                            "message": "The document seems to be an original",
                            "type": "UNKNOWN",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "subChecks": [
                                {
                                    "identifier": "PHOTOCOPY_DETECTION",
                                    "title": "Check that the document is not a photocopy",
                                    "message": "The document doesn't appear to be a photocopy",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                                    "fileUid": "file-1761058574"
                                },
                                {
                                    "identifier": "SCREEN_DETECTION",
                                    "title": "Check that the document is not a screenshot",
                                    "message": "The document doesn't appear to be a screenshot",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                                    "fileUid": "file-1761058574"
                                }
                            ]
                        }
                    ]
                },
                {
                    "identifier": "EXPECTED_IDENTITY",
                    "title": "Expected identity",
                    "message": "Identity is the expected one",
                    "type": "UNKNOWN",
                    "status": "OK",
                    "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                    "fileUid": "file-1761058574",
                    "subChecks": [
                        {
                            "identifier": "FIRST_NAME_MATCH",
                            "title": "Firstnames matching",
                            "message": "Firstnames match the identity",
                            "type": "DATA_CONSISTENCY",
                            "status": "OK",
                            "documentUid": "32af86b8-2dc0-4706-a3d0-3a657a1081d0",
                            "fileUid": "file-1761058574",
                            "dataReferences": [
                                {
                                    "expectedValue": "Maëlis-Gaëlle",
                                    "givenValue": "Maëlis-Gaëlle Marie"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "issuance": {
        "issueDate": {
            "label": "Issue date",
            "value": "12/02/2020",
            "day": 12,
            "month": 2,
            "year": 2020
        },
        "issueDay": {
            "label": "Issue day",
            "value": "12"
        },
        "issueMonth": {
            "label": "Issue month",
            "value": "2"
        },
        "issueYear": {
            "label": "Issue year",
            "value": "2020"
        },
        "issuingCountry": {
            "label": "Issuing country",
            "value": "FRA"
        }
    },
    "info": {
        "documentNumber": {
            "label": "Document number",
            "value": "Z710RNHA7"
        },
        "cardAccessNumber": {
            "label": "Card access number",
            "value": "160053"
        },
        "documentType": {
            "label": "Document type",
            "value": "ID"
        },
        "expirationDate": {
            "label": "Expiration date",
            "value": "11/02/2030",
            "day": 11,
            "month": 2,
            "year": 2030
        },
        "expirationDay": {
            "label": "Expiration day",
            "value": "11"
        },
        "expirationMonth": {
            "label": "Expiration month",
            "value": "2"
        },
        "expirationYear": {
            "label": "Expiration year",
            "value": "2030"
        },
        "readExpirationDate": {
            "label": "Read expiration date",
            "value": "11/02/2030",
            "day": 11,
            "month": 2,
            "year": 2030
        },
        "extra": [
            {
                "key": "MRZ_LINE_1",
                "label": "MRZ line 1",
                "value": "IDFRAZ710RNHA77<<<<<<<<<<<<<<<"
            },
            {
                "key": "MRZ_LINE_2",
                "label": "MRZ line 2",
                "value": "9007138F3002119FRA<<<<<<<<<<<4"
            },
            {
                "key": "MRZ_LINE_3",
                "label": "MRZ line 3",
                "value": "MARTIN<<MAELIS<GAELLE<MARIE<<<"
            }
        ]
    },
    "persons": [
        {
            "role": {
                "label": "Role",
                "value": "ID",
                "valueLabel": "Holder"
            },
            "identityData": {
                "lastName": {
                    "label": "Last name",
                    "value": "MARTIN"
                },
                "firstNames": {
                    "label": "First name",
                    "values": [
                        "Maëlis-Gaëlle",
                        "Marie"
                    ]
                },
                "birthDate": {
                    "label": "Birth date",
                    "value": "13/07/1990",
                    "day": 13,
                    "month": 7,
                    "year": 1990
                },
                "birthDay": {
                    "label": "Birth day",
                    "value": "13"
                },
                "birthMonth": {
                    "label": "Birth month",
                    "value": "7"
                },
                "birthYear": {
                    "label": "Birth year",
                    "value": "1990"
                },
                "birthPlace": {
                    "label": "Birth place",
                    "value": "PARIS"
                },
                "birthPlaceCity": {
                    "label": "Birth city",
                    "value": "PARIS"
                },
                "gender": {
                    "label": "Gender",
                    "value": "F",
                    "valueLabel": "Female"
                },
                "nationality": {
                    "label": "Nationality",
                    "value": "FRA"
                },
                "usageName": {
                    "label": "Usage name",
                    "value": "NOM D'USAGE"
                },
                "extra": [
                    {
                        "key": "HEIGHT",
                        "label": "Height",
                        "value": "1,68"
                    }
                ]
            },
            "addressData": {
                "fullAddress": {
                    "label": "Full address",
                    "values": [
                        "44 rue DÉSIRÉ SAINT CLÉMENT",
                        "RÉSIDENCE DU PLEIN AIR BÂT 4",
                        "33000 BORDEAUX",
                        "FRANCE"
                    ]
                }
            }
        }
    ],
    "referenceValues": {
        "references": [
            {
                "key": "FIRST_NAME",
                "label": "First name",
                "value": "Maëlis-Gaëlle"
            }
        ]
    },
    "backendResultId": "100808"
}

9.3. Example of a file report response

{
    "uid": "3f17acf8-2e04-49db-9be2-63eac741785d",
    "generationDate": "2025-10-30T13:44:28+0100",
    "globalStatus": "ERROR",
    "checks": [
        {
            "identifier": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
            "title": "ID",
            "message": "The ID is not valid",
            "type": "UNKNOWN",
            "status": "ERROR",
            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
            "fileUid": "file-1761828251",
            "subChecks": [
                {
                    "identifier": "BACKEND_ANALYSIS",
                    "title": "Document analysis",
                    "message": "The document has been analysed",
                    "type": "DOCUMENT_ACCEPTABILITY",
                    "status": "OK",
                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                    "fileUid": "file-1761828251"
                },
                {
                    "identifier": "ID_ANALYSIS",
                    "title": "ID analysis",
                    "message": "The ID is not OK",
                    "type": "UNKNOWN",
                    "status": "ERROR",
                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                    "fileUid": "file-1761828251",
                    "subChecks": [
                        {
                            "identifier": "MODEL_RECOGNIZED",
                            "title": "Document type identification",
                            "message": "Identified document",
                            "type": "DOCUMENT_ACCEPTABILITY",
                            "status": "OK",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251"
                        },
                        {
                            "identifier": "MODEL_EXPIRATION_DATE",
                            "title": "Validity dates for the document type",
                            "message": "This type of document is within its validity period",
                            "type": "DOCUMENT_VALIDITY",
                            "status": "OK",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251"
                        },
                        {
                            "identifier": "DOC_SPECIMEN",
                            "title": "Specimen",
                            "message": "This document is a specimen",
                            "type": "DOCUMENT_ACCEPTABILITY",
                            "status": "ERROR",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251"
                        },
                        {
                            "identifier": "DOC_EXPIRATION_DATE",
                            "title": "Expiration of the document",
                            "message": "The document is within its validity period",
                            "type": "DOCUMENT_ACCEPTABILITY",
                            "status": "OK",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251",
                            "dataReferences": [
                                {
                                    "givenValue": "11/02/2030"
                                }
                            ]
                        },
                        {
                            "identifier": "ID_FALSIFICATION",
                            "title": "Falsification detection",
                            "message": "Document is not falsified",
                            "type": "UNKNOWN",
                            "status": "OK",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251",
                            "subChecks": [
                                {
                                    "identifier": "DOC_BLACKLISTED",
                                    "title": "Verification if the document is blacklisted.",
                                    "message": "No blacklist has been checked for this document",
                                    "type": "OTHER",
                                    "status": "NONE",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "EMISSION_COUNTRY",
                                    "title": "Document issue country",
                                    "message": "The issue country of the document is valid",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "givenValue": "FRA"
                                        }
                                    ]
                                },
                                {
                                    "identifier": "EMISSION_DATE",
                                    "title": "Document issue date",
                                    "message": "The issue date of the document has not been verified",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "NONE",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "givenValue": "12/02/2020"
                                        }
                                    ]
                                },
                                {
                                    "identifier": "DOC_NATIONALITY",
                                    "title": "Holder nationality",
                                    "message": "The holder nationality is valid",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "givenValue": "FRA"
                                        }
                                    ]
                                },
                                {
                                    "identifier": "VALIDITY_PERIOD",
                                    "title": "Check the validity period of the document with respect to the model",
                                    "message": "The validity period of the document could not be evaluated",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "NONE",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "MRZ_FIELDS_SYNTAX",
                                    "title": "Compliance of MRZ fields",
                                    "message": "The MRZ fields are well-formed",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "givenValue": "IDFRAZ710RNHA77<<<<<<<<<<<<<<<"
                                        },
                                        {
                                            "givenValue": "9007138F3002119FRA<<<<<<<<<<<4"
                                        },
                                        {
                                            "givenValue": "MARTIN<<MAELIS<GAELLE<MARIE<<<"
                                        }
                                    ]
                                },
                                {
                                    "identifier": "MRZ_CHECKSUMS",
                                    "title": "MRZ checksums",
                                    "message": "All MRZ checksums are valid",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "givenValue": "IDFRAZ710RNHA77<<<<<<<<<<<<<<<"
                                        },
                                        {
                                            "givenValue": "9007138F3002119FRA<<<<<<<<<<<4"
                                        },
                                        {
                                            "givenValue": "MARTIN<<MAELIS<GAELLE<MARIE<<<"
                                        }
                                    ]
                                },
                                {
                                    "identifier": "MRZ_EXPECTED_FOUND",
                                    "title": "Checking for the presence of a MRZ",
                                    "message": "MRZ expected by the model and found",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_FIRSTNAMES",
                                    "title": "Consistency of holder's firstnames",
                                    "message": "The holder's firstnames of the MRZ are consistent with the firstnames extracted from the document",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_LASTNAME",
                                    "title": "Consistency of holder's lastname",
                                    "message": "The holder's lastname of the MRZ is consistent with the lastname extracted from the document",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_BIRTHDATE",
                                    "title": "Consistency of holder's birth date",
                                    "message": "The holder's birth date extracted from the MRZ is consistent with the birth date extracted from the document",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_DOCNUM",
                                    "title": "Consistency of the document number",
                                    "message": "The document number extracted from the MRZ is consistent with the one extracted from the document",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_EXPIRATIONDATE",
                                    "title": "Consistency of the expiration date",
                                    "message": "The expiration date extracted from the MRZ is consistent with the one extracted from the document",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_EMISSIONDATE",
                                    "title": "Consistency of the emit date",
                                    "message": "The emit date has not been verified",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "NONE",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "OCR_PERSONALNUM",
                                    "title": "Consistency of the personal number",
                                    "message": "The personal number has not been verified",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "NONE",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "MODEL_COLOR_MATCHING",
                                    "title": "Colorimetric analysis of the day-light image",
                                    "message": "The document background is colored",
                                    "type": "DOCUMENT_ACCEPTABILITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "MRZ_ALIGNEMENT",
                                    "title": "Validity of MRZ graphical format",
                                    "message": "The MRZ graphical format seems correct",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "MRZ_CLASSIFIER",
                                    "title": "Verification of the consistency of the MRZ with the document model",
                                    "message": "The MRZ is consistent with the document model",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "PHOTO_CONFORMITY",
                                    "title": "Extensive photo compliance check",
                                    "message": "The detected photo is legit",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "PHOTO_LOCATION",
                                    "title": "Check of the presence and location of the photo",
                                    "message": "A photo has been detected at the location indicated in the document model",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "VISUAL_SECURITY",
                                    "title": "Verification of graphical security elements",
                                    "message": "The graphical security elements are present and valid",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "SIDES_MODEL_MATCHING",
                                    "title": "Match of the two sides with the document model",
                                    "message": "The two sides match with the same document model",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "SIDES_DATA_MATCHING",
                                    "title": "Data consistency between the two sides of the document",
                                    "message": "The data on the two sides of the document are consistent",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "BARCODE_CONFORMITY",
                                    "title": "Barcode validity",
                                    "message": "The barcode of the document is valid",
                                    "type": "UNKNOWN",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "subChecks": [
                                        {
                                            "identifier": "BARCODE_EXPECTED_FOUND",
                                            "title": "Checking for the presence of barcode and its format",
                                            "message": "Barcode found matching model expectation",
                                            "type": "DOCUMENT_VALIDITY",
                                            "status": "OK",
                                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                            "fileUid": "file-1761828251"
                                        },
                                        {
                                            "identifier": "BARCODE_FIELDS_SYNTAX",
                                            "title": "Compliance of barcode fields",
                                            "message": "The barcode encoding has not been checked",
                                            "type": "DOCUMENT_VALIDITY",
                                            "status": "NONE",
                                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                            "fileUid": "file-1761828251"
                                        },
                                        {
                                            "identifier": "BARCODE_SIGNATURE",
                                            "title": "Issuer and signature validity",
                                            "message": "The issuer and signature has not been checked",
                                            "type": "DOCUMENT_VALIDITY",
                                            "status": "NONE",
                                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                            "fileUid": "file-1761828251"
                                        }
                                    ]
                                }
                            ]
                        },
                        {
                            "identifier": "ID_ACCEPTANCE",
                            "title": "ID type and origin",
                            "message": "The ID is not accepted",
                            "type": "UNKNOWN",
                            "status": "OK",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251",
                            "subChecks": [
                                {
                                    "identifier": "INVALIDATED_DOCUMENT",
                                    "title": "Verification of the document validity",
                                    "message": "The document is valid",
                                    "type": "DOCUMENT_VALIDITY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251"
                                },
                                {
                                    "identifier": "ORIGINAL_DOCUMENT",
                                    "title": "Check that the document analyzed is an original",
                                    "message": "The document seems to be an original",
                                    "type": "UNKNOWN",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "subChecks": [
                                        {
                                            "identifier": "PHOTOCOPY_DETECTION",
                                            "title": "Check that the document is not a photocopy",
                                            "message": "The document doesn't appear to be a photocopy",
                                            "type": "DOCUMENT_VALIDITY",
                                            "status": "OK",
                                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                            "fileUid": "file-1761828251"
                                        },
                                        {
                                            "identifier": "SCREEN_DETECTION",
                                            "title": "Check that the document is not a screenshot",
                                            "message": "The document doesn't appear to be a screenshot",
                                            "type": "DOCUMENT_VALIDITY",
                                            "status": "OK",
                                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                            "fileUid": "file-1761828251"
                                        }
                                    ]
                                }
                            ]
                        },
                        {
                            "identifier": "EXPECTED_IDENTITY",
                            "title": "Expected identity",
                            "message": "Identity is the expected one",
                            "type": "UNKNOWN",
                            "status": "OK",
                            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                            "fileUid": "file-1761828251",
                            "subChecks": [
                                {
                                    "identifier": "FIRST_NAME_MATCH",
                                    "title": "Firstnames matching",
                                    "message": "Firstnames match the identity",
                                    "type": "DATA_CONSISTENCY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "expectedValue": "Maëlis-Gaëlle",
                                            "givenValue": "Maëlis-Gaëlle Marie"
                                        }
                                    ]
                                },
                                {
                                    "identifier": "LAST_NAME_MATCH",
                                    "title": "Lastnames matching",
                                    "message": "Lastnames match the identity",
                                    "type": "DATA_CONSISTENCY",
                                    "status": "OK",
                                    "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
                                    "fileUid": "file-1761828251",
                                    "dataReferences": [
                                        {
                                            "expectedValue": "MARTIN",
                                            "givenValue": "MARTIN"
                                        },
                                        {
                                            "givenValue": "NOM D'USAGE"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "documents": [
        {
            "documentUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d",
            "customers": [
                "614d30aa-4eeb-4490-bfa3-e726248d6987"
            ]
        }
    ],
    "clientData": {},
    "referenceValues": {
        "references": [
            {
                "key": "LAST_NAME",
                "label": "Last name",
                "value": "MARTIN"
            },
            {
                "key": "FIRST_NAME",
                "label": "First name",
                "value": "Maëlis-Gaëlle"
            }
        ]
    },
    "customerIdentities": [
        {
            "uid": "614d30aa-4eeb-4490-bfa3-e726248d6987",
            "creationDate": "2025-10-30T13:44:28+0100",
            "documentUids": [
                "b87f5191-5e00-4fb9-818d-80b47acfa49d"
            ],
            "identityData": {
                "lastName": {
                    "label": "Last name",
                    "value": "MARTIN",
                    "origin": "FILE_INPUT",
                    "originUid": "file-1761828251"
                },
                "firstNames": {
                    "label": "First name",
                    "values": [
                        "Maëlis-Gaëlle"
                    ],
                    "origin": "FILE_INPUT",
                    "originUid": "file-1761828251"
                },
                "birthDate": {
                    "label": "Birth date",
                    "value": "13/07/1990",
                    "day": 13,
                    "month": 7,
                    "year": 1990,
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "birthDay": {
                    "label": "Birth day",
                    "value": "13",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "birthMonth": {
                    "label": "Birth month",
                    "value": "7",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "birthYear": {
                    "label": "Birth year",
                    "value": "1990",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "birthPlace": {
                    "label": "Birth place",
                    "value": "PARIS",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "birthPlaceCity": {
                    "label": "Birth city",
                    "value": "PARIS",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "gender": {
                    "label": "Gender",
                    "value": "F",
                    "valueLabel": "Female",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "nationality": {
                    "label": "Nationality",
                    "value": "FRA",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                },
                "usageName": {
                    "label": "Usage name",
                    "value": "NOM D'USAGE",
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                }
            },
            "addressData": {
                "fullAddress": {
                    "label": "Full address",
                    "values": [
                        "44 rue DÉSIRÉ SAINT CLÉMENT",
                        "RÉSIDENCE DU PLEIN AIR BÂT 4",
                        "33000 BORDEAUX",
                        "FRANCE"
                    ],
                    "origin": "DOCUMENT",
                    "originUid": "b87f5191-5e00-4fb9-818d-80b47acfa49d"
                }
            }
        }
    ]
}