Voici les étapes clés à implémenter dans votre intégration :
📘 Pour poursuivre la lecture de ce guide, il est nécessaire d’avoir créé au moins un parcours et une application.
Si ce n’est pas encore fait, nous vous recommandons de consulter la première section de ce guide: Mes premiers pas avec 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" }'
| Paramètre | Obligatoire | Détails |
|---|---|---|
username | Oui | Identifiant de connexion |
password | Oui | Mot de passe associé |
token | Non (sauf si admin) | Inutile pour les comptes application. Obligatoire uniquement pour les comptes admin avec authentification à deux facteurs. |
HTTP Status : 200 OK
Réponse (Body) :
{ "token": "0123456789abcdef01234567" }
401 Unauthorized./login/.Authorization: Token 0123456789abcdef01234567Le header essentiel à ajouter à vos requêtes API est :
Authorization → doit contenir :
TokenExemple :
Authorization: Token 0123456789abcdef01234567
Pour tester les appels dans Swagger :
Try it out (en haut à droite)Authorize.Vous serez alors authentifié pour effectuer les appels API directement depuis Swagger.
Le token de connexion est valable pendant 15 minutes.
Cette durée est réinitialisée à chaque appel de méthode utilisant le token (*à l'exception de la méthode logIn*).
Si vous n’êtes pas connecté ou si votre token a expiré, vous recevrez une erreur 401 Unauthorized pour toute opération nécessitant une authentification.
Pour prolonger la durée de vie de votre token, vous pouvez appeler la méthode suivante toutes les 13 minutes :
/api/1.0.0/user/whoami
Cette méthode :
Authorization: Token 0123456789abcdef01234567
logIn.ℹ️ À retenir : intégrer cet appel de manière automatique dans vos processus pour éviter d’avoir à solliciter la méthode logIn à répétition, cela pourrait être interprété par ID360 comme un comportement anormal ou agressif.
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"
Remplacez la partie {id} par l’UUID d’un process.
Les objets process sont configurables via l’IHM d’administration (leur UUID y est affiché).
{
"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"}]
}],
"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",
"group": "string"
}
browser_callback_url : obligatoire – URL appelée par le navigateur de l’utilisateur à la fin du parcours (utilisée uniquement pour la redirection).client_reference : facultatif – Permet d’associer un identifiant interne à votre système. Utile pour les croisements en cas d’annulation ou d’échec.callback_endpoints : obligatoire – un callback endpoint permet à ID360 de notifier automatiquement votre système lorsqu’un dossier atteint un certain statut (ex. échec, annulation, fin de traitement), via une requête HTTP POST envoyée à l’URL que vous avez fournie. Les headers sont optionnels, vous pouvez les utiliser comme des headers d'identification lors de la réception des callbacks.last_name, first_name, address_line_1/2/3, zip_code, city, country, phone_number, email : facultatifs – Informations utilisateur à titre informatif uniquement (aucun contrôle réalisé dessus).group : facultatif – permettra de faire un export des consommations en fonction de groupes.Pour plus de détails sur les callback_endpoints, consultez ce guide dédié.
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 du dossier ainsi que la api_key pour la suite du processus.Dans certains parcours, deux méthodes d'identification sont proposées à l’utilisateur final, telles que :
Dans le cadre de notre parcours, seule l’option de Parcours en Ligne Personnalisable de Docaposte a été retenue, offrant ainsi un unique canal d’authentification.
Ce guide présente les étapes pour récupérer l’identifiant de la route et la sélectionner dans ce parcours.
curl -X GET \ "https://id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info/" \ -H "accept: application/json" \ -H "x-api-key: <votre_api_key>"
curl -X GET \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info/" \ -H "accept: application/json" \ -H "x-api-key: <votre_api_key>"
"routes": [
{
"id": 275128
}
]
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/flow/route/{route_id}/select/" \ -H "accept: application/json" \ -H "x-api-key: <votre_api_key>" \ -H "Content-Type: text/plain"
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: <votre_api_key>" \ -H "Content-Type: text/plain"
HTTP Status : `204 No Content`
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/flow/consent/?accepted_cgu=true&accepted_biometry=true" \ -H "accept: */*" \ -H "x-api-key: <votre_api_key>" \ -d ''
curl -X POST \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/consent/?accepted_cgu=true&accepted_biometry=true" \ -H "accept: */*" \ -H "x-api-key: <votre_api_key>" \ -d ''
HTTP Status : `204 No Content`
Dans la configuration du parcours, il est indispensable de sélectionner au moins une donnée à comparer.
Pour ce faire, accédez au bloc Saisie d'informations et choisissez les éléments à comparer.
Voir la méthode dans le Swagger
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/{id}/control/data/{data_name}/?locked=true" \ -H "accept: text/plain" \ -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: text/plain" \ -H "Authorization: Token 0123456789abcdef01234567"
{id} : identifiant de l’enrôlement, récupéré lors de la création du dossier utilisateur.{data_name} : nom de la donnée à comparer.name → nom de famillefirst_name → prénombirth_date → date de naissancehttps://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/enrollment_info
| Paramètre | Valeur | Description |
|---|---|---|
locked | true | Verrouille la donnée une fois soumise (évite la modification ultérieure) |
Le body doit simplement contenir la donnée à vérifier, au format brut (texte ou valeur simple).
Attention, les données doivent être poussées en UTF-8.
HTTP Status : 204 No Content
Cela indique que la comparaison a bien été prise en compte et ne retourne pas de corps de réponse.
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/flow/document/id_document_image/?total_pages=2&uploaded_page=0" \ -H "accept: */*" \ -H "x-api-key: <votre_api_key>" \ --data-binary "@CNIRecto.PNG"
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: <votre_api_key>" \ --data-binary "@CNIRecto.PNG"
HTTP Status : `204 No Content`
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/flow/document/selfie_image_upload/?total_pages=1&uploaded_page=0" \ -H "accept: */*" \ -H "x-api-key: <votre_api_key>" \ --data-binary "@selfie.PNG"
curl -X POST \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/document/selfie_image_upload/?total_pages=1&uploaded_page=0" \ -H "accept: */*" \ -H "x-api-key: <votre_api_key>" \ --data-binary "@selfie.PNG"
HTTP Status : `204 No Content`
curl -X POST \ "https://id360docaposte.com/api/1.0.0/enrollment/flow/finalize_enrollment" \ -H "accept: application/json" \ -H "x-api-key: <votre_api_key>"
curl -X POST \ "https://preprod.id360docaposte.com/api/1.0.0/enrollment/flow/finalize_enrollment" \ -H "accept: application/json" \ -H "x-api-key: <votre_api_key>"
HTTP Status : `204 No Content`
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} : identifiant du dossier utilisateur, récupéré lors de sa création.
HTTP Status : 200 OK
Format de la réponse : JSON
login.Authorization: Token le_token_retourné_par_login
Le rapport est également accessible dans la console, sous l'onglet « Dossiers Utilisateurs » pour une durée de deux mois. L'identifiant correspond à l'ID du dossier généré à l’issue de l’étape 2. En sélectionnant « Voir le détail », vous pouvez consulter le rapport d’identification et télécharger le dossier de preuves au format JSON en bas de page.
Un rapport temporaire est disponible avant que le rapport final ne soit émis.
Ce rapport peut être récupéré grâce au paramètre allow_draft = true, mais ne doit pas être utilisé en production.
⚠️ La récupération du rapport ne peut se faire qu'après réception de la callback_url vous informant de la fin du traitement du dossier.
Attention : L'appel à un rapport temporaire peut induire des ralentissements ou des blocages pour vos utilisateurs.
Les applications et utilisateurs peuvent récupérer tous les dossiers de preuve via la méthode report.
- Un dossier ayant le statut :
NEWSTARTEDCANCELED
aura un dossier de preuve temporaire accessible en ajoutant draft = true à l’appel.
Les utilisateurs peuvent récupérer tous les dossiers de preuve finalisés (avec un verdict OK ou KO) via la méthode report.
Seuls les utilisateurs peuvent accéder aux rapports archivés via la méthode report/archive.
▶️ Récupération via une application : Connexion via vos identifiants *applicatifs* (identifiant de l'application + mot de passe défini à la création).
▶️ Récupération via un utilisateur : Connexion avec vos identifiants *utilisateur* :
Voir méthode dédiée : Téléchargement du PDF du rapport
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} : identifiant du dossier utilisateur, récupéré lors de sa création.
HTTP Status : 200 OK
Format de la réponse : ASIC-E
login.Authorization: Token le_token_retourné_par_login