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.
-
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
tokenendpoint. -
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.
-
Token endpoint (OAuth2):
https://api.idcheck-sandbox.ariadnext.io/auth/realms/customer-identity/protocol/openid-connect/token -
CIS API base URL:
https://api.idcheck-sandbox.ariadnext.io/gw/cis
3.2.2. Production
Environment for live operations.
-
Token endpoint (OAuth2):
https://api.idcheck.ariadnext.io/auth/realms/customer-identity/protocol/openid-connect/token -
CIS API base URL:
https://api.idcheck.ariadnext.io/gw/cis
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:
|
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 ( |
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. |
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
ERRORtoWARNINGorOKunder 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
ERRORis downgraded toWARNINGorOKwhen it aligns with your policy. -
The
IDENTITY_MAJORITYcheck 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"
}
}
}
]
}