📘 To continue reading this guide, you must first create at least one process and one application.
If not already done, we recommend checking the first section of this guide: Getting Started with ID360
curl -X POST "https://id360docaposte.com/api/1.0.0/user/login/" \ -H "accept: application/json" \ -d '{ "username": "string", "password": "string", "token": "string" }'
curl -X POST "https://preprod.id360docaposte.com/api/1.0.0/user/login/" \ -H "accept: application/json" \ -d '{ "username": "string", "password": "string", "token": "string" }'
| Parameter | Required | Details |
|---|---|---|
username | Yes | Login identifier |
password | Yes | Password |
token | No (except for admin) | Unnecessary for `application` accounts. Required only for `admin` accounts with two-factor authentication |
HTTP Status: `200 OK`
Response Body:
{ "token": "0123456789abcdef01234567" }
Authorization: Token 0123456789abcdef01234567Essential header for your API calls:
`Authorization` → must contain:
Example:
Authorization: Token 0123456789abcdef01234567
To test calls in Swagger:
You will then be authenticated to run API calls directly from Swagger.
The login token is valid for 15 minutes, and its lifespan is reset with every call using the token (*except `logIn` itself*).
If you are not connected or the token is expired, you will receive a 401 Unauthorized for any operation requiring authentication.
To extend token lifespan, you may call this method every 13 minutes: `/api/1.0.0/user/whoami`
This method:
Authorization: Token 0123456789abcdef01234567
ℹ️ Reminder: integrate this call automatically into your process to avoid repeatedly calling the logIn method, as this may be interpreted by ID360 as abnormal or aggressive behavior.
curl -X POST \ "https://id360docaposte.com/api/1.0.0/process/{id}/enrollment" \ -H "Authorization: Token 0123456789abcdef01234567"
curl -X POST \ "https://preprod.id360docaposte.com/api/1.0.0/process/{id}/enrollment" \ -H "Authorization: Token 0123456789abcdef01234567"
Replace the {id} part with the UUID of a process.
Process objects are configurable via the admin UI (their UUID is displayed there).
{
"browser_callback_url": "https://www.example.com/browser_callback_url",
"client_reference": "any_string",
"callback_endpoints": [{
"url": "https://www.example.com/callback_url1",
"on": ["E","F","C"],
"headers": [{"name": "string", "value": "string"}]
},{
"url": "https://www.example.com/callback_url2",
"on": [],
"headers": [{"name": "string", "value": "string"}]
}],
"last_name": "Users last name",
"first_name": "Users first name",
"email": "Users email",
"address_line_1": "Users address line 1",
"address_line_2": "Users address line 2",
"address_line_3": "Users address line 3",
"zip_code": "Users zip code",
"city": "Users city",
"country": "Users country",
"phone_number": "Users phone number",
"group": "string"
}
browser_callback_url: required – URL triggered by the user's browser at the end of the process (used only for redirection purposes).client_reference: optional – Allows linking to an internal identifier from your system. Useful for cross-referencing in case of cancellation or failure.callback_endpoints: required – A callback endpoint enables ID360 to notify your system when an enrollment reaches a specific status (e.g., failure, cancellation, completion), via an HTTP POST request to the URL you provided. Headers are optional and can be used as identification headers when receiving callbacks.last_name, first_name, address_line_1/2/3, zip_code, city, country, phone_number, email: optional – User information is provided for informational purposes only (no validation is performed).group: optional – Allows consumption exports based on user-defined groups.For more information about callback_endpoints, see this dedicated guide.
HTTP Status: 200 OK
{
"url": "https://www.id360docaposte.com/api/1.0.0/enrollment/{id}",
"id": "{id}",
"process": 1,
"api_key": "0123456789abcdef0123456789abcde",
"browser_callback_url": "yyy",
"client_reference": "any_string",
"status": "NEW",
"reason": null,
"creation_time": "2021-12-17T15:01:49.013906",
"starting_time": null,
"finished_time": null;
"callback_endpoints": [{
"url": "https://dev.webhook.id360docaposte.com/66b905f6-ac91-4a2c-8b1b-752d2393ac3b",
"on": ["E","F","C"],
"headers": [{"name": "string"}]
},{
"url": "https://dev.webhook.id360docaposte.com/66b905f6-ac91-4a2c-8b1b-752d2393ac3b",
"on": [],
"headers": [{"name": "string"}]
}]
}
id and the api_key for the next steps in the process.
In the process configuration, it is essential to select at least one data field to compare.
To do this, go to the Information Entry block and choose the elements to compare.
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/{id}/control/data/{data_name}/?locked=true" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
curl -X POST \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/{id}/control/data/{data_name}/?locked=true" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
{id}: enrollment ID, obtained when creating the user enrollment.{data_name}: name of the data field to be compared.name → last namefirst_name → first namebirth_date → date of birthhttps://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info
| Parameter | Value | Description |
|---|---|---|
locked | true | Locks the data once submitted (prevents further modification) |
auto | false | The behavior depends on the type of data requested. For the phone_number data, the OTP SMS is triggered upon page load. Otherwise, the OTP code is sent immediately upon the API request. |
The body must simply contain the data to be checked, in plain format (text or simple value).
HTTP Status: 204 No Content
This indicates that the comparison was successfully processed and no response body is returned.
This step must be performed directly in the user's browser.
Using the api_key obtained during the user enrollment creation, you can redirect the user to the data entry interface using the following URL:
https://www.id360docaposte.com/static/process_ui/index.html#/enrollment/api_key_from_previous_step
https://preprod.id360docaposte.com/static/process_ui/index.html#/enrollment/api_key_from_previous_step
api_key_from_previous_step with the actual value received when the enrollment was created (field api_key in the response).A token is appended as a parameter to the redirection URL (browser callback) when the user is redirected. For example:
This token can be used to call the following method:
https://preprod.id360docaposte.com/static/swagger.html#/enrollment/enrollment_status_retrieve
This method retrieves the enrollment associated with the token present in the callback URL. It can only be invoked once per enrollment, after which the token is automatically invalidated.
Note that this is a fingerprint of the enrollment, not a full identification report like the one obtained via the “report” parameter (an example is available in Swagger).
Even if you do not use this token, the enrollment status will still be sent through the callback URL (see next step).
curl -X GET \ "https://id360docaposte.com/api/1.0.0/enrollment/{id}/report" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
curl -X GET \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/{id}/report" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
{id}: ID of the user enrollment, obtained during its creation.
HTTP Status: 200 OK
Response format: JSON
login method.Authorization: Token the_token_returned_by_login
The report is also available in the console, under the “User Enrollments” tab, for a period of two months. The identifier corresponds to the enrollment ID generated at the end of step 2. By selecting “View details,” you can access the identification report and download the evidence file in JSON format at the bottom of the page.
A temporary report is available before the final report is issued.
This report can be retrieved using the allow_draft = true parameter but must not be used in production.
⚠️ The report can only be retrieved after receiving the callback_url indicating the completion of the enrollment process.
Warning: Calling a temporary report may cause slowdowns or blockages for your users.
Applications and users can retrieve all evidence files via the report method.
- A file with the status:
NEWSTARTEDCANCELED
will return a temporary evidence file when using the draft = true parameter.
Users can retrieve all finalized evidence files (with a verdict OK or KO) via the report method.
Only users can access archived reports via the report/archive method.
▶️ Retrieval via an application: Login using your *application credentials* (application ID + password defined at creation).
▶️ Retrieval via a user: Login using your *user credentials*:
See the dedicated method: Download the PDF report
You can use the API to retrieve analyzed identity documents and, if configured, collected documents. This is possible up to 7 days after enrollment.
curl -X 'GET' \ 'https://id360docaposte.com/api/1.0.0/document/{id_document}/file_contents/?page_number={page_number}' \ -H 'accept: application/octet_stream' \ -H 'Authorization: Token 4550d727f89d76dc0b07917461a16710141d101e0796ec644c'
curl -X 'GET' \ 'https://preprod.id360docaposte.com/api/1.0.0/document/{id_document}/file_contents/?page_number={page_number}' \ -H 'accept: application/octet_stream' \ -H 'Authorization: Token 4550d727f89d76dc0b07917461a16710141d101e0796ec644c'
page_number:page_number=0 → frontpage_number=1 → back"documents": {
"identity": [{
"name": "id_document_image",
"files": [
{ "url": "https://preprod.id360docaposte.com/api/1.0.0/document/354746/file_contents/?page_number=0" },
{ "url": "https://preprod.id360docaposte.com/api/1.0.0/document/354746/file_contents/?page_number=1" }
]
}]
}
354746.page 0 = front / page 1 = back| Document Type | JSON Key (name) |
|---|---|
| Identity Document (SVID) | “documents”: { “identity”: [{ “name”: “id_document_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}, {“url”: xxxxxxxxxxxxxxx}]} |
| Identity Document (PVID) | “documents”: {“other”: [{ “name”: “ar24_in_front”, “files”: [{“url”: xxxxxxxxxxxxxxx}], [{ “name”: “ar24_in_back”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Identity Document with MIE | “documents”: {“identity”: [{ “name”: “idd”, “files”: [{“url”: xxxxxxxxxxxxxxx}]}]} |
| Bank Account Details (RIB) | “documents”: { “bank_details”: [{ “name”: “bank_details_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Tax Notice | “documents”: { “income_tax”: [{ “name”: “income_tax_notice_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Company Registration (KBIS) | “documents”: { “kbis”: [{ “name”: “kbis_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Payslip | “documents”: { “pay_slip”: [{ “name”: “pay_slip_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Property Tax | “documents”: { “property_tax”: [{ “name”: “property_tax_notice_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Selfie / Uploaded Photo | “documents”: { “selfie”: [{ “name”: “selfie_image_upload”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Selfie / Processed Photo | “documents”: { “selfie”: [{ “name”: “selfie_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Health Insurance Card | “documents”: { “health_insurance_card”: [{ “name”: “health_insurance_card_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Social Security Card | “documents”: { “social_security_card”: [{ “name”: “social_security_card_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Proof of Address | “documents”: { “proof_of_address”: [{ “name”: “proof_of_address_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Car Registration | “documents”: { “car_registration”: [{ “name”: “car_registration_image”, “files”: [{“url”: xxxxxxxxxxxxxxx}]} |
| Liveness | “documents”: { “liveness”: [{“name”: “liveness_video$0”, “files”: [{“url”: “xxxxxxxxxxxxxxx”}]},{“name”: “liveness_video$1”,“files”: [{“url”: “xxxxxxxxxxxxxxx”}]}] |
curl -X GET \ "https://id360docaposte.com/api/1.0.0/enrollment/{id}/idclaim" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
curl -X GET \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/{id}/idclaim" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
{id} : user file identifier, retrieved when it is created.
HTTP Status : 200 OK
Response format : ASIC-E
login method.Authorization: Token token_returned_by_login
The following permissions must be enabled on the application side (Android or iOS):
And also:
curl -X GET \ "https://id360docaposte.com/api/1.0.0/enrollment/{id}/control/discontinue" \ -H "Authorization: Token 0123456789abcdef01234567"
curl -X GET \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/{id}/control/discontinue" \ -H "Authorization: Token 0123456789abcdef01234567"
{id}: user enrollment identifier, retrieved during its creation.
HTTP Status: 204 No Content
The enrollment status will be changed to DISCONTINUED.