Your First Integration¶
This guide walks you step by step through a complete flow: issuing a credential, receiving it in a test wallet, and presenting it to a Verifier.
Flow diagram¶
sequenceDiagram
participant Your system
participant Issuer API
participant Wallet
participant Verifier API
Your system->>Issuer API: 1. Create credential offer
Issuer API-->>Your system: credential_offer (URL/QR)
Your system-->>Wallet: 2. Deliver offer to user
Wallet->>Issuer API: 3. Redeem offer (OID4VCI)
Issuer API-->>Wallet: SD-JWT VC credential
Verifier API->>Wallet: 4. Request presentation (OID4VP)
Wallet-->>Verifier API: Signed presentation
Verifier API-->>Your system: 5. Verification result Prerequisites before starting
- Access to the sandbox. Request it at Sandbox. Environment URLs:
- Issuer:
https://sandbox-stg.eudistack.net/issuer - Wallet:
https://sandbox-stg.eudistack.net/wallet - Verifier:
https://sandbox-stg.eudistack.net/verifier
- Issuer:
- A valid Bearer Token (provided by the EUDIStack team when granting sandbox access).
- Postman or curl.
Step 1: Create a credential (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": "your-email@x.com",
"grant_type": "urn:ietf:params:oauth:grant-type:pre-authorized_code"
}
Step 2: Open the Credential Offer (Wallet)¶
- Copy the
credential_offer_urifrom the previous response. - Go to the wallet:
https://sandbox-stg.eudistack.net/wallet. - Log in or create a wallet.
- Select "Scan credential".
- Paste the previously copied
credential_offer_uri.
The Wallet will automatically interpret the offer.
Step 3: Credential redemption (OID4VCI)¶
If the flow is pre-authorized code:
- The Wallet requests an activation code (
tx_code). - Enter the code received by email.
Once validated:
- The Wallet exchanges the
pre-authorized_codefor anaccess_token. - Downloads the signed credential from the Issuer.
- Stores the credential in the user's Wallet.
Step 4: Start verification (OID4VP)¶
Open the Wallet:
- Scan or copy the Verifier request.
- Select the credential to present.
Step 5: Retrieve verification result¶
There are two ways to obtain the result.
The Verifier sends the result to your redirect_uri once the Wallet completes the presentation:
The Verifier responds with a redirect:
Query the verification status using the integrator-facing endpoint, with the session_id obtained in Step 4:
GET https://sandbox-stg.eudistack.net/verifier/api/v1/authorization-request/{id}
Authorization: Bearer {{token}}
{
"session_id": "abc123",
"status": "verified",
"verified": true,
"credential_type": "learcredential.employee.sd.1"
}
Do not confuse with the Wallet endpoint
GET /oid4vp/auth-request/{id} is a Wallet-facing OID4VP protocol endpoint used by the Wallet to retrieve the presentation request JWT. It is not a verification-status endpoint for integrators.