vin ou bank_account_number. Les pages de service qui les envoient n’affichent donc que le cURL.
Installation
Configuration
Tous les SDK lisent les mêmes variables d’environnement : un client créé sans option est donc prêt à l’emploi. Les environnements edge n’ont pas d’environnement de processus : dans ce cas, transmettez la clé API au client Node.js sous forme d’option.
Tout ce que vous pouvez définir via les variables d’environnement peut aussi être transmis au client, ainsi que l’URL de base, le délai d’expiration, les nouvelles tentatives, les en-têtes par défaut et votre propre client HTTP. Créez un seul client par processus et partagez-le : il gère un pool de connexions et peut être utilisé depuis plusieurs threads ou tâches en même temps.
Les méthodes
account (inscription programmatique : inscription, connexion, organisations et applications) appellent https://apx.didit.me/auth/v2 et n’envoient jamais votre clé API. Connectez-vous avec account.login, puis transmettez le token d’accès renvoyé au client comme token de compte.
Ce que fait chaque SDK
- Ressources et méthodes. Les appels suivent les ressources de l’API :
client.<resource>.<method>(...), par exemplesessions.create,sessions.retrieve_decisionoutransactions.create, dans la casse propre à chaque langage. Les identifiants de chemin sont des arguments positionnels ; le corps et les paramètres de requête constituent un seul ensemble de champs nommés. Python, Node.js, PHP et Ruby utilisent les noms de champs de l’API (workflow_id) ; Go, Java et .NET utilisent la casse de leur langage (WorkflowID,workflowId,WorkflowId). - Listes. Les méthodes de liste parcourent pour vous l’ensemble des résultats (
limitetoffseten interne), et exposent aussi chaque page aveccount,next,previousetresults. En Ruby,auto_paging_eachparcourt toutes les pages, et lestotal_count,next_urletprevious_urld’une page correspondent auxcount,nextetpreviousde l’API. - Fichiers. Les envois (images de documents, selfies, justificatifs de domicile, imports) acceptent un chemin, des octets ou un flux. Les téléchargements (PDF de sessions, rapports) renvoient des octets ou un flux, jamais du JSON analysé.
- Compatibilité avec les évolutions futures. Un champ de réponse ou une valeur d’énumération que la version du SDK ne connaît pas encore est conservé et lisible ; ce n’est jamais une erreur. Ainsi, un ajout à l’API ne casse pas une intégration déployée.
- Webhooks.
webhooks.verifycontrôle les en-têtesX-Signature-V2etX-Signatureainsi que l’horodatage d’une livraison avec votre secret partagé de webhook, puis renvoie un événement typé. Il accepte une liste de secrets pendant que vous en faites la rotation. Consultez Webhooks pour le schéma de signature. - Authentication. Un utilitaire
Authenticationvérifie les tokens d’accès et d’identité signés par l’émetteur de votre service Authentication, et appelle ses endpoints de token, de session et d’authentification renforcée. Il n’utilise jamais votre clé API.
Erreurs, nouvelles tentatives et délais d’attente
Toutes les erreurs dérivent de
DiditError. En Go, chaque erreur implémente l’interface didit.Error et est un type pointeur, comme *didit.NotFoundError. Java, PHP et .NET les nomment avec leur suffixe habituel Exception et écrivent API sous la forme Api : DiditException, ApiStatusException, NotFoundException.
Les SDK relancent une requête échouée jusqu’à 2 fois, avec un backoff exponentiel à partir de 0,5 seconde (gigue complète, 8 secondes au maximum) et en respectant Retry-After. GET, HEAD, PUT et DELETE sont relancés en cas d’erreur de connexion, de délai dépassé, ainsi que pour les codes 408, 429 et 5xx. POST et PATCH ne sont relancés que pour un 429, ou lorsque la connexion a échoué avant l’envoi de la requête, afin qu’une nouvelle tentative ne crée jamais une seconde session ou transaction. Le délai d’attente par défaut est de 60 secondes. Chaque réponse expose aussi le statut HTTP brut, les en-têtes et l’identifiant de requête. Voir Limite de débit pour les limites associées au 429.
Versionnement et support
- Les SDK suivent le versionnement sémantique, avec une règle pour les modifications de l’API. Une modification qui reflète l’API Didit donne lieu à une version mineure, même si elle peut casser du code typé (un champ dont le type a changé, un champ pouvant désormais valoir null, ou un endpoint, un champ ou une valeur d’énumération supprimé). L’API se comporte déjà ainsi pour tous ses appelants, donc une version plus ancienne du SDK n’est pas plus sûre. Les notes de version répertorient ces modifications sous « Modifications de l’API pouvant casser le code typé ».
- Une version majeure ne concerne qu’une modification de la conception propre au SDK : une méthode ou une ressource renommée ou supprimée alors que l’API la conserve, une modification de la configuration du client, des erreurs, des nouvelles tentatives, de la pagination ou du comportement de vérification des webhooks, ou l’abandon d’une version de l’environnement d’exécution. Lorsqu’un endpoint quitte l’API ou qu’une méthode est renommée, l’ancienne méthode reste disponible pendant au moins une version mineure supplémentaire, marquée comme obsolète, afin que votre code continue de compiler pendant votre migration vers la nouvelle. Chaque langue conserve son propre numéro de version : Node.js, PHP et Ruby sont en 2.x et les autres en 1.x, car ces trois SDK ont publié une modification de l’API sous forme de version majeure avant l’application de cette règle.
- Ils sont générés à partir du contrat d’API publié (
openapi-25.jsonetopenapi-auth.json), et leurs méthodes Didit Authentication sont vérifiées par rapport àopenapi-authentication.json. Les trois fichiers sont contrôlés chaque jour, de sorte qu’un nouvel endpoint ou un nouveau champ arrive dans une version régulière des sept SDK. - Chaque SDK prend en charge la version minimale de l’environnement d’exécution indiquée dans le tableau, ainsi que toutes les versions plus récentes. Ses tests s’exécutent sur cette version minimale et sur chaque version plus récente, ou sur chaque version à support long terme pour Node.js et Java.
- Le fichier
CHANGELOG.mdde chaque dépôt répertorie les modifications de chaque version. - Signalez un problème de sécurité en privé, via les avis de sécurité du dépôt du SDK ou à support@didit.me.