Passer au contenu principal
Le SDK JavaScript de Didit vous permet d’intégrer la vérification à votre application web de manière programmatique, avec un contrôle total sur l’expérience utilisateur.

Fonctionnalités

  • API simple : motif singleton avec des méthodes faciles à utiliser
  • Intégration flexible : utilisez directement l’URL UniLink ou créez des sessions via votre backend
  • Adaptatif : fonctionne sur les navigateurs de bureau et mobiles
  • Personnalisable : options de configuration pour le style et le comportement
  • Formats multiples : versions compilées ESM, CommonJS et UMD
  • Prise en charge de TypeScript : définitions de types complètes incluses
  • Modes modal et intégré : choisissez entre une superposition modale et une intégration en ligne
  • Callbacks d’événements : événements en temps réel sur la progression de la vérification (démarrée, étape terminée, terminée)
  • Gestion d’état : observez l’état du SDK pour créer une interface personnalisée

Installation

NPM/Yarn

CDN (UMD)

La dernière version publiée sur npm est 0.5.1. 0.5.0 a ajouté DiditSdk.shared.submitEvent() (voir Envoyer des événements), et 0.5.1 permet au flux hébergé de demander à un portefeuille d’identité numérique la pièce d’identité de l’utilisateur à l’intérieur du SDK. Un lancement échoué reste dans l’état error, avec son errorMessage. 0.4.0 a ajouté les options de caméra que proposent déjà les SDK natifs, dont defaultLivenessCamera, qui ouvre la capture du visage sur la caméra arrière (voir Options de caméra).

Vérifier la version installée

Votre gestionnaire de paquets reste la référence pour la version installée :
Vous pouvez aussi inspecter l’export à l’exécution :
À partir de 0.3.1, cet export est généré à partir de la version du package dans chaque format JavaScript (ESM, CommonJS, UMD, UMD minifié) ainsi que dans la déclaration TypeScript. Il correspond donc toujours à la version installée. Les versions 0.3.0 et antérieures renvoient 0.2.1 depuis cet export, quelle que soit la version installée. Sur ces versions, utilisez npm list ou votre fichier de verrouillage à la place.

JavaScript natif

Modules ES / TypeScript

Balise script (UMD)


Exemples par framework

Exemples web du SDK

React, Angular, Svelte, Next.js, Nuxt, Vue, et bien d’autres, avec des exemples et de la documentation pour chaque framework.

Méthodes d’intégration

Il existe deux façons d’intégrer le SDK : Utilisez directement l’URL UniLink de votre workflow depuis la Console Didit. Aucun backend n’est requis.
Récupérez votre URL UniLink depuis la Console Didit → Votre workflow → Copier le lien. Le session_id généré vous sera transmis par un événement. Consultez la référence des événements ici

Méthode 2 : session côté backend (recommandée en production)

Votre backend crée une session via l’API Didit et renvoie l’URL de vérification hébergée. Cela vous permet de contrôler vendor_data, le callback par session et metadata, et de créer des sessions avant que l’utilisateur n’atteigne le frontend. Pour en savoir plus, consultez la référence de l’API Create Session. Backend (Node.js / Express)
Frontend
Le champ de réponse de création de session se nomme url (voir le schéma OpenAPI de Create Session). Transmettez-le directement à startVerification({ url }).

Configuration

Consultez ci-dessous les définitions complètes des types TypeScript de l’interface DiditSdkConfiguration.

Options de caméra

Les options de caméra nécessitent @didit-protocol/sdk-web 0.4.0 ou une version ultérieure.
Le SDK web expose les mêmes quatre options de caméra que les SDK natifs. Par défaut, la capture du document ouvre la caméra arrière et la capture du visage (détection du vivant) ouvre la caméra frontale (selfie). Les deux étapes proposent un bouton de changement de caméra pendant la capture sur les appareils disposant de plusieurs caméras. Définissez defaultLivenessCamera: 'back' pour ouvrir la capture du visage avec la caméra arrière, par exemple sur une borne ou lorsqu’un opérateur tient l’appareil et le pointe vers la personne à vérifier.
  • Les valeurs d’objectif acceptées sont 'front' et 'back'. Toute autre valeur est ignorée, de même qu’un indicateur de bouton de changement qui n’est pas un booléen.
  • Un appareil qui ne dispose pas de la caméra demandée utilise celle dont il dispose : un ordinateur portable qui demande 'back' utilise toujours sa webcam. Le bouton de changement est masqué sur les appareils à caméra unique, quelles que soient les options.
  • Les options de détection du vivant s’appliquent à la vérification passive du vivant. La détection du vivant active n’est pas concernée.
  • Le SDK transmet les options à la page de vérification sous forme de paramètres de requête de l’URL de vérification : document_camera, liveness_camera, document_camera_switch et liveness_camera_switch. Si vous ouvrez directement l’URL de vérification au lieu de passer par le SDK, définissez-les vous-même : ajoutez ?liveness_camera=back à une URL sans chaîne de requête, ou &liveness_camera=back à une URL qui contient déjà des paramètres. Vous pouvez aussi utiliser l’API URL, qui gère les deux cas :

Envoi d’événements

DiditSdk.shared.submitEvent() met en file d’attente les événements de l’utilisateur final (inscription, connexion, échec de connexion, déconnexion, réinitialisation du mot de passe, MFA, changement d’appareil) pour la surveillance des événements de Didit. Votre backend génère un token de surveillance pour la personne, et le SDK envoie les événements par lots avec l’empreinte de l’appareil. Ne transmettez jamais de clé API au navigateur.
Consultez Envoi d’événements du SDK pour le token, les champs d’événement et le comportement de livraison.

Dimensionnement de la modale et défilement

Le comportement de dimensionnement décrit ci-dessous nécessite la version 0.3.1 ou une version ultérieure. Les versions 0.3.0 et antérieures peuvent tronquer le parcours de vérification sur les fenêtres d’affichage de bureau et en mode paysage lorsque leur hauteur est réduite.
Le mode modal utilise une largeur maximale de 500px et une hauteur maximale de 700px. Sur les fenêtres d’affichage de bureau et en mode paysage lorsque leur hauteur est réduite, l’iframe occupe 90 % de la fenêtre d’affichage visible. Le parcours de vérification défile à l’intérieur de l’iframe, de sorte que chaque étape reste accessible tandis que la page située derrière la modale reste verrouillée. Le SDK utilise dvh sur les navigateurs qui prennent en charge les unités de fenêtre d’affichage dynamiques, et revient à vh sur les anciens navigateurs pris en charge. Pour des largeurs de 540px et moins, la modale occupe toute la fenêtre d’affichage visible. Le bouton de fermeture et la confirmation de sortie restent à l’intérieur de la modale.

Parcours de vérification repensé

Tout le contenu de cette section s’applique à partir de la version 0.5.0, qui n’est pas encore publiée. Tant que vous n’effectuez pas la mise à niveau, la modale conserve la taille décrite ci-dessus.
À partir de la version 0.5.0, la modale se dimensionne en fonction du parcours de vérification repensé, une fois que la page signale sa mise en page avec un message didit:layout :
  • Taille initiale, à partir de la version 0.5.0 : tant que la page ne signale pas sa mise en page, et pour les pages qui ne le font jamais, la modale conserve la taille maximale existante de 500px sur 700px. Elle reste adaptée aux fenêtres basses et passe en plein écran à 540px et moins.
  • Bouton de fermeture, à partir de la version 0.5.0 : un cercle de 44px par-dessus la barre supérieure de la page. Il suit le thème clair ou sombre de la page et se place à gauche dans les langues écrites de droite à gauche.
  • Mode intégré, à partir de la version 0.5.0 : il continue de remplir son élément hôte, comme auparavant (voir Mode intégré).
  • URL de vérification, à partir de la version 0.5.0 : le SDK ajoute sdk_presentation (modal ou embedded) et, dans une modale, sdk_close_button (true ou false, selon showCloseButton), afin que la page sache comment elle est affichée.
  • Événements, à partir de la version 0.5.0 : le SDK gère lui-même didit:layout et ne le transmet pas à onEvent.
Il n’y a rien à configurer, et toutes les options existantes continuent de fonctionner.

Mode intégré

Le mode intégré n’utilise pas la limite de 500px sur 700px de la modale. Le SDK remplit la zone de contenu de l’élément hôte ; donnez donc à cet élément une hauteur explicite ou résolue d’une autre manière :
Si l’hôte n’a pas de hauteur résolue, l’iframe intégrée n’a pas non plus de hauteur utilisable. Redimensionnez l’hôte lorsque votre mise en page change ; le SDK continue de le remplir automatiquement.

Résultats de vérification

Le SDK renvoie trois types de résultats :

Terminé

Le flux de vérification est terminé (approuvé, en attente ou refusé).
Le type TypeScript déclare 'Approved' | 'Pending' | 'Declined', mais la valeur est transmise telle quelle depuis le statut de session du flux hébergé : vous pouvez aussi recevoir d’autres statuts, comme In Review. Pending est la valeur de repli du SDK lorsque le flux n’a signalé aucun statut. Considérez status comme une indication et fiez-vous au webhook pour la décision de référence.

Annulé

L’utilisateur a fermé la modale de vérification. session est incluse lorsqu’un sessionId était déjà connu (elle peut valoir undefined si l’utilisateur a annulé avant que l’iframe n’en signale un).

Échec

Une erreur s’est produite pendant la vérification.

Gestion de l’état

Vous pouvez observer l’état du SDK pour une interface personnalisée :

Référence de l’API

DiditSdk.shared

L’instance unique du SDK.

Méthodes

Propriétés

Fonctions de rappel


Événements granulaires

Suivez la progression de la vérification avec la fonction de rappel onEvent :

Référence des événements

Connexion perdue

Si la connexion de l’utilisateur est interrompue, la page de vérification affiche un écran « Pas de connexion Internet » à la place de l’étape en cours, au lieu de laisser une étape en chargement. Elle continue de vérifier la connexion en arrière-plan et ferme l’écran automatiquement dès que Didit redevient accessible. L’utilisateur reprend alors à l’étape où il se trouvait. Dans la modale du SDK ou dans une iframe, l’écran propose aussi Quitter la vérification. La page envoie alors didit:error avec error: "network_error", suivi de didit:cancelled, et le SDK ferme la modale et appelle onComplete avec type: "cancelled". À partir de la version 0.5.0, le message didit:layout de la page dimensionne la modale et n’atteint pas onEvent. Si vous intégrez la page avec votre propre iframe, consultez Dimensionner l’iframe à partir de didit:layout.

Valeurs de l’étape

Le champ step peut prendre l’une des valeurs suivantes :
  • document_selection - Sélection du type de document
  • document_front - Recto du document
  • document_back - Verso du document
  • face - Vérification faciale et détection du vivant
  • email - Vérification de l’e-mail
  • phone - Vérification du téléphone
  • poa - Justificatif de domicile
  • questionnaire - Étape du questionnaire

Valeurs du canal

Le champ channel de code_sent peut prendre les valeurs suivantes :
  • email - Code envoyé par e-mail
  • sms - Code envoyé par SMS
  • whatsapp - Code envoyé par WhatsApp

Taille du code

Le champ codeSize de code_sent indique la longueur du code OTP (par exemple 4 ou 6 chiffres).

Types TypeScript

Dernière modification le 7 novembre 2026