Tu primera integración¶
Esta guía te lleva paso a paso por un flujo completo: emitir una credencial, recibirla en un wallet de prueba y presentarla a un Verifier.
Esquema del flujo¶
sequenceDiagram
participant Tu sistema
participant Issuer API
participant Wallet
participant Verifier API
Tu sistema->>Issuer API: 1. Crear oferta de credencial
Issuer API-->>Tu sistema: credential_offer (URL/QR)
Tu sistema-->>Wallet: 2. Entregar oferta al usuario
Wallet->>Issuer API: 3. Canjear oferta (OID4VCI)
Issuer API-->>Wallet: Credencial SD-JWT VC
Verifier API->>Wallet: 4. Solicitar presentación (OID4VP)
Wallet-->>Verifier API: Presentación firmada
Verifier API-->>Tu sistema: 5. Resultado de verificación Prerrequisitos antes de empezar
- Acceso al sandbox. Solicítalo en Sandbox. URLs del entorno:
- Issuer:
https://sandbox-stg.eudistack.net/issuer - Wallet:
https://sandbox-stg.eudistack.net/wallet - Verifier:
https://sandbox-stg.eudistack.net/verifier
- Issuer:
- Un Bearer Token válido (proporcionado por el equipo de EUDIStack al dar acceso al sandbox).
- Postman o curl.
Paso 1: Crear una credencial (Issuer)¶
{
"credential_configuration_id": "learcredential.employee.sd.1",
"payload": {
"mandator": {
"organizationIdentifier": "VATES-12345678A",
"organization": "EUDIStack Demo",
"commonName": "Admin User",
"email": "admin@eudistack.com",
"country": "ES"
},
"mandatee": {
"firstName": "Mandatee",
"lastName": "Test",
"email": "mandatee-test@eudistack.com"
},
"power": [
{
"function": "Admin",
"action": ["Execute"]
}
]
},
"delivery": "ui",
"email": "tu-correo@x.com",
"grant_type": "urn:ietf:params:oauth:grant-type:pre-authorized_code"
}
Paso 2: Abrir la Credential Offer (Wallet)¶
- Copia el
credential_offer_uride la respuesta anterior. - Accede al wallet
https://sandbox-stg.eudistack.net/wallet. - Inicia sessión o crea un wallet.
- Selecciona "Scan credential".
- Pega el
credential_offer_uricopiado anteriormente.
El Wallet interpretará automáticamente la oferta.
Paso 3: Canje de credencial (OID4VCI)¶
Si el flujo es pre-authorized code:
- El Wallet solicita un código de activación
tx_code. - Introduce el código recibido por email.
Una vez validado:
- El Wallet intercambia el
pre-authorized_codepor unaccess_token. - Descarga la credencial firmada desde el Issuer.
- Almacena la credencial en el Wallet del usuario.
Paso 4: Iniciar verificación (OID4VP)¶
Abre el Wallet:
- Escanea o copia la solicitud del Verifier.
- Selecciona la credencial a presentar.
Paso 5: Recoger resultado de la verificación¶
Existen dos formas de obtener el resultado.
El Verifier envía el resultado a tu redirect_uri cuando el Wallet completa la presentación:
El Verifier responde con redirección:
Consulta el estado de la verificación por ID de sesión usando el endpoint de estado/resultado de verificación documentado en la referencia del Verifier.
No uses GET /verifier/oid4vp/auth-request/{id} para este paso: ese endpoint se utiliza para recuperar la presentation request JWT del Wallet, no para consultar el resultado de la verificación.
La respuesta de polling tendrá un formato similar a este: