Car Rental with the EUDI Wallet: mDL + PID in a Real Booking Flow
We've created interactive demonstrations of real-world EUDI Wallet use cases. Explore how verifiable credentials work across mobility services with our car rental demo.

- Published on
Mobility services need high-assurance checks without creating a slow or invasive customer experience. The car rental demo shows a practical pattern: request PID and mDL credentials via DCQL, evaluate driving privileges, and complete a booking with simulated payment.
This post breaks down the flow, the verification details, and the scope boundaries.
What is the car rental demo
The car rental demo is a frontend-only booking flow designed to feel like a real product. Backend persistence and real payment processing are out of scope.

The user journey end-to-end
The canonical journey is:
- Search and select a car.
- Review booking details.
- Verify PID + mDL via wallet.
- Complete mock payment.
- Confirm booking with pickup details.
This flow keeps the verification moment explicit and ties it directly to eligibility.
Verification details: DCQL + Authorizer
The demo creates a new authorisation request for each booking. The request uses DCQL and includes an mDL credential query with:
- docType
org.iso.18013.5.1.mDL - namespace
org.iso.18013.5.1
The authoriser endpoints used are:
/openid4/vp/v1_0/authorizations/openid4/vp/v1_0/authorizations/{authorizationId}/status/openid4/vp/v1_0/authorizations/{authorizationId}/policy-response/openid4/vp/v1_0/authorizations/{authorizationId}/credentials
For protocol references, see OID4VP and the Digital Credentials API.
What gets checked for eligibility
The demo focuses on two mDL checks that are common in rental scenarios:
- Required vehicle category appears in
driving_privileges. - Licence expiry date is in the future.
PID and mDL claims are disclosed with user consent, and the policy response drives the decision outcome.
Scope boundaries and guardrails
This is a reference demo with a clear scope:
- The payment step is simulated.
- Backend persistence is out of scope.
- Issuer trust-chain validation runs through the authoriser flow, rather than the frontend.
How to reuse the pattern
If you are building a mobility or rental flow, the pattern generalises well:
- Use DCQL for consistent credential requests.
- Keep eligibility logic policy-driven.
- Adapt the UX to your booking steps without changing the verifier loop.
Next steps
- Live demo: Vidos EUDI Use Case Demos
- Repo: https://github.com/vidos-id/usecase-demos
- EUDI use case manuals: https://ec.europa.eu/digital-building-blocks/sites/spaces/EUDIGITALIDENTITYWALLET/pages/896827987/Use+case+manuals
- ISO/IEC 18013-5 overview: ISO/IEC 18013-5:2021
Talk to our team
Have a question or want to chat about how Vidos can help? Reach out to our team of real-world practitioners today.
Want to learn more?
Download our guide:
The Evolution of Digital Identity
As we delve into the history, milestones, case studies, and future directions of digital identity, this guide aims to provide a comprehensive overview of its evolution. Through this exploration, we hope to shed light on the importance of digital identity in shaping our digital futures, preparing us for the next chapter in this ever-evolving narrative.
Download here