Passer au contenu principal
Didit lève 7,5 M$ pour bâtir l'infrastructure pour l'identité et la fraude
Didit
Retour au blog
Blog · 6 octobre 2026

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é.

Par DiditMis à jour le
eid-api-integration-guide-cover.png

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]

Dernière révision : 5 octobre 2026 · Ceci n'est pas un avis juridique

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èleCe que fait l'utilisateurComment votre backend reçoit la réponseExemple
Redirection (OpenID Connect, OIDC)Quitte votre page pour la connexion du schéma, s'authentifie, puis revientUn 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 codeSaisit un code personnel, compare le code affiché à l'écran avec celui de l'application, saisit son code PIN dans l'applicationVous attendez ou interrogez périodiquement pour obtenir un résultat signéSmart-ID, Mobile-ID[10][20]
QR code ou lancement d'applicationScanne un QR code animé sur un ordinateur, ou l'application s'ouvre sur le même téléphoneVous interrogez périodiquement le schéma jusqu'à la fin de la demandeBankID (Suède)[8]
Carte et NFCApproche la carte à puce du téléphone, saisit le code PIN de la carteUn serveur eID lit la puce et renvoie les attributsCarte d'identité électronique allemande[14]
Présentation depuis un portefeuille (OpenID4VP)Approuve dans une application de portefeuille les attributs à partagerUne présentation d'attributs signés, divulgués de manière sélectivePortefeuille 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]

CoucheEn direct, schéma par schémaVia une seule API eID
Contrats et certificatsUn par schéma, renouvelé selon le cycle de chaque schémaLe prestataire les détient ; vous avez un seul contrat
Code protocolaireOIDC, API d'interrogation, un serveur eID, OpenID4VPUne seule API de session et un seul format de résultat
ÉcransSélecteur, QR, code de comparaison, erreurs, par schémaParcours hébergé ou SDK
Vérification de signatureÀ votre charge, par clé et format de chaque schémaAssurée par le prestataire, restituée sous forme de verdict
Niveau de garantieÀ vous de le demander et de le vérifierEnregistré dans le résultat ; vous fixez toujours la politique
Solution de repli pour les personnes sans eIDUn second fournisseur ou un parcours manuelUn parcours documentaire dans le même flux
La décision d'entrée en relationÀ vousToujours à 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.

Utilisateur Votre backend Fournisseur eID
1Lance l'inscription
2Redirection avec state, nonce

L'utilisateur se connecte avec l'eID

3Code envoyé à votre callback
4Échange du code contre les jetons
5Jeton d'identité signé

Vérifier state, nonce, signature, acr

6Compte ouvert

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]

Vérifiez votre identité

Choisissez votre mode de vérification

Connectez-vous avec l'identité électronique que vous utilisez déjà.

Smart-ID

1L'utilisateur choisit un eID parmi ceux que vous acceptez.

Vérifiez votre identité

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.

Smart-ID

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.

Vérifiez votre identité

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]

Utilisateur Votre backend API du schéma Application du schéma
1Saisit son code personnel
2Affiche le code de comparaison
3Lance la demande d'authentification
4Notification push vers le téléphone

L'application affiche le même code. L'utilisateur saisit son code PIN

5Interroge pour obtenir le résultat
6Résultat signé

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]

  1. 23 juillet 2026ARF v3.0.0Version actuelle du cadre du portefeuille.
  2. 24 décembre 2026Échéance des portefeuillesChaque État membre propose au moins un portefeuille.
  3. 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.
  4. 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

Oui

Conserver les attributs signés

Nom, date de naissance, identifiant, niveau.

Non

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 state et un nonce nouveaux à 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]

ChampExempleCe qu'il vous indique
providermitidL'eID choisi par l'utilisateur
issuing_authorityDanish Agency for Digital GovernmentL'entité qui garantit l'identité
issuing_countryDNKLe canal d'identité, pas la nationalité
level_of_assurancesubstantialLe niveau déclaré par le schéma
signature_validtrueL'assertion signée a été vérifiée avec succès
attributesfull_name, date_of_birth, cpr_aliasAttributs validés, noms variables selon l'eID
portrait, face_match_scorenullAucun 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]

eIDPaysNiveau DiditStatut Didit
MitIDDanemarkSubstantielEn production
BankID SwedenSuèdeSubstantielEn production
Finnish Trust NetworkFinlandeSubstantielEn production
Smart-IDEstonie, Lettonie, Lituanie, BelgiqueÉlevéEn production
Mobile-IDEstonie, LituanieÉlevéEn production
BankID NorwayNorvègeNon définiBientôt disponible
Freja eIDSuèdeNon définiBientôt disponible
itsmeBelgiqueNon définiBientôt disponible
iDINPays-BasNon définiBientôt disponible
Carte d'identité électronique allemandeAllemagneNon définiBientôt disponible
FranceConnectFranceNon définiBientôt disponible
ID AustriaAutricheNon définiSur demande
Cl@veEspagneNon définiSur demande
SPIDItalieNon définiSur demande
Swiss E-IDSuisseNon définiSur demande
Portefeuille européen d'identité numérique (EUDI Wallet)UE et EEENon définiBientô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.

Commencer gratuitementNous contacterLire la documentation

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

  1. Règlement (UE) 2024/1183 (eIDAS 2), EUR-Lex, Journal officiel du 30 avril 2024, articles 5a, 5b et 5f.
  2. 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.
  3. Règlement (UE) 2024/1624 (AMLR), EUR-Lex, article 22(6).
  4. Aperçu des schémas eID prénotifiés et notifiés au titre d'eIDAS, Commission européenne, consulté le 5 octobre 2026.
  5. Jeton d'identité ID-porten, Agence norvégienne du numérique (Digdir).
  6. Anbindung mit OpenID Connect, documentation développeur d'ID Austria.
  7. Spécification technique TARA, Autorité estonienne des systèmes d'information (RIA).
  8. Auth and sign: collect, documentation développeur BankID.
  9. QR-koden gjorde susen: BankID-bedrägerierna ned med 90 procent, Computer Sweden, 3 juillet 2019 (source secondaire).
  10. Pourquoi je vois parfois un code de confirmation et parfois trois, Smart-ID.
  11. Comment le nouveau Smart-ID me protège contre la fraude, Smart-ID.
  12. Courtiers MitID, Agence danoise pour l'administration numérique.
  13. Devenir fournisseur de services, AusweisApp, gouvernement fédéral allemand.
  14. Article 18 de la loi sur les passeports et les cartes d'identité (PAuswG), Gesetze im Internet.
  15. Connecter votre entreprise à BankID, BankID.
  16. Approbation de la spécification finale OpenID for Verifiable Presentations 1.0, OpenID Foundation.
  17. Digital Credentials, W3C.
  18. Règlement d'exécution (UE) 2026/1731 de la Commission, EUR-Lex, portrait dans les PID à compter du 11 août 2028.
  19. Portefeuilles d'identité numérique, documentation Didit.
  20. Intégration de Smart-ID et Mobile-ID, documentation Didit.
  21. Configuration des fonctionnalités des workflows, documentation Didit.
  22. Webhooks, documentation Didit.
  23. Sandbox et données de test, documentation Didit.
  24. 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.

Commencer gratuitementNous contacter

Infrastructure pour l'identité et la fraude.

Une seule API pour le KYC, le KYB, la surveillance des transactions et le screening de portefeuilles. Intégration en 5 minutes.

Demande à une IA de résumer cette page