[[:guide_callbacks|Français]] | [[:en:guide_callbacks|English]] ---- ====== INTRODUCTION AUX CALLBACKS ====== ==== 🔁 Callbacks – À quoi servent-ils ? ==== Lors de la crĂ©ation d’un dossier, il est indispensable de renseigner un ou plusieurs **callback_endpoints**, c’est-Ă -dire des URL(s) sur lesquelles ID360 enverra automatiquement des notifications (en HTTP POST) tout au long du processus d’identification. Chaque callback_endpoint recevra un **payload** contenant des informations liĂ©es au dossier, notamment son statut et les Ă©tapes franchies par l’utilisateur. === 📌 Que peut-on configurer ? === Vous avez la possibilitĂ© de renseigner **une ou plusieurs URLs de callback**. Pour chaque callback, vous pouvez dĂ©finir le niveau de notification souhaitĂ© : * **Callback finale uniquement** : vous recevez une seule notification Ă  la fin du processus, indiquant que l’identification est terminĂ©e, avec les informations associĂ©es. * **Callbacks intermĂ©diaires + finale** : vous ĂȘtes notifiĂ©s Ă  chaque Ă©tape clĂ© du parcours utilisateur (dĂ©but, upload, validation des documents, etc.), en plus de la notification finale. === ⚠ Attention Ă  l’ordre d’arrivĂ©e des callbacks === Il est important de noter que dans certains cas, **des callbacks intermĂ©diaires peuvent arriver aprĂšs la callback finale**. Cela peut se produire si l’envoi initial d’une callback a Ă©chouĂ© (par exemple si votre serveur Ă©tait temporairement indisponible) : ID360 effectuera alors des **re-tentatives automatiques (retries)** pour garantir la bonne rĂ©ception. Ces retries peuvent provoquer un **dĂ©salignement temporel dans l’ordre des messages reçus**. * → Il est donc fortement recommandĂ© de **vous baser sur le contenu du payload** plutĂŽt que sur l’ordre d’arrivĂ©e des notifications. ==== LA CONSTRUCTION DU PAYLOAD ==== Ci-dessous un exemple de payload (format JSON) envoyĂ© par ID360 Ă  votre URL de callback : {{payload.png ? 289 × 286}} ==== PREREQUIS ==== En tant que service de confiance, nous avons la responsabilitĂ© de nous conformer aux normes en vigueur, notamment l'ETSI EN 319 401, qui exige l’utilisation des versions les plus rĂ©centes de TLS pour garantir la sĂ©curitĂ© et la fiabilitĂ© de nos Ă©changes. Nous vous recommandons de vĂ©rifier que votre connexion est correctement configurĂ©e en **TLSv2 ou TLSv3**. Si vous souhaitez autoriser nos adresses IP, nous vous invitons Ă  contacter votre Customer Success Manager, qui se chargera de vous les communiquer. ====== CALLBACKS INTERMEDIAIRES ====== À chaque Ă©tape franchie par l'utilisateur, vous recevrez des notifications intermĂ©diaires sous forme de callback, qui vous informeront de la nature et du statut de l'Ă©tape en question. ==== CONSTRUCTION ET CARACTERISTIQUES ==== {{callbackintermediaire.png? 251 × 255}} Le **statut** d'une callback intermĂ©diaire sera systĂ©matiquement dĂ©fini sur « STARTED ». Le bloc **steps_status** indique qu’un total de 7 Ă©tapes de contrĂŽle a Ă©tĂ© identifiĂ© pour le parcours associĂ© Ă  ce payload. La valeur **done = 1** signifie que seule l’étape ProfileDataStep (qui Ă©tait de pousser le nom de famille par API) a Ă©tĂ© finalisĂ©e. Le champ **enrollment_step** fournit des informations dĂ©taillĂ©es sur l’étape, notamment le rĂ©sultat du contrĂŽle, le type de vĂ©rification effectuĂ©e, ainsi que la liste des documents concernĂ©s. Le statut prĂ©sent dans enrollment_step peut ĂȘtre OK, KO, FAILED, USER_PROCESSING, SYS_PROCESSING. **Le type prĂ©sent dans la variable enrollment_step est une information interne, Ă  ce titre, il ne doit pas ĂȘtre utilisĂ© ou exploitĂ©.** ==== LES ETAPES D’ENROLEMENT PAR NOM ==== === PiĂšces d'identitĂ© === ^ ‘enrollment_step’ > ‘name’ ^ Document(s) ^ ContrĂŽle / Remarque ^ | id_document | PiĂšce d’identitĂ© | La piĂšce d’identitĂ© a bien Ă©tĂ© reçue et lue par ID360 | | id_document_mandate | PiĂšce d’identitĂ© | La piĂšce d’identitĂ© de la personne prĂ©sente dans le KBIS a bien Ă©tĂ© reçue et lue par ID360 | | fake_photo_id| PiĂšce d’identitĂ© | La photo prĂ©sente sur la piĂšce d’identitĂ© est conforme | | phone_detection | PiĂšce d’identitĂ© | La dĂ©tection d’attaque par prĂ©sentation s’est bien dĂ©roulĂ©e | | image_forensics | PiĂšce d’identitĂ© | La dĂ©tection de la monochromie s’est bien dĂ©roulĂ©e | === Moyens d’identification Ă©lectronique === ^ ‘enrollment_step’ > ‘name’ ^ Document(s) ^ ContrĂŽle / Remarque ^ | ar24| PVID | AR24 a communiquĂ© les rĂ©sultats de l’enrĂŽlement Ă  ID360 | | france_connect| France Connect | France Connect a communiquĂ© les rĂ©sultats de l’enrĂŽlement Ă  ID360 | | france_connect_plus| France Connect+ | France Connect+ a communiquĂ© les rĂ©sultats de l’enrĂŽlement Ă  ID360 | | id_num| IdentitĂ© NumĂ©rique La Poste | L’identitĂ© NumĂ©rique La Poste a communiquĂ© les rĂ©sultats de l’enrĂŽlement Ă  ID360 | === Selfie === ^ ‘enrollment_step’ > ‘name’ ^ Document(s) ^ ContrĂŽle / Remarque ^ | facecomparison | Selfie + piĂšce d’identitĂ© | ID360 a bien reçu l’image du selfie extraite de la vidĂ©o | | liveness | Selfie | La vidĂ©o correspondant au challenge effectuĂ© par l’utilisateur a bien Ă©tĂ© reçue cĂŽtĂ© ID360 (deux fois pour deux challenges) | === Documents complĂ©mentaires === ^ ‘enrollment_step’ > ‘name’ ^ Document(s) ^ ContrĂŽle / Remarque ^ | property_tax_notice | Avis de taxes fonciĂšres de l’état français| Le document a bien Ă©tĂ© reçu et lu par ID360 | | proof_of_address | Justificatif de domicile | Le document a bien Ă©tĂ© reçu et lu par ID360 | | pay_slip | Bulletin de salaire d’un salariĂ© français | Le document a bien Ă©tĂ© reçu et lu par ID360 | | kbis| Extrait de Kbis | Le document a bien Ă©tĂ© reçu et lu par ID360 | | income_tax_notice| Avis d’imposition de l’état français | Le document a bien Ă©tĂ© reçu et lu par ID360 | | bank_details | RIB de banques françaises | Le document a bien Ă©tĂ© reçu et lu par ID360 | | free_document | Document libre | Le document a bien Ă©tĂ© reçu et lu par ID360 | | mandate | Mandat en lien avec le KBIS | Le document a bien Ă©tĂ© reçu et lu par ID360 | === Autres contrĂŽles === ^ ‘enrollment_step’ > ‘name’ ^ Document(s) ^ ContrĂŽle / Remarque ^ | phone| NumĂ©ro de tĂ©lĂ©phone | L’utilisateur a renseignĂ© son numĂ©ro de tĂ©lĂ©phone | | otp| Code OTP | Le code OTP a bien Ă©tĂ© saisi par l’utilisateur | | email | Adresse email | L’utilisateur a renseignĂ© son adresse email | ====== CALLBACK FINALE ====== La callback finale vous signalera la fin du processus d’identification et vous donnera des informations sur cette derniĂšre. {{callbackfinale.png?386 × 137 }} Le statut d’une callback finale sera : **OK, KO, FAILED ou CANCELED.** Dans le cas d’un KO, comme dans l’exemple ci-contre, la raison vous informera de la cause de ce KO. Dans le steps_status la valeur « done » sera Ă©gale Ă  la valeur « total ». \\ \\ \\ Dans le cadre de cette callback, vous devez renvoyer un code 2XX (par exemple 204) dans un dĂ©lai infĂ©rieur Ă  10 secondes. Si cette rĂ©ponse n’est pas reçue, jusqu’à 6 nouvelles tentatives (retries) seront effectuĂ©es selon le planning suivant : ^ Tentative ^ Secondes ^ Minutes ^ Minutes cumulĂ©es ^ | 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 | Ces intervalles sont calculĂ©s selon la formule : // 10 x (n+1)^3// (n correspondant au numĂ©ro de la tentative) — le rĂ©sultat Ă©tant exprimĂ© en secondes. ====== LES CALLBACKS ENDPOINTS ====== Dans le body de l'Ă©tape de la crĂ©ation d'un dossier utilisateur : "callback_endpoints": [ { "url": "https://votre-serveur.com/callback", "on": [ "F" ], "headers": [ { "name": "Authorization", value: "Bearer abc123" } ] } ] === 📝 DĂ©tails des champs === * **`url`** : l’adresse du endpoint Ă  appeler (POST) lorsqu’un Ă©vĂ©nement est dĂ©clenchĂ©. * **`on`** : liste des Ă©vĂ©nements pour lesquels ce callback sera exĂ©cutĂ©. * **`headers`** : liste de headers personnalisĂ©s Ă  inclure dans la requĂȘte (ex : authentification, trace, etc.). ---- === 🎯 Liste des statuts possibles dans `on` === * **`F`** – Failed * **`C`** – Canceled * **`E`** – End (OK ou KO) * **`I`** – Intermediate * **`UP`** – Mie User Processing * **`SP`** – Mie Sys Processing ---- === 💬 Commentaire === * Vous pouvez dĂ©finir plusieurs endpoints en les ajoutant Ă  la liste `"callback_endpoints"`. * Chaque callback sera dĂ©clenchĂ© uniquement pour les statuts spĂ©cifiĂ©s dans `"on"`.