Authorization: Basic base64(applicationToken:applicationSecret)
{ "username": "string", "password": "string" }
{ "token": "0123456789abcdef01234567" }
Authorization: Token 0123456789abcdef01234567
🔄 Pour prolonger la validité du token (sans générer un nouveau token) :
GET /api/1.0.0/user/whoami Authorization: Token 0123456789abcdef01234567
| Fonction | ShootID | ID360 |
|---|---|---|
| Méthode | HTTP Basic Auth | Login avec username/password → Token |
| Endpoint | N/A (inclus dans chaque appel) | POST /user/login/ |
| Format d’authentification | Authorization: Basic … | Authorization: Token <jeton> |
| Validité du token | Long terme (pas d’expiration) | expiré au delà de 15 min d'inactivité |
| Prolongation du token | N/A | GET /user/whoami recommandé toutes les 13 min |
{ "transactionId": "2c95841e45404f7e0145405da33f0009", "qrCode": "https://www.contralia.fr/shootid/api/v2/picture?pictureId=2c95841e45404f7e0145405" }
curl -X POST \ "https://id360docaposte.com/api/1.0.0/process/{UUID}/enrollment" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567" \ -d '{ "callback_url": "https://www.example.com/callback_url", "browser_callback_url": "https://www.example.com/browser_callback_url", "client_reference": "any_string", "callback_headers": { "header_name_1": "header_value_1", "header_name_2": "header_value_2" }, "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" }'
| Fonction | ShootID | ID360 |
|---|---|---|
| Type d’appel | `GET /api/v2/init` | `POST /api/1.0.0/process/{id}/enrollment` |
| Retour | `transactionId`, `qrCode` | `id` (dossier), `url`, `api_key`, `status` |
| Paramétrage du parcours | Implicite | Explicite via `{id}` du process configuré dans l’IHM |
| Callback technique | N\A | `callback_url` (backend) + `browser_callback_url` (front) |
| Suivi personnalisé | Non | `client_reference` possible |
| Authentification | Via Basic dans chaque appel | Via token (`Authorization: Token …`) |
Dans certains parcours ID360, plusieurs méthodes d’identification peuvent être proposées à l’utilisateur final, telles que :
👉 Dans le cadre du présent parcours, seul le canal du Parcours Personnalisable Docaposte est utilisé, ce qui implique que la plateforme ID360 demande explicitement à l’intégrateur de sélectionner cette route parmi les options disponibles.
🔐 Cette sélection garantit que l’utilisateur suivra le bon scénario d’identification, sans ambiguïté, en accord avec le paramétrage métier prévu dans la console d’administration.
Associer une route spécifique à un dossier utilisateur (enrollment) via son `api_key`, afin de verrouiller le mode d’identification à suivre.
Préprod :
curl -X 'GET' \ 'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info/' \ -H 'accept: application/json' \ -H 'x-api-key: {API_KEY_DOSSIER}'
Prod :
curl -X 'GET' \ 'https://id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info/' \ -H 'accept: application/json' \ -H 'x-api-key: {API_KEY_DOSSIER}'
Réponse (extrait) :
{ "routes": [ { "id": 275128 } ] }
Le champ `routes[0].id` contient l’identifiant de la route à utiliser.
Préprod :
curl -X 'POST' \ 'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/route/{route_id}/select/' \ -H 'accept: application/json' \ -H 'x-api-key: {API_KEY_DOSSIER}' \ -H 'Content-Type: text/plain'
Prod :
curl -X 'POST' \ 'https://id360docaposte.com/api/1.0.0/enrollment/flow/route/{route_id}/select/' \ -H 'accept: application/json' \ -H 'x-api-key: {API_KEY_DOSSIER}' \ -H 'Content-Type: text/plain'
Réponse attendue :
HTTP 204 No Content
{ "transactionId": "2c95841e45404f7e0145405da33f0009", "qrCode": "https://www.contralia.fr/shootid/api/v2/picture?pictureId=2c95841e45404f7e0145405da35c000a", "documents": [{ "status": "READY_TO_BE_SCANNED", "declaredType": "IDENTITY", "documentId": 0 }] }
https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/id_document_image/?total_pages=2&uploaded_page=0
curl -X 'POST' \ 'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/id_document_image/?total_pages=2&uploaded_page=0' \ -H 'accept: */*' \ -H 'x-api-key: {API_KEY_DOSSIER}' \ -H 'Content-Type: application/octet-stream' \ --data-binary '@CNIRecto.PNG'
| Paramètre | Description |
|---|---|
| `total_pages` | Nombre total de pages à uploader pour le document (ex : `2` pour CNI recto/verso) |
| `uploaded_page` | Index de la page envoyée (commence à `0`) |
| Élément | ShootID | ID360 |
|---|---|---|
| Endpoint | `POST /api/v2/add` | `POST /enrollment/flow/document/id_document_image/` |
| Authentification | `Authorization: Basic` + `transactionId` | `x-api-key` |
| Format d’envoi | `multipart/form-data` | `application/octet-stream` (binaire pur) |
| Paramètres document | `type`, `documentId`, `page`, etc. | `total_pages`, `uploaded_page` dans l’URL |
| Champ du fichier | `file` | contenu brut via `–data-binary` |
| Réponse | JSON avec `status`, `documentId`, etc. | Réponse non détaillée (succès silencieux) ou `204` attendu |
| Traitements optionnels | Oui (binarisation, OCR, cropping, etc.) | Gérés en amont dans le paramétrage du parcours |
| Type de document géré | Enum : `IDENTITY`, `RIB`, `CHECK`, `CAR_REGISTRATION`, etc. | Fixe : `id_document_image` (pour cette étape spécifique) |
Dans certains parcours ID360, notamment ceux nécessitant la constitution du bloc adresse ou de l’identité bancaire, il est indispensable d’ajouter d'autres documents en plus de la pièce d’identité :
POST /api/1.0.0/enrollment/flow/document/bank_details_image/
curl -X 'POST' \ 'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/bank_details_image/' \ -H 'accept: */*' \ -H 'x-api-key: {API_KEY_DOSSIER}' \ -H 'Content-Type: application/octet-stream' \ --data-binary '@rib.jpg'
→ Ce document alimente le bloc bancaire (IBAN, titulaire du compte).
POST /api/1.0.0/enrollment/flow/document/proof_of_address_image/
curl -X 'POST' \ 'https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/proof_of_address_image/' \ -H 'accept: */*' \ -H 'x-api-key: {API_KEY_DOSSIER}' \ -H 'Content-Type: application/octet-stream' \ --data-binary '@facture_edf.pdf'
→ Ce document est utilisé pour alimenter le bloc adresse, qui peut être recoupé avec la pièce d’identité.
| Type de document | Endpoint ID360 |
|---|---|
| Pièce d'identité | `/enrollment/flow/document/id_document_image/` |
| Justificatif de domicile | `/enrollment/flow/document/proof_of_address_image/` |
| RIB | `/enrollment/flow/document/bank_details_image/` |
curl -X GET \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/{id}/report" \ -H "accept: application/json" \ -H "Authorization: Token 0123456789abcdef01234567"
{
"status": "OK",
"id": 215416,
"identity": {
"name": "SPECIMEN ABB",
"first_name": "NATACHA",
"birth_date": "1973-07-12",
"gender": "F",
"birth_place": "TOULON",
"nationality": "FRA",
"extra": {
"id_number": "90RF02331",
"expiration_date": "2029-03-03",
"issuer": "Préfecture du Sud",
"address": "102 RUE PRINCIPALE 34700 LODÈVE FRANCE"
}
},
"extracted_data": {
"proof_of_address": [
{
"full_name": "MME SPECIMEN NATACHA",
"address_1": "205 route des lylas",
"address_2": "BT LES OLIVIERS",
"zip_code": "06000",
"city": "Nice",
"date": "2022-04-06"
}
],
"bank_details": [
{
"iban": "FR7630006000011234567890189",
"bic": "CEPAFRPP831",
"full_name": "MLE NATACHA SPECIMEN"
}
]
}
}
→ Attendez toujours la réception de la *callback finale* sur votre `callback_url` avant d'appeler la méthode report.
| Fonction | ShootID | ID360 |
|---|---|---|
| Endpoint | `GET /result` | `GET /enrollment/{id}/report` |
| Authentification | Basic Auth | `Authorization: Token …` |
| Moment d’appel | Après upload des docs | Après réception de la callback finale |
| Structure de réponse | Par document (`documents[]`) | Par bloc (`blocks.identity`, `blocks.address`, etc.) |
| Résultats techniques | Détail MRZ / OCR | Agrégés selon configuration du parcours |