Applis mobiles et intégration native
Le flux hébergé dans une appli mobile, et les cas où l'API de session directe est le bon outil. L'autre guide : boutiques en ligne.
Dans une appli mobile (Flutter, React Native, natif)
Ouvrez la hosted_url dans une Custom Tab (Android) ou
un SFSafariViewController (iOS) : le portefeuille
s'ouvre depuis cette vue par lien profond, et l'utilisateur
revient dans votre appli via votre success_url en
lien universel (https, donc compatible). Votre backend confirme
ensuite par GET /verify/sessions/{id}, exactement
comme sur le web. success_url signifie
vérification réussie, jamais que l'utilisateur est majeur :
une preuve d'âge qui vaut false y renvoie aussi, comme
tout résultat vérifié. Lisez le résultat côté serveur
(claims.age_over_18 avec le raccourci
age_over_18) et appliquez-y votre propre règle. Ne mettez jamais le jeton de licence dans
l'appli : c'est votre backend qui crée le parcours et qui lit le
résultat.
Les cas d'usage natifs, par l'API de session
Quand vous voulez dessiner l'écran vous-même, l'API de session directe (référence technique) vous donne la requête d'autorisation brute, à afficher comme vous l'entendez.
Votre propre écran QR (cross-device)
Créez la session par POST /verify/sessions,
affichez la requête d'autorisation dans votre interface (QR ou
lien), et interrogez le statut de la session : l'utilisateur
scanne avec le portefeuille de son téléphone pendant qu'il est
sur votre écran. C'est le mode qu'utilise la page hébergée,
sans sa mise en page.
Borne, comptoir, remise en main propre
Même mécanique sur une borne ou une tablette de comptoir : votre écran affiche le QR, le client scanne, l'agent voit le résultat arriver. La session expire toute seule si personne ne répond : rien à nettoyer.
Preuve déjà en main : la vérification directe
Si votre parcours vous a déjà donné la présentation (SD-JWT VC
ou mdoc) par un autre canal,
POST /verify/sd-jwt-vc et
POST /verify/mdoc la vérifient sans session ni
page : une requête, une réponse.
Les trois règles qui ne changent jamais. Le jeton
de licence reste côté serveur. Le résultat se confirme par
GET /verify/sessions/{id} authentifié, jamais sur la
foi d'un paramètre d'URL ou d'un événement navigateur. Et il n'y a
rien à stocker : pas de copie de pièce d'identité, pas de photo,
seulement la réponse vérifiée que vous avez demandée, comme
expliqué dans la FAQ.