Service · Software development

Accept the EUDI wallet in your software.

The European Digital Identity Wallet is on its way, and with it the obligation for many service providers to accept it. More interesting than the obligation is what it makes possible: asking only for what you actually need. We build that integration alongside your existing login methods, not in place of them.

OpenID4VPSelective disclosureAlongside existing loginAttestations

What is changing, and what we build for it.

With the revision of eIDAS (Regulation (EU) 2024/1183), every Member State is required to offer citizens and businesses a digital identity wallet. The European timeline is for these wallets to be available by the end of 2026; the Netherlands is working on its own public wallet. For service providers, an acceptance obligation follows, with its own timeline that depends on the implementing acts. An important detail: the obligation concerns recognised wallets in general, so waiting for one specific wallet is not a strategy.

What makes this interesting beyond the obligation is the data minimisation side. Many organisations ask for more than they need when someone logs in or submits an application, simply because the tool gave them no other option. With selective disclosure, you can request derived attributes instead of the underlying data: not the date of birth but whether someone is over eighteen, not the full address but the municipality. Fewer questions mean less storage and less explaining.

We build the relying party side: the request you send to the wallet, checking what comes back, and linking it to the identity you already hold in your system. This almost always touches your existing login chain and sometimes your integrations with other systems. For organisations also working on information security, we set it up so the two projects do not get in each other's way.

We build this as a standalone piece and as part of custom software development. If you currently use DigiD or eHerkenning, the wallet route is added alongside them. How we handle identity data is set out in our information security policy.

Three types of engagement we take on here.

Where you start depends on what you use identity for: logging in, checking a single attribute, or building a file. We'll determine that in the first conversation.

First engagement · fixed sprint budget

Logging in with the wallet, alongside what you already have

A second route to the same identity in your system. For your users, nothing changes at first: a button is added. Technically, the design work is mainly about linking: someone who logs in today with an existing method and tomorrow with a wallet should be the same person and see the same record. We build that route so it can be switched off separately, so that changes to the standards do not affect your existing services.

OpenID4VPLinked to existing accountCan be switched off separatelyFallback option
Mid-sized project · fixed sprint budget

Verifying attributes without asking for everything

Age limit, place of residence, professional licence, signing authority. Instead of asking for and storing a document, you request confirmation and keep only the answer. That saves you retention periods, explanation and risk. To do this, we first review your forms: which data you request, why, and which derived attribute you actually need. In practice, that clean-up often delivers more than the wallet itself.

Selective disclosureAge verificationStoring lessForm clean-up
Larger project · fixed sprint budget

Issuing and verifying attestations

Alongside identity, wallets can carry statements issued by an organisation: a diploma, a membership, a licence, a customer status. If you are the party issuing such credentials, we build the issuance side; if you are the party verifying them, we build the verification side. Often both, because organisations that issue credentials usually also want to be able to check what others have issued.

IssuanceVerification and revocationSD-JWT and mdocTrust lists

What you have at the end of an engagement.

A working integration alongside your existing login methods, with the documentation you need to register as a relying party.

  • A working wallet routeA request to the wallet, checking of what comes back and linking to the identity in your system, built on open standards so you are not tied to a single vendor.
  • Alongside your existing methodsThe new route stands apart from what you already have and can be switched off separately, so changes to the standards do not affect your current services.
  • An overview of requested dataFor each form and each data item, we record why you ask for it and which derived attribute suffices – the basis for your request to the wallet and an immediate clean-up.
  • Registration documentationThe data and justification you need to register as an accepting party, including which attributes you request and for what purpose.
  • A fallback optionA route for users who do not have a wallet or who refuse to share an attribute, so your service continues to work.
  • Handover to your teamWorking sessions with your developers and with the people handling applications, plus documentation for your data protection officer.

When this sounds familiar.

Four situations in which it makes sense to look at this now rather than wait until the deadline is in sight.

Acceptance obligation is coming

You are a public service provider or a large service

For public service providers and for services that must use strong authentication by law, the obligation to accept recognised wallets is coming. Those who make their identity layer extensible now will not have to do it under time pressure later.

You ask for too much

Your forms have grown over the years

There are fields on your form that nobody knows the reason for any more, and you store documents when you only needed a confirmation from them. That is a risk now and will be unnecessary once selective disclosure is in place.

Manual checking

Someone looks at an uploaded document

Extracts, identity documents or diplomas are uploaded and checked by hand. That is slow, error-prone, and leaves you with a retention obligation for data you would rather not have had.

Scattered login knowledge

Every page knows for itself who is logged in

When knowledge about authentication is spread throughout your entire application, every new login method becomes a rebuild. Tidying that up now has value already and turns the wallet into an addition rather than a project.

How such a project runs.

1

Introduction and scoping

What do you use identity for: logging in, checking an attribute, or building a file? Which login methods are running today, and how are they embedded in your application? That last question often determines half the work, because a scattered authentication chain costs more than the wallet itself.

2

Going through data and legal bases

A working session in which we determine, per form and per field: why do you ask this, is it necessary or desirable, and which derived value is sufficient? Necessary and desirable should behave differently in your software, and that distinction is almost always missing.

3

Building in sprints

We work in sprints. First we make the identity layer such that a method can be added without you having to change anything everywhere, then the wallet route itself, then the attributes. Your own developers take part, because this touches the core of your application.

4

Testing against a test setup

The standards exist and there are test setups to test against, well before the public wallets are widely available. We also test the path in which someone has no wallet or refuses an attribute, because that is the path most often skipped in practice.

5

Registration and handover

The documentation for your registration as an accepting party, a handover to your team, and agreements about what happens if the standards or the national implementation change. In this file, that last point is not a theoretical scenario.

Frequently asked questions about the EUDI wallet.

What product owners, architects and privacy officers ask us before they start on this.

When do we need this ready?
The European line is that member states will have a wallet available by the end of 2026. The acceptance obligation for service providers has its own timeline, which depends on the implementing acts, and that has been adjusted several times recently. What we advise organisations is to steer not by a date but by extensibility: make sure your identity layer can take on an additional method. Then introduction will later be an addition rather than a rebuild under time pressure.
Do we have to switch off our current login methods?
No. The obligation is to accept recognised wallets, not to replace existing methods. For your users, initially nothing changes: a button is added. We deliberately build the new route alongside the existing one and make it separately switchable, so that a change in the standards or in the national implementation does not affect what works today.
What exactly is selective disclosure?
The wallet's ability to share part of a credential without disclosing the rest, and to confirm a derived attribute without revealing the underlying data. You ask not for the date of birth but whether someone is over eighteen, not for the full address but the municipality. For you, that means receiving less data, so less storage and less explaining. For the user, it means seeing what they are sharing and why.
What if a user refuses to share an attribute?
Then your service must be able to handle that. That is exactly why it is worth determining in advance, per attribute, whether it is necessary or desirable: those two should behave differently. A missing necessary attribute means the application cannot proceed; a missing desirable attribute should not block the application. In most existing forms that distinction has not been made and everything is mandatory.
Does this also work for organisations rather than individuals?
Yes, the framework takes this into account: alongside personal wallets, there will be provisions for legal entities, through which, for example, signing authority or representation can be demonstrated. In our design, we account for this by not tying the check to a personal attestation, so you won't need to rebuild later when that part becomes available.
Does this replace DigiD or eHerkenning?
In time, the wallet is expected to sit alongside existing means and partly replace them, but that is a process of years, and it is not something you need to anticipate now. In practical terms, you are adding a route. What you can do now is make sure your application isn't tied to a specific means, because that is where the cost lies with every subsequent change.
Which standards do you build on?
On the open standards designated in the European architecture framework: OpenID for Verifiable Presentations for requesting, with credentials in formats such as SD-JWT and mdoc. This means the integration is not tied to a specific wallet or vendor. We follow the reference implementations, and we keep the parts where the standard is still evolving deliberately small and separate, so a change there does not run through your entire application.
Do we need to register with anyone?
Yes. Parties that request data from a wallet must register as relying parties and state which attributes they request and for what purpose. This is one of the safeguards in the framework: a wallet can check whether a request matches what the requester is permitted to ask. We provide the justification and the overview of requested attributes you need for that registration.
What if the timeline shifts again?
That is a realistic scenario, and it is a reason to build for extensibility rather than for a date. The two things we do first, the overview of requested data and the separation of your identity layer, are valuable regardless of when the wallet arrives. They also shorten the work that lies ahead, so you run no risk of investment becoming worthless.
What about GDPR?
They reinforce each other. The wallet makes data minimisation technically possible where it was previously only an intention: you can genuinely ask for less. What still applies is that for every data point you do receive, you need a lawful basis and a retention period. The overview we produce of requested data, with the reason for each, is exactly what your Data Protection Officer needs, and what most organisations don't have.
What is the difference with an eIDAS integration?
These two are often confused. An eIDAS integration connects you to the Dutch national gateway, so citizens and businesses from other EU countries can reach you with their own national login – over the same chain as eHerkenning. That exists today and it works. The wallet is the next step under the same regulation: a means the user controls themselves, that can carry attestations, and with which they can share part of them. If you have foreign users now, the integration is what you need; if it concerns the acceptance obligation that is coming, then this page.
Where can we start today?
With two things that are already useful now. The first is the list of data you request, with the reason for each item and the derived attribute that would suffice; you need this anyway, and it will determine what your request looks like later. The second is to set up your identity layer so that a means can be added without changing anything throughout your system. Together, that is a short assignment with returns now, and it removes most of the later work.

Talk to us about the EUDI wallet.

A thirty-minute introductory call, no obligation. Tell us which data you currently request and how your login is arranged, and we'll say what should come first and what can wait, even if we ultimately don't work together.

Edit content