Guide d'intégration d'une API eID : modèles, code et sécurité
Guide orienté code pour intégrer les eID nationales via une API eID : flux par redirection, push applicatif, QR, carte NFC et OpenID4VP, ce que vous développez, champs de résultat, replis et liste de contrôle sécurité.

En bref
Une API eID permet à votre parcours d'inscription de demander à un schéma national d'identification électronique (eID) d'authentifier une personne et de renvoyer des attributs d'identité signés. Chaque schéma suit l'un des cinq modèles suivants : une redirection dans le navigateur, une notification push dans une application avec un code de comparaison, un QR code ou le lancement d'une application, une carte à puce lue par communication en champ proche (NFC), ou une présentation depuis le portefeuille européen d'identité numérique (EUDI Wallet) via OpenID for Verifiable Presentations (OpenID4VP).[2][6][8][14]
- Vous vérifiez tout de même la signature et le niveau de garantie.
- La plupart des schémas exigent un contrat, un certificat ou un courtier certifié avant le premier appel.[12][13][15]
Ce guide axé sur le code s'adresse aux ingénieurs qui intègrent des eID nationales dans l'onboarding.
Fonctionnement d'une API eID : cinq modèles d'interaction
Votre système est la partie utilisatrice (RP). Il ne voit jamais l'identifiant lui-même, seulement une réponse signée concernant la personne.
| Modèle | Ce que fait l'utilisateur | Comment votre backend reçoit la réponse | Exemple |
|---|---|---|---|
| Redirection (OpenID Connect, OIDC) | Quitte votre page pour la connexion du schéma, s'authentifie, puis revient | Un code d'autorisation, échangé contre un jeton d'identité (ID token) signé | ID Austria, dont la connexion OIDC ne prend en charge que le flux par code d'autorisation[6] |
| Notification push avec un code | Saisit un code personnel, compare le code affiché à l'écran avec celui de l'application, saisit son code PIN dans l'application | Vous attendez ou interrogez périodiquement pour obtenir un résultat signé | Smart-ID, Mobile-ID[10][20] |
| QR code ou lancement d'application | Scanne un QR code animé sur un ordinateur, ou l'application s'ouvre sur le même téléphone | Vous interrogez périodiquement le schéma jusqu'à la fin de la demande | BankID (Suède)[8] |
| Carte et NFC | Approche la carte à puce du téléphone, saisit le code PIN de la carte | Un serveur eID lit la puce et renvoie les attributs | Carte d'identité électronique allemande[14] |
| Présentation depuis un portefeuille (OpenID4VP) | Approuve dans une application de portefeuille les attributs à partager | Une présentation d'attributs signés, divulgués de manière sélective | Portefeuille EUDI[2] |
Certains schémas passent par une passerelle publique : en Estonie, TARA est une passerelle à code d'autorisation placée devant la carte d'identité, Smart-ID, Mobile-ID et les eID de l'UE.[7] Consultez les schémas eID par pays pour savoir quel modèle utilise chaque schéma.
Ce que vous développez et ce que gère un prestataire
L'accès passe avant le code. Au Danemark, tout fournisseur de services doit passer par un courtier MitID certifié.[12] En Suède, vous achetez BankID auprès d'une banque ou d'un revendeur et vous commandez un certificat de partie utilisatrice.[15] En Allemagne, vous exploitez votre propre serveur eID, vous utilisez un service eID hébergé avec votre propre certificat, ou vous passez par un service d'identification sans détenir vous-même de certificat.[13] Pour le portefeuille EUDI, une partie utilisatrice doit s'enregistrer dans l'État membre où elle est établie.[1]
| Couche | En direct, schéma par schéma | Via une seule API eID |
|---|---|---|
| Contrats et certificats | Un par schéma, renouvelé selon le cycle de chaque schéma | Le prestataire les détient ; vous avez un seul contrat |
| Code protocolaire | OIDC, API d'interrogation, un serveur eID, OpenID4VP | Une seule API de session et un seul format de résultat |
| Écrans | Sélecteur, QR, code de comparaison, erreurs, par schéma | Parcours hébergé ou SDK |
| Vérification de signature | À votre charge, par clé et format de chaque schéma | Assurée par le prestataire, restituée sous forme de verdict |
| Niveau de garantie | À vous de le demander et de le vérifier | Enregistré dans le résultat ; vous fixez toujours la politique |
| Solution de repli pour les personnes sans eID | Un second fournisseur ou un parcours manuel | Un parcours documentaire dans le même flux |
| La décision d'entrée en relation | À vous | Toujours à vous |
Des courtiers certifiés existent pour la plupart des schémas nordiques et baltes. Passez en direct pour un seul schéma à fort volume ; utilisez une seule API lorsque les utilisateurs viennent de plusieurs pays.
Le flux par redirection, étape par étape
Il s'agit du flux du code d'autorisation OIDC. Votre backend redirige le navigateur avec un state et un nonce aléatoires, puis échange le code renvoyé contre un jeton d'identité (ID token) et le vérifie.
L'utilisateur se connecte avec l'eID
Vérifier state, nonce, signature, acr
Une connexion par redirection. Les courtiers et les passerelles ajoutent des sauts à l'étape 2, pas de nouvelles étapes pour vous.
La vérification après l'étape 5 est la plus importante. Selon la documentation ID-porten de Digdir, le client « DOIT valider que le niveau de sécurité (acr) est suffisamment élevé ».[5] Lisez acr comme le niveau de garantie (LoA) affirmé par le schéma, et refusez tout ce qui est inférieur à votre politique.
Le flux par notification push avec un code de comparaison
Avec Smart-ID et Mobile-ID, l'utilisateur ne quitte jamais votre page. Il saisit un code d'identification personnel (Mobile-ID demande aussi le numéro de téléphone), votre page affiche un code court, et le même code apparaît dans l'application. L'utilisateur valide avec le code PIN sur le téléphone uniquement si les codes correspondent.[20] Smart-ID peut aussi afficher trois codes et demander à l'utilisateur de choisir le bon.[10]
Choisissez votre mode de vérification
Connectez-vous avec l'identité électronique que vous utilisez déjà.
Smart-ID
Utiliser plutôt une pièce d'identité
1L'utilisateur choisit un eID parmi ceux que vous acceptez.
Vérifiez le code
4821
Le même code apparaît dans votre application Smart-ID.
2Votre page de vérification, sur l'appareil utilisé, affiche un code de comparaison. Le même code apparaît dans l'application.
Saisissez votre code PIN
Uniquement si le code correspond à celui affiché à l'écran.
3L'utilisateur saisit le code PIN dans l'application, jamais sur votre page.
Vous êtes vérifié
- Nom completPartagé
- Date de naissancePartagé
- Code personnelPartagé
- AdresseNon partagé
4Les attributs signés arrivent sur votre backend.
BankID Suède suit le même schéma, avec un QR code à la place d'un code saisi. L'utilisateur ouvre l'application sur le même appareil avec un jeton de démarrage automatique, ou scanne un QR code animé affiché sur l'autre appareil. Votre backend interroge /collect jusqu'à la fin de la commande. La commande terminée contient le numéro personnel, le nom, le prénom et le nom de famille, ainsi que des champs relatifs à l'appareil, à la signature et, en option, au risque.[8] Smart-ID+ fait passer Smart-ID à ce modèle (QR code dynamique sur ordinateur, d'application à application sur mobile). Les utilisateurs n'ont donc plus à saisir de code personnel sur un site web.[11]
L'application affiche le même code. L'utilisateur saisit son code PIN
Une connexion Smart-ID ou Mobile-ID, dans l'ordre où l'utilisateur la voit : code personnel, code de comparaison sur votre page, le même code dans l'application, puis le code PIN.[20] Dans la variante BankID avec QR code, l'étape 1 disparaît et l'étape 2 affiche un QR code.
Carte et NFC, et le portefeuille EUDI via OpenID4VP
Avec la carte d'identité électronique allemande, l'utilisateur pose sa carte contre un téléphone NFC dans l'AusweisApp. Avant la saisie du code PIN, la loi impose à l'application d'afficher le nom et l'adresse du fournisseur ainsi que les catégories de données demandées. Seules ces catégories sont transmises.[14]
Selon l'OpenID Foundation, OpenID4VP 1.0 est une spécification finale.[16] L'Architecture and Reference Framework (ARF) prévoit la présentation à distance via OpenID4VP par redirections et schémas d'URI personnalisés tels que openid4vp://, via OpenID4VP sur la W3C Digital Credentials API, ou via ISO/IEC 18013-7 sur cette API.[2][17] Avant tout partage, le portefeuille authentifie votre certificat d'accès, vérifie que vous ne demandez pas plus d'attributs que ceux que vous avez enregistrés, et permet à l'utilisateur d'approuver chacun d'eux.[2] La photo ne devient obligatoire dans les données d'identification personnelle (PID) qu'à partir du 11 août 2028, sauf si l'utilisateur la refuse expressément.[18]
- 23 juillet 2026ARF v3.0.0Version actuelle du cadre du portefeuille.
- 24 décembre 2026Échéance des portefeuillesChaque État membre propose au moins un portefeuille.
- 24 décembre 2027AcceptationLes parties utilisatrices privées tenues, par la loi ou par contrat, d'utiliser une authentification forte de l'utilisateur l'acceptent à la demande de l'utilisateur. Les microentreprises et les petites entreprises en sont exemptées.
- 11 août 2028PhotoLa photo du PID devient obligatoire, sauf refus de l'utilisateur.
Les dates du portefeuille EUDI qui structurent une feuille de route d'API eID.[1][2][18]
Le guide du portefeuille EUDI traite de l'enregistrement des parties utilisatrices et de l'état de préparation par pays.
Erreurs, solutions de repli et nouvelles tentatives
Une connexion se termine par un succès, une annulation, un délai dépassé ou un échec. Traitez les trois derniers cas de la même manière, et décidez pays par pays de la suite.
1Proposer les eID du pays de l'utilisateur
Liste d'acceptation par pays, l'utilisateur choisit.
La connexion a abouti avec une signature valide et le niveau requis
Conserver les attributs signés
Nom, date de naissance, identifiant, niveau.
Basculer vers une autre méthode ou refuser
Document avec lecture de la puce, ou fin de la session.
2Filtrer et décider
Appliquez vos propres règles de risque aux données vérifiées.
Ne relancez jamais automatiquement une connexion annulée. Rendez le callback idempotent, pour qu'un rafraîchissement ou un événement en double ne puisse pas ouvrir deux comptes. Prévoyez un parcours pour les personnes sans eID, en général un document d'identité avec lecture de la puce NFC, détection du vivant et comparaison faciale. Vérification eID par NFC et sécurité de la puce présente ce parcours.
Liste de contrôle sécurité pour une intégration d'API eID
- Générez un
stateet unnoncenouveaux à chaque connexion et rejetez tout callback qui ne leur correspond pas. - Vérifiez la signature de chaque jeton ou résultat avant de lire le moindre attribut.
- Contrôlez le niveau de garantie dans le résultat, pas seulement dans la requête.[5]
- Exigez le niveau substantiel ou élevé lorsque la voie eID de l'AMLR s'applique à vous.[3]
- Ne collectez jamais le code PIN de l'eID sur votre page. Il doit être saisi dans l'application du schéma.[20]
- Préférez un lancement par QR code ou d'application à application plutôt que des codes saisis pour les connexions multi-appareils.[11]
- Ne demandez que les attributs que vous avez enregistrés et dont vous avez besoin.[1]
- Vérifiez les signatures et les horodatages des webhooks avant de vous fier à un résultat.
Le fondement juridique est le règlement anti-blanchiment (AMLR), applicable à compter du 10 juillet 2027 : l'article 22(6)(b) admet « des moyens d'identification électronique qui satisfont aux exigences du règlement (UE) n° 910/2014 en ce qui concerne les niveaux de garantie "substantiel" ou "élevé" ».[3] Tous les schémas ne sont pas notifiés : MitID figure sur la liste européenne des schémas notifiés, Smart-ID n'y figure pas.[4]
Attention
L'ARF avertit que les flux multi-appareils à URI personnalisée « sont vulnérables aux attaques par hameçonnage et par relais » et ne recommande pas les schémas d'URI personnalisés pour la présentation multi-appareils.[2] Selon Computer Sweden, la police a signalé en juillet 2019 une baisse de 90% des escroqueries téléphoniques liées à BankID après l'introduction des QR codes.[9]
Comment Didit facilite l'intégration d'API eID
Didit réunit cinq eID en production derrière une seule API de session (MitID, BankID Suède, Finnish Trust Network, Smart-ID et Mobile-ID, dans sept pays), avec un parcours documentaire dans le même workflow. D'autres schémas figurent sur la feuille de route de Didit, et l'acceptation du portefeuille EUDI arrive bientôt. Didit ne demande jamais le code PIN. Plus d'informations sur la page portefeuilles d'identité numérique et dans la documentation des portefeuilles.[19]
Activer les eID en production par pays
Dans la console : Workflows, l'étape ID Verification, Countries, « Wallets accepted ». Par l'API, la fonctionnalité ID Verification (OCR) accepte un objet methods indexé par code pays ISO 3166-1 alpha-3, envoyé avec POST /v3/workflows/. Le fragment documenté pour le Danemark :[21]
{ "feature": "OCR", "config": { "methods": { "DNK": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["mitid"], "on_failure": "fallback_to_document" } } } } }
Et pour l'Estonie, en acceptant les deux eID sur téléphone :[20]
{ "EST": { "document": { "enabled": true }, "wallet": { "enabled": true, "providers": ["smart_id", "mobile_id"], "on_failure": "fallback_to_document" } } }
providers est une liste d'acceptation, pas un classement. on_failure vaut fallback_to_document ou decline. Un portefeuille qui n'est pas disponible dans votre environnement fait échouer tout l'enregistrement : consultez d'abord le catalogue.[21]
Capture d'écran à venir : console-wallets-accepted
Choix des eID acceptés pour un pays dans la console Didit.
Créer une session et lire le résultat
POST /v3/session/ avec votre workflow_id (et, en option, vendor_data et un callback) renvoie session_id, url et session_token. Ouvrez l'URL ou utilisez le SDK.[24] Le résultat arrive par webhook ou via GET /v3/session/{id}/decision/, avec verification_method: "wallet", assurance: "cryptographic" et un objet wallet_verification.[19]
| Champ | Exemple | Ce qu'il vous indique |
|---|---|---|
provider | mitid | L'eID choisi par l'utilisateur |
issuing_authority | Danish Agency for Digital Government | L'entité qui garantit l'identité |
issuing_country | DNK | Le canal d'identité, pas la nationalité |
level_of_assurance | substantial | Le niveau déclaré par le schéma |
signature_valid | true | L'assertion signée a été vérifiée avec succès |
attributes | full_name, date_of_birth, cpr_alias | Attributs validés, noms variables selon l'eID |
portrait, face_match_score | null | Aucun eID en production ne transmet de portrait |
Un niveau inférieur à celui demandé fait échouer la connexion. Seules les connexions abouties sont facturées.[19] Tarifs : MitID, Finnish Trust Network $0.25 ; BankID Sweden, Smart-ID, Mobile-ID $0.20.
Webhooks et sandbox
Vérifiez X-Signature-V2 avec le secret de votre destination, rejetez un X-Timestamp de plus de 300 secondes et basez l'idempotence sur event_id ; une livraison échouée est relancée jusqu'à deux fois.[22] Une application sandbox peut activer tous les portefeuilles, approuve sans connexion réelle et propose wallet_cancelled, wallet_timeout et wallet_provider_error pour tester votre solution de repli.[23]
| eID | Pays | Niveau Didit | Statut Didit |
|---|---|---|---|
| MitID | Danemark | Substantiel | En production |
| BankID Sweden | Suède | Substantiel | En production |
| Finnish Trust Network | Finlande | Substantiel | En production |
| Smart-ID | Estonie, Lettonie, Lituanie, Belgique | Élevé | En production |
| Mobile-ID | Estonie, Lituanie | Élevé | En production |
| BankID Norway | Norvège | Non défini | Bientôt disponible |
| Freja eID | Suède | Non défini | Bientôt disponible |
| itsme | Belgique | Non défini | Bientôt disponible |
| iDIN | Pays-Bas | Non défini | Bientôt disponible |
| Carte d'identité électronique allemande | Allemagne | Non défini | Bientôt disponible |
| FranceConnect | France | Non défini | Bientôt disponible |
| ID Austria | Autriche | Non défini | Sur demande |
| Cl@ve | Espagne | Non défini | Sur demande |
| SPID | Italie | Non défini | Sur demande |
| Swiss E-ID | Suisse | Non défini | Sur demande |
| Portefeuille européen d'identité numérique (EUDI Wallet) | UE et EEE | Non défini | Bientôt disponible |
Ce que fournit Didit
- L'accès aux schémas, les certificats et la vérification de la signature
- Une seule API de session, un parcours hébergé et des SDK
- Le parcours documentaire avec lecture de la puce NFC pour les utilisateurs sans eID
Ce qui reste de votre ressort
- Les eID à accepter dans chaque pays
- Le niveau de garantie exigé par votre politique
- La décision d'entrée en relation et la responsabilité
Une seule API eID pour tous les pays que vous servez
Activez les eID en service pays par pays, gardez les documents en solution de repli et ne payez que les connexions abouties.
Points clés
- Chaque eID suit l'un de cinq modèles : redirection, notification push dans l'application avec un code, QR code ou lancement d'application, carte et NFC, ou OpenID4VP.
- L'accès vient en premier : courtiers, contrats, certificats ou enregistrement.
- Vérifiez la signature et le niveau de garantie de chaque résultat.
- Les parties utilisatrices privées tenues, par la loi ou par contrat, de recourir à une authentification forte des utilisateurs doivent accepter le portefeuille EUDI à la demande de l'utilisateur au plus tard le 24 décembre 2027 (les micro et petites entreprises en sont exemptées).
Questions fréquentes
Qu'est-ce qu'une API eID ?
C'est une interface qui permet à votre application de demander à un schéma national d'identification électronique, ou à un prestataire connecté à plusieurs schémas, d'authentifier une personne et de renvoyer des attributs d'identité signés. Vous devez toujours vérifier la signature et le niveau de garantie de sa réponse.
Faut-il une intégration distincte pour chaque schéma eID ?
En accès direct, oui : chaque schéma a son propre contrat, son propre certificat et son propre protocole. Au Danemark, vous devez passer par un courtier MitID certifié, et BankID Sweden s'achète auprès d'une banque ou d'un revendeur.[12][15] Une API eID unique masque ces différences derrière une seule session et un seul format de résultat.
Quel protocole utilisent les eID nationales ?
Beaucoup utilisent OpenID Connect, souvent via une passerelle comme ID-porten ou TARA.[5][7] D'autres utilisent leurs propres API d'interrogation (BankID en Suède, Smart-ID) ou un serveur eID qui lit une carte à puce (Allemagne).[8][13] Le portefeuille EUDI utilise OpenID4VP ou ISO/IEC 18013-7.[2]
Quelles données une connexion par eID renvoie-t-elle ?
Cela dépend du schéma. BankID en Suède renvoie le numéro personnel, le nom, le prénom et le nom de famille.[8] La carte d'identité électronique allemande n'envoie que les catégories de données mentionnées dans le certificat du fournisseur (§ 18(5)), et non le numéro d'identification national de la carte, que la liste du § 18(3) n'inclut pas.[14]
Comment faire respecter le niveau de garantie ?
Demandez le niveau dont vous avez besoin et vérifiez le niveau déclaré dans le résultat, par exemple la revendication acr en OIDC. ID-porten indique que les clients doivent vérifier que le niveau de sécurité est suffisamment élevé.[5] Considérez tout niveau inférieur à votre politique comme insuffisant et n'ouvrez pas le compte.
Que faire lorsqu'un utilisateur n'a pas d'eID ou annule ?
Choisissez, pays par pays, entre une solution de repli et un refus. Ne relancez pas automatiquement une connexion annulée.
Comment tester une intégration eID sans utilisateurs réels ?
Simulez des approbations, des annulations et des expirations de délai dans le sandbox du fournisseur. Une approbation simulée ne prouve pas qu'une identité réelle peut se connecter : effectuez un test autorisé sur un appareil réel avant le déploiement.[20]
Quand les entreprises doivent-elles accepter le portefeuille EUDI ?
Les parties utilisatrices privées tenues, par la loi ou par contrat, d'utiliser une authentification forte de l'utilisateur doivent l'accepter à la demande de l'utilisateur au plus tard le 24 décembre 2027. Les micro et petites entreprises en sont exemptées.[1]
Sources
- Règlement (UE) 2024/1183 (eIDAS 2), EUR-Lex, Journal officiel du 30 avril 2024, articles 5a, 5b et 5f.
- Architecture and Reference Framework v3.0.0, projet de portefeuille EUDI de la Commission européenne, publié le 23 juillet 2026, sections 4.4.3, 5.7.1 et 6.6.3.
- Règlement (UE) 2024/1624 (AMLR), EUR-Lex, article 22(6).
- Aperçu des schémas eID prénotifiés et notifiés au titre d'eIDAS, Commission européenne, consulté le 5 octobre 2026.
- Jeton d'identité ID-porten, Agence norvégienne du numérique (Digdir).
- Anbindung mit OpenID Connect, documentation développeur d'ID Austria.
- Spécification technique TARA, Autorité estonienne des systèmes d'information (RIA).
- Auth and sign: collect, documentation développeur BankID.
- QR-koden gjorde susen: BankID-bedrägerierna ned med 90 procent, Computer Sweden, 3 juillet 2019 (source secondaire).
- Pourquoi je vois parfois un code de confirmation et parfois trois, Smart-ID.
- Comment le nouveau Smart-ID me protège contre la fraude, Smart-ID.
- Courtiers MitID, Agence danoise pour l'administration numérique.
- Devenir fournisseur de services, AusweisApp, gouvernement fédéral allemand.
- Article 18 de la loi sur les passeports et les cartes d'identité (PAuswG), Gesetze im Internet.
- Connecter votre entreprise à BankID, BankID.
- Approbation de la spécification finale OpenID for Verifiable Presentations 1.0, OpenID Foundation.
- Digital Credentials, W3C.
- Règlement d'exécution (UE) 2026/1731 de la Commission, EUR-Lex, portrait dans les PID à compter du 11 août 2028.
- Portefeuilles d'identité numérique, documentation Didit.
- Intégration de Smart-ID et Mobile-ID, documentation Didit.
- Configuration des fonctionnalités des workflows, documentation Didit.
- Webhooks, documentation Didit.
- Sandbox et données de test, documentation Didit.
- Démarrage rapide, documentation Didit.
Consultez chaque eID nationale, son niveau et son statut sur la page Vérification eID.
Déployez la connexion par eID sans contrat par schéma
Commencez avec les eID déjà en service, ajoutez des schémas à mesure que vos utilisateurs en ont besoin, et gardez les documents pour tous les autres.
Articles associés
- e-Devlet pour les entreprises : vérification d'identité en Turquie
- Intégration Singpass Myinfo : guide pour les entreprises à Singapour
- Intégration de Cl@ve en Espagne : qui peut s'y connecter et quelles alternatives
- Vérification PhilSys : comment les entreprises contrôlent la National ID
- Guide du vérificateur OpenID4VP : accepter le portefeuille EUDI
- Règlement eIDAS expliqué : ce que change eIDAS 2 (2024/1183)