INTRODUCTION TO CALLBACKS
🔁 Callbacks – What Are They For?
When creating a user file, it is mandatory to specify one or more callback_endpoints, i.e. URLs to which ID360 will automatically send notifications (via HTTP POST) throughout the identification process.
Each callback_endpoint will receive a payload containing information related to the file, including its status and the steps completed by the user.
📌 What Can Be Configured?
You can define one or more callback URLs. For each callback, you can specify the desired notification level:
- Final callback only: you receive a single notification at the end of the process, indicating that the identification is complete, along with the related information.
- Intermediate + final callbacks: you are notified at each key step of the user process (start, upload, document validation, etc.), in addition to the final notification.
⚠️ Beware of Callback Arrival Order
Note that in some cases, intermediate callbacks may arrive after the final callback. This can happen if the initial callback attempt failed (e.g. your server was temporarily unavailable): ID360 will then perform automatic retries to ensure proper delivery.
These retries may cause a temporal mismatch in the order of received messages.
→ It is therefore strongly recommended to rely on the content of the payload rather than the order in which notifications arrive.
PAYLOAD STRUCTURE
PREREQUISITES
As a trusted service provider, we must comply with applicable standards, including ETSI EN 319 401, which requires the use of the latest versions of TLS to ensure the security and reliability of our exchanges.
We recommend verifying that your connection is correctly configured to support TLSv2 or TLSv3.
If you wish to allowlist our IP addresses, please contact your Customer Success Manager, who will provide them to you.
INTERMEDIATE CALLBACKS
At each step completed by the user, you will receive intermediate callback notifications informing you of the nature and status of that step.
STRUCTURE AND CHARACTERISTICS
The status of an intermediate callback will always be set to “STARTED”.
The steps_status block indicates that a total of 7 control steps were identified for the process associated with this payload.
The value done = 1 means that only the ProfileDataStep (e.g. pushing the last name via API) has been completed.
The enrollment_step field provides detailed information about the step, including the result, the type of verification performed, and the list of documents involved.
Note: The “type” present in the `enrollment_step` variable is for internal use only and should not be used or relied upon.
ENROLLMENT STEPS BY NAME
Identity Documents
| ‘enrollment_step’ > ‘name’ | Document(s) | Control / Note |
|---|---|---|
| id_document | Identity document | The ID document has been successfully received and read |
| id_document_mandate | ID (from KBIS) | The mandate ID was successfully received and read |
| fake_photo_id | ID document | The photo on the ID document is valid |
| phone_detection | ID document | Presentation attack detection was successfully completed |
| image_forensics | ID document | Monochrome detection completed successfully |
Electronic Identification Methods
| ‘enrollment_step’ > ‘name’ | Document(s) | Control / Note |
|---|---|---|
| ar24 | PVID | AR24 has provided ID360 with the enrollment results |
| france_connect | France Connect | France Connect has shared the enrollment results |
| france_connect_plus | France Connect+ | France Connect+ has shared the enrollment results |
| id_num | La Poste ID | La Poste Digital Identity has shared the enrollment data |
Selfie
| ‘enrollment_step’ > ‘name’ | Document(s) | Control / Note |
|---|---|---|
| facecomparison | Selfie + ID document | Selfie image extracted from video was successfully received |
| liveness | Selfie | Challenge videos received for liveness detection |
Additional Documents
| ‘enrollment_step’ > ‘name’ | Document(s) | Control / Note |
|---|---|---|
| property_tax_notice | Property tax notice | Document successfully received and read |
| proof_of_address | Proof of address | Document successfully received and read |
| pay_slip | Payslip | Document successfully received and read |
| kbis | KBIS extract | Document successfully received and read |
| income_tax_notice | Income tax notice | Document successfully received and read |
| bank_details | Bank statement (RIB) | Document successfully received and read |
| free_document | Free document | Document successfully received and read |
| mandate | Mandate (linked to KBIS) | Document successfully received and read |
Other Controls
| ‘enrollment_step’ > ‘name’ | Document(s) | Control / Note |
|---|---|---|
| phone | Phone number | User provided their phone number |
| otp | OTP code | User successfully entered the OTP code |
| Email address | User provided their email address |
FINAL CALLBACK
The final callback notifies you of the completion of the identification process and provides final status details.
The status of a final callback can be: OK, KO, FAILED or CANCELED
In case of a KO, the reason field will explain the failure cause.
In `steps_status`, the value `done` will equal the value `total`.
In this case, you must return a 2XX status code (e.g. 204) within 10 seconds.
If this response is not received, up to 6 additional retry attempts will be made according to the following schedule:
| Attempt | Seconds | Minutes | Cumulative Minutes |
|---|---|---|---|
| 1 | 10 | 0.17 | 0.17 |
| 2 | 80 | 1.33 | 1.50 |
| 3 | 270 | 4.50 | 6.00 |
| 4 | 640 | 10.67 | 16.67 |
| 5 | 1250 | 20.83 | 37.50 |
| 6 | 2160 | 36.00 | 73.50 |
| 7 | 3430 | 57.17 | 130.67 |
These intervals follow the formula: `10 x (n+1)^3` (where `n` is the retry number), expressed in seconds.
CALLBACK ENDPOINTS
In the body when creating a user file:
"callback_endpoints": [
{
"url": "https://your-server.com/callback",
"on": [
"F"
],
"headers": [
{
"name": "Authorization", value: "Bearer abc123"
}
]
}
]
📝 Field Details
url: the POST endpoint address to be called when an event is triggered.on: list of statuses for which this callback will be executed.headers: list of custom headers to include in the request (e.g., authentication, trace, etc.).
🎯 List of Possible Statuses in ''on''
F– FailedC– CanceledE– End (OK or KO)I– IntermediateUP– Mie User ProcessingSP– Mie Sys Processing
💬 Comment
- You can define multiple endpoints by adding them to the
callback_endpointslist. - Each callback will only be triggered for the statuses specified in
on.

