Age verification · EU Digital Identity · .NET

Age verification without ever seeing an ID.

Tessio.Cloud is a hosted verification API. You ask whether someone is over 18, they confirm it from the EU age verification app, and you get back a signed yes or no. No documents, no selfies, and no personal data kept.

Live at cloud.tessio.eu. Built for iGaming, age restricted retail, dating and adult platforms: national law sets the age, and the DSA asks platforms accessible to minors for proportionate protection.

Try it now

A real age check in your browser, with no account. The request is the one our API builds for a customer. No wallet answers this deployment yet, so a button stands in for the person, and it skips verification rather than faking a pass. More about the demo.

Nothing is stored about you. A check records the yes or no answer and nothing else: no name, no date of birth, no document image.

The Tessio.Cloud dashboard: verification outcomes over the last 30 days and every age check with its status, result, method and reference.

The Tessio.Cloud dashboard: verification outcomes over time and every age check, with no personal data stored.

Two products, one core

The hosted product for teams who want it run for them, and the open source verifier for teams who want to run it themselves.

Hosted · live now

Tessio.Cloud

A hosted API and dashboard for age and identity checks on the EU wallet ecosystem. You get API keys, webhooks and usage analytics. Checks from the EU age verification app complete in production today, over both transports the profile defines, and you can start building against the sandbox in an afternoon.

Open source · Apache-2.0

Tessio.Verifier

The ASP.NET Core verifier that Tessio.Cloud runs on. It does OpenID4VP 1.0, SD-JWT VC and mdoc (mDL), plus the W3C Digital Credentials API transport of the EU age verification profile, and it passes the OpenID Foundation conformance suite for HAIP verifiers in both formats. Four run modes let you build before wallets ship. It is on NuGet for .NET 8 to 10, so you can run it yourself.

The Tessio.Cloud developer page: base URL, API key authentication and copy and paste request examples.

A small REST API with keys, webhooks and copy and paste examples in your language.

Free tools in Tessio.Labs

Five free validators for EU digital identity and trust, on the same engine as Tessio.Cloud. Nothing you paste is stored.

Open Tessio.Labs →

Age verification in three calls

You get the claim you asked for, not the identity behind it.

01

Call the API

POST a check to /v1/age-checks. You get back a hosted verification link. No SDK to install, no documents to handle.

02

The user confirms

The person confirms one claim, like being over 18, from the EU age verification app or their EU Digital Identity Wallet. No ID scan, no selfie.

03

You get a yes or no

A signed result lands on your webhook. You store the answer you need, and nothing else.

Why now

Regulation (EU) 2024/1183 makes all 27 member states issue a Digital Identity Wallet by the end of 2026. From December 2027, relying parties that law or contract requires to use strong user authentication have to accept it when a user asks to present it, micro and small enterprises excepted. EU DSA and national age rules already apply today.

The open source verifier tooling is Kotlin, Rust and TypeScript, so .NET teams end up porting it. There are a lot of those teams in EU public sector and finance. Tessio gives them a verifier that fits, hosted or self run.

Timeline

  1. Now

    Tessio.Cloud is live, and on 25 August 2026 the EU age verification app completed a real age check against it in production, with the attestation checked against the Commission's published age verification trusted list. Tessio.Verifier passes every applicable module of the OpenID Foundation conformance suite for OpenID4VP 1.0 HAIP verifiers in both SD-JWT VC and mdoc formats, and that pass is the bar for every release. It implements the EU age verification profile, which sends no request object at all, and the profile's preferred transport, the W3C Digital Credentials API. On 27 August 2026 that transport completed a real age check in production too, from a browser, and settled a question the published specification leaves open: the reference implementations bind the encrypted response one way and the shipping wallet another, so we bind it the way the wallet actually does. Both transports the profile defines are carrying real checks.

  2. Dec 2026

    Member states have to make the EUDI Wallet available under Regulation (EU) 2024/1183. Real wallets, real credentials to verify.

  3. Dec 2027

    Acceptance becomes mandatory for relying parties bound to strong user authentication, other than micro and small enterprises, whenever a user asks to present the wallet. They need a verifier in production.

Pricing

You pay only for checks where a wallet presented an attestation and we verified it. Everything else is free.

Starter

€49 per month

1,000 verified checks a month included, then €0.10 per check.

Growth

€249 per month

5,000 verified checks a month included, then €0.05 per check.

Enterprise

Custom

Volume beyond what Growth fits, custom agreements and terms.

Design partners get preferential pricing while we build out. Full pricing and what counts as a check →

Frequently asked

What is Tessio.Cloud?

A hosted API for age and identity checks on the EU wallet ecosystem, covering both the EU age verification app and the EU Digital Identity Wallet. You send a check, the person proves a claim such as being over 18, and you get a signed yes or no back. You never handle documents, and we keep no personal data.

How does the age verification API work?

Your app calls the /v1/age-checks endpoint and gets a hosted verification link. The person confirms the claim from their app or wallet, and the result comes back on your webhook. Which app or wallet is what decides whether it works today. There are two ways to prove age in the EU wallet ecosystem, and they are not at the same stage. The EU age verification app has its own profile, which puts reader authentication out of scope, so no access certificate is involved. The EU Digital Identity Wallet requires one.

Can you verify a real person today, or is this still a sandbox?

Age checks from the EU age verification app work in production today. One completed against our live API on 25 August 2026, with the attestation checked against the age verification trusted list the Commission publishes. Live checks are anchored on the Commission's production list and test checks on its acceptance list, and the security page says what that means for you. The EU Digital Identity Wallet is a separate path and it is still gated. That wallet checks who is asking before it releases anything, so it needs a relying party access certificate, which we applied for on 5 August 2026 and do not yet hold. Every relying party in Europe sits behind that same gate, incumbents included. A sandbox key is still where an integration starts, and it is no longer the only thing we can do.

Which transport does Tessio use for the EU age verification app?

We verify over both transports the age verification profile defines, and both are live in production. The one it prefers, the W3C Digital Credentials API, completed its first production check on 27 August 2026, and OpenID for Verifiable Presentations, its fallback, has been answering checks since 25 August. The verification page picks whichever the person's browser supports, so the better experience is used where it exists and nobody is turned away where it does not. Which one a vendor supports is worth asking. The browser route gives the smoother experience where it exists, having shipped in recent Chrome and Safari, and the fallback is what reaches everyone else, including a wallet on a second device.

What does Tessio.Cloud cost?

Starter is €49 a month with 1,000 verified checks included and Growth is €249 a month with 5,000. Above that we agree custom terms. You pay only for checks where a wallet presented an attestation and we verified it. Everything else is free. A sandbox key is free and stays free.

Do you store personal data?

No. The result is an over 18 yes or no, not a date of birth or an ID document. There is no selfie and no ID scan, and we keep no personal data. You get the answer your compliance needs and nothing more.

Is it GDPR compliant?

We check one claim and store no personal data, which is the posture GDPR and the EU Digital Identity framework are built for. If you need the verifier inside your own boundary, you can self host it.

Is there an open source or self hosted option?

Yes. Tessio.Cloud runs on Tessio.Verifier, our open source ASP.NET Core verifier for OpenID4VP, SD-JWT VC and mdoc. It is on NuGet under Apache-2.0, so you can build and run it on your own .NET stack.

Does Tessio pass the OpenID Foundation conformance tests?

Yes. Tessio.Verifier passes every applicable module of the OpenID Foundation conformance suite for OpenID4VP 1.0 verifiers under the High Assurance Interoperability Profile (HAIP), in both SD-JWT VC and mdoc formats. The suite plays the wallet and attacks the verifier: tampered credentials, replayed proofs, stale keys and broken session bindings all have to be rejected for the right reason. Passing it is our bar for a verifier release. We have not yet submitted for the official OpenID certification listing.

When must businesses accept the EU Digital Identity Wallet?

Member states have to make the wallet available by December 2026 under Regulation (EU) 2024/1183. From December 2027, private relying parties that law or contract requires to use strong user authentication have to accept it when a user asks to present it. Micro and small enterprises are excluded. Both dates run from the implementing acts in force since 24 December 2024.

Working on age or identity verification?

Let's talk.

Signup is open and a test project works as soon as you create one. We are talking to operators running age assurance pilots, integrators planning their 2027 rollout and member state teams looking for an EU aligned reference stack. If that is you, get in touch.

hello@tessio.eu