Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| guide_du_developpeur [2025/05/28 11:18] – [2. Création d’un dossier utilisateur] admin | guide_du_developpeur [2025/06/19 11:53] (Version actuelle) – supprimée admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Guide du Développeur ====== | ||
| - | |||
| - | === 🎯 La solution ID360 vous permettra de :=== | ||
| - | * ✅ Gérer l’**identification** et l’**authentification** des utilisateurs de votre service métier. | ||
| - | * 🗂️ (Optionnel) **Collecter**, | ||
| - | * 🎨 Personnaliser une **interface utilisateur** selon vos besoins. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔗 Accès au Swagger === | ||
| - | * **[[https:// | ||
| - | * **[[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Principales opérations API === | ||
| - | |||
| - | - **Connexion à l’API** : Cet appel vous fournira un token valide pendant 15 minutes, vous permettant d’accéder aux différentes méthodes de l’API. | ||
| - | - **Création d’un dossier utilisateur** : Lors de la création d’un dossier utilisateur, | ||
| - | - **Comparaison de données (optionnelle)** : Il est également possible de comparer des données attendues avec celles extraites de l' | ||
| - | - **Redirection de l’utilisateur vers l’interface utilisateur (UI)** : La clé API obtenue à l’étape précédente vous permettra de rediriger l’utilisateur vers son parcours d’enrôlement. | ||
| - | - **Récupération du rapport** : Vous pourrez récupérer le rapport du dossier utilisateur en utilisant l' | ||
| - | - **Récupération des documents** : Vous aurez également la possibilité de récupérer les documents d' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | 📘 **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 : **[[guide_mes_premiers_pas|Mes premiers pas avec ID360]]** | ||
| - | |||
| - | ====== 1. Connexion à l’API ====== | ||
| - | ==== 1.1 Connexion à l’API : Authentification ==== | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Production === | ||
| - | <code javascript> | ||
| - | curl -X POST " | ||
| - | -H " | ||
| - | -d '{ " | ||
| - | </ | ||
| - | |||
| - | === 🔧 Requête CURL – Préproduction === | ||
| - | <code javascript> | ||
| - | curl -X POST " | ||
| - | -H " | ||
| - | -d '{ " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📥 Paramètres requis === | ||
| - | |||
| - | ^ Paramètre | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📤 Résultat attendu (exemple) === | ||
| - | |||
| - | **HTTP Status** : '' | ||
| - | |||
| - | **Réponse (Body)** : | ||
| - | <code javascript> | ||
| - | { | ||
| - | " | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 💬 Commentaires === | ||
| - | |||
| - | * Cet appel **doit être effectué par votre serveur**, **jamais** depuis le navigateur de l’utilisateur. | ||
| - | * Le **token retourné est valide 15 minutes**. Ce délai est **réinitialisé à chaque appel API** utilisant ce token. | ||
| - | * Si vous tentez un appel avec un token expiré ou sans token, vous recevrez une erreur '' | ||
| - | * Tant que le token est valide, **il ne faut pas refaire un appel à ''/ | ||
| - | * Le token s’utilise dans les appels suivants sous forme de header : '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ==== 1.2 Headers de vos prochaines requêtes ==== | ||
| - | |||
| - | {{headers.png|Exemple de headers}} | ||
| - | |||
| - | Le header essentiel à ajouter à vos requêtes API est : | ||
| - | |||
| - | **'' | ||
| - | * le préfixe **'' | ||
| - | * un espace | ||
| - | * la **valeur du token** récupérée lors de la connexion à l’API | ||
| - | |||
| - | **Exemple** : | ||
| - | < | ||
| - | Authorization: | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === Tester via le Swagger === | ||
| - | |||
| - | Pour tester les appels dans Swagger : | ||
| - | - Cliquez sur le bouton **'' | ||
| - | - Entrez le token sous la forme : Token 0123456789abcdef01234567 | ||
| - | - Cliquez ensuite sur **'' | ||
| - | |||
| - | Vous serez alors authentifié pour effectuer les appels API directement depuis Swagger. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ==== ⚠️ 1.3 Durée de vie et extension du token - A INTEGRER IMPERATIVEMENT ⚠️ ==== | ||
| - | |||
| - | **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' | ||
| - | |||
| - | 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. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔁 Prolonger la validité du token === | ||
| - | |||
| - | Pour prolonger la durée de vie de votre token, vous pouvez appeler la méthode suivante **toutes les 13 minutes** : | ||
| - | |||
| - | **''/ | ||
| - | |||
| - | Cette méthode : | ||
| - | * Ne nécessite **aucun paramètre** | ||
| - | * Requiert un **en-tête Authorization** au format suivant : | ||
| - | |||
| - | < | ||
| - | Authorization: | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === ✅ Vérification de validité === | ||
| - | |||
| - | * Si cette méthode retourne un **code 200**, cela signifie que votre token est toujours valide. | ||
| - | * Dans le cas contraire, vous devrez générer un **nouveau token** via la méthode **'' | ||
| - | |||
| - | **ℹ️ À retenir : intégrer cet appel de manière automatique dans vos processus pour éviter d’avoir à solliciter la méthode logIn à répétition, | ||
| - | ** | ||
| - | |||
| - | ====== 2. Création d’un dossier utilisateur ====== | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Production === | ||
| - | <code javascript> | ||
| - | curl -X POST \ | ||
| - | " | ||
| - | -H " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Préproduction === | ||
| - | <code javascript> | ||
| - | curl -X POST \ | ||
| - | " | ||
| - | -H " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🛠 Remarques sur l’URL === | ||
| - | |||
| - | Remplacez la partie '' | ||
| - | Les objets process sont configurables via l’IHM d’administration (leur UUID y est affiché). | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📥 Body attendu === | ||
| - | |||
| - | <code json> | ||
| - | { | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | },{ | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }] | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📝 Détails des champs === | ||
| - | |||
| - | * **'' | ||
| - | * **'' | ||
| - | * **'' | ||
| - | * **'' | ||
| - | * **'' | ||
| - | * **'' | ||
| - | * **'' | ||
| - | |||
| - | > Pour plus de détails sur la callback_url ou sur les callback_endpoints, | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📤 Résultat attendu (exemple) === | ||
| - | |||
| - | **HTTP Status** : '' | ||
| - | |||
| - | <code json> | ||
| - | { | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 💬 Commentaire === | ||
| - | |||
| - | * Cet appel **doit être effectué côté serveur**, jamais depuis le navigateur de l' | ||
| - | * ⚠️ **Il est essentiel de conserver l’'' | ||
| - | |||
| - | ====== 3. Comparaison de données (optionnelle) ====== | ||
| - | |||
| - | Dans la configuration du parcours, il est indispensable de sélectionner **au moins une donnée à comparer**. | ||
| - | Pour ce faire, accédez au bloc **'' | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Production === | ||
| - | <code javascript> | ||
| - | curl -X POST \ | ||
| - | " | ||
| - | -H " | ||
| - | -H " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Préproduction === | ||
| - | <code javascript> | ||
| - | curl -X POST \ | ||
| - | " | ||
| - | -H " | ||
| - | -H " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🛠 Informations techniques === | ||
| - | |||
| - | * **'' | ||
| - | * **'' | ||
| - | - Exemples : | ||
| - | - '' | ||
| - | - '' | ||
| - | - '' | ||
| - | * Pour connaître les données attendues, vous pouvez interroger : | ||
| - | [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📥 Paramètres === | ||
| - | |||
| - | ^ Paramètre ^ Valeur ^ Description ^ | ||
| - | | '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📤 Body attendu === | ||
| - | |||
| - | Le body doit simplement contenir **la donnée à vérifier**, | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === ✅ Résultat attendu === | ||
| - | |||
| - | **HTTP Status** : '' | ||
| - | Cela indique que la comparaison a bien été prise en compte **et ne retourne pas de corps de réponse**. | ||
| - | |||
| - | |||
| - | ====== 4. Renvoi de l’utilisateur vers l’UI ====== | ||
| - | |||
| - | Cette étape doit être réalisée **directement dans le navigateur de l’utilisateur**. | ||
| - | À l’aide de l’'' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🌐 Environnement de Production === | ||
| - | |||
| - | < | ||
| - | https:// | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🧪 Environnement de Préproduction === | ||
| - | |||
| - | < | ||
| - | https:// | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === ℹ️ Remarques === | ||
| - | |||
| - | * Cette URL **doit être ouverte dans le navigateur de l’utilisateur final**. | ||
| - | * Remplacez **'' | ||
| - | |||
| - | ==== Lorsque l’utilisateur a terminé son parcours d’identification ==== | ||
| - | |||
| - | Un token est ajouté en paramètre de l’URL de redirection (browser callback) lors de la redirection de l’utilisateur. Par exemple : | ||
| - | |||
| - | https:// | ||
| - | |||
| - | Ce token permet d’appeler la méthode suivante : | ||
| - | |||
| - | https:// | ||
| - | |||
| - | Cette méthode récupère l' | ||
| - | |||
| - | Notez qu'il s'agit d'une empreinte de l' | ||
| - | |||
| - | Même si vous n’utilisez pas ce token, le statut du dossier sera communiqué via l’URL de callback (voir l’étape suivante). | ||
| - | |||
| - | |||
| - | |||
| - | ====== 5. Récupération du rapport ====== | ||
| - | |||
| - | ==== 5.1 Récupération du rapport par API ==== | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Production === | ||
| - | <code javascript> | ||
| - | curl -X GET \ | ||
| - | " | ||
| - | -H " | ||
| - | -H " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Préproduction === | ||
| - | <code javascript> | ||
| - | curl -X GET \ | ||
| - | " | ||
| - | -H " | ||
| - | -H " | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🛠 Informations techniques === | ||
| - | |||
| - | * **'' | ||
| - | * **Paramètres** : aucun paramètre attendu dans cette requête. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === ✅ Résultat attendu === | ||
| - | |||
| - | **HTTP Status** : '' | ||
| - | **Format de la réponse** : JSON | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 💬 Commentaires === | ||
| - | |||
| - | * Cet appel doit être effectué **par votre serveur**, **jamais depuis le navigateur de l’utilisateur**. | ||
| - | * Le token de connexion est **valable 15 minutes**, renouvelées à chaque appel utilisant ce token. | ||
| - | * En cas de token expiré ou absent, vous recevrez une **erreur 401 Unauthorized**. | ||
| - | * Tant que votre token est valide, **il ne faut pas réutiliser la méthode '' | ||
| - | * Le token s’utilise dans l’en-tête des appels suivants sous la forme : | ||
| - | |||
| - | < | ||
| - | Authorization: | ||
| - | </ | ||
| - | |||
| - | ==== 5.2 Récupération du rapport depuis la plateforme d' | ||
| - | |||
| - | Le rapport est également accessible dans la console, sous l' | ||
| - | |||
| - | ==== 5.3 Spécificités ==== | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📄 Un rapport temporaire === | ||
| - | |||
| - | 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 **'' | ||
| - | |||
| - | ⚠️ La récupération du rapport ne peut se faire **qu' | ||
| - | |||
| - | **Attention** : | ||
| - | L' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📄 Un rapport émis il y a moins de 7 jours === | ||
| - | |||
| - | Les applications et utilisateurs peuvent récupérer tous les **dossiers de preuve** via la méthode '' | ||
| - | |||
| - | - Un dossier ayant le statut : | ||
| - | - '' | ||
| - | - '' | ||
| - | - '' | ||
| - | aura un dossier de preuve **temporaire** accessible en ajoutant **'' | ||
| - | |||
| - | → [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📄 Un rapport émis il y a plus de 7 jours et moins de 2 mois === | ||
| - | |||
| - | Les utilisateurs peuvent récupérer tous les **dossiers de preuve finalisés** (avec un **verdict OK ou KO**) via la méthode '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📄 Un rapport émis il y a plus de 2 mois et jusqu’à expiration de la période d’archivage === | ||
| - | |||
| - | Seuls les **utilisateurs** peuvent accéder aux **rapports archivés** via la méthode '' | ||
| - | |||
| - | * Un dossier avec un statut **CANCELED** ou **FAILED** **n’est pas archivé**. | ||
| - | * Un dossier **DELETED** (de plus de 2 mois) est archivé **uniquement** s’il avait un statut final **OK** ou **KO**. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 👥 Définition : application vs utilisateur === | ||
| - | |||
| - | **▶️ Récupération via une application : | ||
| - | Connexion via vos identifiants *applicatifs* (identifiant de l' | ||
| - | |||
| - | **▶️ Récupération via un utilisateur : | ||
| - | Connexion avec vos identifiants *utilisateur* : | ||
| - | - Adresse e-mail | ||
| - | - Mot de passe personnel | ||
| - | - Jeton de double authentification (2FA) | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📄 Récupération du PDF du rapport === | ||
| - | |||
| - | Voir méthode dédiée : | ||
| - | [[https:// | ||
| - | |||
| - | ====== 6. Récupération de documents ====== | ||
| - | |||
| - | Il vous est possible, via l’API, de récupérer les **pièces d’identité analysées** et, si configuré, les **documents collectés**. | ||
| - | Cela est possible **jusqu’à 7 jours après l’enrôlement**. | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Production === | ||
| - | <code bash> | ||
| - | curl -X ' | ||
| - | ' | ||
| - | -H ' | ||
| - | -H ' | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 🔧 Requête CURL – Préproduction === | ||
| - | <code bash> | ||
| - | curl -X ' | ||
| - | ' | ||
| - | -H ' | ||
| - | -H ' | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📄 Commentaires === | ||
| - | |||
| - | * Le document est renvoyé **directement en réponse**. | ||
| - | * Pour obtenir **le recto et le verso** d’une pièce d’identité, | ||
| - | - '' | ||
| - | - '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📁 Exemple d’extraction depuis un rapport JSON === | ||
| - | |||
| - | <code json> | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | { " | ||
| - | { " | ||
| - | ] | ||
| - | }] | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | * L’identifiant du document est **'' | ||
| - | * '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | === 📚 Typologie des documents récupérables === | ||
| - | |||
| - | ^ Type de document ^ Clé JSON (name) ^ | ||
| - | | **Pièce d' | ||
| - | | **Pièce d' | ||
| - | | **Pièce d' | ||
| - | | **RIB** | '' | ||
| - | | **Avis d’imposition** | ''" | ||
| - | | **KBIS** | ''" | ||
| - | | **Bulletin de salaire** | ''" | ||
| - | | **Taxe foncière** | '' | ||
| - | | **Selfie / Photo uploadée** | ''" | ||
| - | | **Selfie / Photo traitée** | ''" | ||
| - | | **Carte de mutuelle** | ''" | ||
| - | | **Carte vitale** | ''" | ||
| - | | **Justificatif de domicile** | ''" | ||
| - | | **Carte grise** | ''" | ||
| - | | **Liveness** | ''" | ||
| - | |||
| - | ====== Health Monitoring ====== | ||
| - | |||
| - | Il vous est possible via l’API health de récupérer un JSON donnant le statut sur les services utilisés par ID360. | ||
| - | |||
| - | curl " | ||
| - | |||
| - | **Résultat (exemple) | ||
| - | |||
| - | <code json> | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | } | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | }, …. | ||
| - | }, …. | ||
| - | | ||
| - | </ | ||
| - | |||
| - | Time: correspond à la valeur de l’horaire auquel a été fait la dernière mise à jour | ||
| - | |||
| - | Deux instances " | ||
| - | |||
| - | |||