Apps móviles e integración nativa
El flujo alojado dentro de una app móvil, y los casos en los que la API de sesión directa es la herramienta adecuada. La otra guía: tiendas en línea.
En una app móvil (Flutter, React Native, nativo)
Abre la hosted_url en una Custom Tab (Android) o un
SFSafariViewController (iOS): la cartera se abre
desde esa vista mediante su enlace profundo, y el usuario vuelve a
tu app a través de tu success_url como enlace
universal (https, así que compatible). Tu backend confirma después
con GET /verify/sessions/{id}, exactamente igual que
en la web. success_url significa verificación
superada, nunca que el usuario sea mayor de edad: una
prueba de edad que vale false también llega allí, como
cualquier resultado verificado. Lee el resultado en el servidor
(claims.age_over_18 con el atajo
age_over_18) y aplícale tu propia regla. Nunca pongas el token de licencia dentro de la app: es
tu backend quien crea el recorrido y lee el resultado.
Los casos de uso nativos, mediante la API de sesión
Cuando quieres dibujar la pantalla tú mismo, la API de sesión directa (referencia técnica) te da la solicitud de autorización en bruto, para mostrarla como prefieras.
Tu propia pantalla QR (cross-device)
Crea la sesión con POST /verify/sessions, muestra
la solicitud de autorización en tu interfaz (QR o enlace), y
consulta el estado de la sesión: el usuario escanea con la
cartera de su teléfono mientras está frente a tu pantalla. Es
el modo que usa la página alojada, sin su maquetación.
Quiosco, mostrador, entrega en persona
La misma mecánica en un quiosco o una tableta de mostrador: tu pantalla muestra el QR, el cliente escanea, el agente ve llegar el resultado. La sesión caduca sola si nadie responde: nada que limpiar.
Prueba ya en mano: la verificación directa
Si tu recorrido ya te dio la presentación (SD-JWT VC o mdoc)
por otro canal, POST /verify/sd-jwt-vc y
POST /verify/mdoc la verifican sin sesión ni
página: una petición, una respuesta.
Las tres reglas que nunca cambian. El token de
licencia se queda en el servidor. El resultado se confirma con un
GET /verify/sessions/{id} autenticado, nunca sobre la
base de un parámetro de URL o un evento del navegador. Y no hay
nada que almacenar: ni copia del documento, ni foto, solo la
respuesta verificada que pediste, como se explica en
la FAQ.