Comment fonctionne Todis
Todis vérifie une preuve d'identité numérique européenne pour vous, qu'elle vienne directement du portefeuille de votre utilisateur ou que vous l'ayez déjà en main. Vous recevez toujours la même chose en retour : un résultat de vérification clair, avec uniquement les informations demandées.
Où en sont les portefeuilles nationaux. L'intégration Todis est utilisable et testable dès aujourd'hui. Les portefeuilles eIDAS 2 que vos utilisateurs installeront sont en cours de déploiement dans les États membres : le règlement fixe une échéance au 24 décembre 2026 pour que chacun dispose d'un registre de vérifieurs opérationnel. En attendant, testez votre intégration avec une preuve déjà en main, ou contactez-nous pour un accès à un portefeuille de test : vous serez prêt dès que vos utilisateurs auront un portefeuille réel.
En trois étapes
Vous vous authentifiez avec le jeton reçu par email à l'inscription.
Vous demandez à Todis une vérification : via une session guidée avec le portefeuille de votre utilisateur, ou directement si vous avez déjà sa preuve en main.
Vous recevez un résultat de vérification clair, avec uniquement les informations demandées.
S'authentifier
Chaque appel utilise le jeton reçu par email à l'inscription, à
passer dans l'en-tête Authorization: Bearer <jeton>.
Un jeton absent, invalide ou expiré renvoie systématiquement une
erreur 401.
Deux façons d'intégrer
Le flux complet est la méthode recommandée pour la grande majorité des intégrations. La vérification directe reste utile si vous avez déjà la preuve de votre utilisateur en main par un autre moyen.
Flux complet (recommandé)
Vous demandez à Todis de créer une session de vérification, en précisant ce que vous voulez savoir (claim) :
curl -X POST https://verify.todis.eu/verify/sessions \
-H "Authorization: Bearer VOTRE_JETON" \
-H "Content-Type: application/json" \
-d '{
"vct": "https://example.eu/credentials/pid",
"claims": ["age_over_18"],
"country_code": "FR"
}'
Todis vous renvoie un identifiant de session et une requête d'autorisation à présenter à votre utilisateur (QR code ou lien profond selon votre parcours). Son portefeuille l'ouvre, lui montre exactement ce qui est demandé, et envoie sa réponse directement à Todis, jamais à votre serveur.
Vous interrogez ensuite l'identifiant de session : la réponse
porte un statut ("pending", "verified"
ou "failed") et, une fois vérifié, la revendication
demandée :
{
"status": "verified",
"claims": { "age_over_18": true }
}
Votre application n'a jamais à recevoir ni interpréter la réponse brute d'un portefeuille : elle ne voit que ce résultat déjà vérifié.
Vérification directe
Vous avez déjà reçu la preuve de votre utilisateur (SD-JWT VC ou mdoc) par un autre moyen. Un seul appel HTTP suffit pour la faire vérifier :
curl -X POST https://verify.todis.eu/verify/sd-jwt-vc \
-H "Authorization: Bearer VOTRE_JETON" \
-H "Content-Type: application/json" \
-d '{
"presentation": "<preuve reçue du portefeuille>",
"country_code": "FR"
}'
country_code laisse Todis retrouver automatiquement
l'émetteur dans le registre officiel de l'UE. Vous pouvez aussi
fournir directement sa clé publique avec
issuer_public_key_pem si vous la connaissez déjà.
Qui décide ce qui est partagé
Dans un portefeuille européen, chaque information (l'âge, un diplôme, un statut) est protégée séparément par sa propre preuve cryptographique. Le portefeuille ne joint à sa réponse que les preuves des informations que l'utilisateur a accepté de partager : les autres restent invisibles, pas seulement masquées. Todis ne peut techniquement pas les voir, avec ou sans autorisation.
Avec le flux complet, c'est vous qui décidez quelles informations
demander, via le champ claims de votre requête (par
exemple ["age_over_18"]). Todis transmet cette
demande au portefeuille, qui affiche à l'utilisateur un écran de
consentement listant exactement les informations demandées avant
qu'il n'accepte. Avec la vérification directe, cette étape s'est déjà
déroulée avant que la preuve n'arrive chez Todis : vous nous
transmettez une preuve déjà construite, nous la vérifions et vous
renvoyons son contenu tel quel, sans y ajouter ni retirer quoi que
ce soit.
La réponse
Dans les deux cas, vous recevez un résultat de vérification clair,
avec uniquement les informations effectivement divulguées (voir
l'exemple du flux complet ci-dessus). La vérification directe
répond avec un champ verified :
{
"verified": true,
"claims": { "age_over_18": true }
}
Besoin du détail complet ?
Codes de réponse et cas d'erreur : voir la référence technique. Schéma exact des requêtes/réponses : todis.eu/docs (Swagger). Une question qui reste sans réponse ? contact@todis.eu.
Le flux bout en bout
Ci-dessous, une représentation illustrative du flux complet : du déclencheur côté votre application jusqu'à la valeur livrée à votre client, pas seulement la partie que Todis prend en charge.