# Tessio > Tessio.Cloud is a hosted age verification API for the EU. A person proves they are over a threshold from the EU age verification app, and the relying party gets a signed yes or no. No name, date of birth, document or photo is seen or stored. 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. Signup is open and a test project works as soon as you create one. A check counts toward your plan only when a wallet presented an attestation that verified. Every other check is free. ## Developers - [Developer docs](https://tessio.eu/docs/): start an age check against https://api.tessio.eu and get the result over a webhook - [Stats API](https://tessio.eu/docs/stats-api/): read pass rate, the funnel, refusal reasons and breakdowns from code - [API reference](https://tessio.eu/docs/api/): every operation an integration calls, with parameters, responses and schemas - [OpenAPI description](https://api.tessio.eu/v1/openapi.json): the same, as OpenAPI JSON served by the API - [MCP server](https://tessio.eu/docs/mcp/): connect an AI assistant to your age check stats at https://api.tessio.eu/mcp, read only - [For developers](https://tessio.eu/for/developers/) - [Tessio.Verifier](https://verifier.tessio.eu): the open source .NET verifier underneath, Apache-2.0 - [Source on GitHub](https://github.com/tripledownab/tessio-verifier) - [Tessio.Labs](https://labs.tessio.eu): free validators for SD-JWT VC, mdoc, eIDAS signatures, EU and EUDI trusted lists and C2PA signing certificates ## Product - [Pricing](https://tessio.eu/pricing/) - [Security](https://tessio.eu/security/): what we verify today and what we do not yet - [Privacy](https://tessio.eu/privacy/): what a check record holds and how long each plan keeps it - [Demo](https://tessio.eu/demo/) - [Age verification for compliance and DPOs](https://tessio.eu/for/compliance/) - [Wallet based age verification for platform providers](https://tessio.eu/for/platform-providers/) ## Guides - [How to measure an age check funnel](https://tessio.eu/guides/age-check-funnel/): How to read an age check funnel: the steps a check passes, what each drop off can mean, why attempts are refused and which rates to compare, with the definitions Tessio.Cloud uses. ## Regulation - [UK Online Safety Act age assurance](https://tessio.eu/osa/): What the UK Online Safety Act requires for highly effective age assurance, its dates and where an EU wallet check stops. - [EU Digital Services Act and age assurance](https://tessio.eu/dsa/): The EU Digital Services Act requires platforms to protect minors proportionately. This page sets out what Article 28 requires, when the Commission guidelines point to verification and how to check age without storing an identity document. - [The EU Digital Identity Wallet, for relying parties](https://tessio.eu/eudi/): The EU Digital Identity Wallet is coming to all 27 member states. This page sets out when relying parties have to accept it and the steps they take before they can, with the provision behind each. ## Glossary - [Age assurance](https://tessio.eu/glossary/age-assurance/): Age assurance is the umbrella term for any method of establishing that someone is old enough to do something. It splits into age verification and age estimation: verification proves age from an authoritative source, and estimation infers it from a face, a voice or behaviour. The difference matters legally, because a regulator asks not just whether you checked but how well. - [Highly effective age assurance (HEAA)](https://tessio.eu/glossary/highly-effective-age-assurance/): Highly effective age assurance is the standard the UK Online Safety Act sets for services that must keep children away from adult content. Ofcom judges it against four criteria: technically accurate, robust, reliable and fair. It is a higher bar than "we asked", and Ofcom has named methods that do not clear it. - [Relying party](https://tessio.eu/glossary/relying-party/): A relying party is whoever asks an EU Digital Identity Wallet for data and relies on the answer, which in practice means your service. The EU framework makes it a registered role, not an informal one. You register with a national authority, and that registration is what eventually gets you the access certificate a wallet checks before releasing anything. - [Selective disclosure](https://tessio.eu/glossary/selective-disclosure/): Selective disclosure is the ability to reveal some claims from a signed credential while keeping the rest hidden, without breaking the issuer's signature. It works by signing digests of salted values rather than the values themselves, so the holder can hand over only the values they choose and the verifier can still check every one against what was signed. - [SD-JWT VC](https://tessio.eu/glossary/sd-jwt-vc/): SD-JWT VC is a verifiable credential format built on JSON Web Tokens with selective disclosure added, so a holder can reveal individual claims from an issuer signed credential. It is one of the two formats the EU Digital Identity Wallet uses, the other being ISO mdoc. - [mdoc and mDL (ISO/IEC 18013-5)](https://tessio.eu/glossary/mdoc/): An mdoc is a mobile document in the ISO/IEC 18013-5 format, a CBOR based credential best known as the mDL, the mobile driving licence. It is one of the two formats the EU Digital Identity Wallet uses, and the EU age verification attestation is an mdoc. - [Person Identification Data (PID)](https://tessio.eu/glossary/pid/): Person Identification Data (PID) is the core identity credential in the EU Digital Identity Wallet: the attested set of attributes that establish who someone is, issued by a member state designated PID provider. It is the wallet's identity document, and it carries a name and a date of birth. - [EU age verification attestation (eu.europa.ec.av.1)](https://tessio.eu/glossary/age-verification-attestation/): The EU age verification attestation is a credential, doctype eu.europa.ec.av.1, that carries nothing but a set of age_over_N booleans. No name, no date of birth, no document number, no portrait. It exists so a service can check someone is old enough without learning anything else about them. - [Wallet relying party access certificate (WRPAC)](https://tessio.eu/glossary/wrpac/): A wallet relying party access certificate (WRPAC) is the certificate that proves to an EU Digital Identity Wallet that you are a registered relying party. Without one that wallet refuses your request outright, before any data is shared and before the user is even asked. The EU age verification app is the exception: its own profile puts reader authentication out of scope. - [EU trusted list and the LOTL](https://tessio.eu/glossary/trusted-list/): An EU trusted list is a signed, machine readable list that a member state publishes of the trust service providers it has qualified under eIDAS. The LOTL (List of Trusted Lists) is the European Commission's list pointing at all of them, and it is the root you start from when you want to know whether a certificate is qualified. - [IACA (Issuing Authority Certificate Authority)](https://tessio.eu/glossary/iaca/): An IACA (Issuing Authority Certificate Authority) is the root certificate authority an mdoc issuing authority operates. Trust in an mdoc is decided by whether its Document Signer certificate chains to an IACA root the verifier already holds, so the IACA list is the mdoc equivalent of a trusted list. - [OpenID for Verifiable Presentations (OpenID4VP)](https://tessio.eu/glossary/openid4vp/): OpenID for Verifiable Presentations (OpenID4VP) is the protocol a verifier uses to ask a wallet for credentials and receive the presentation back. It is format neutral: the same exchange carries SD-JWT VC and ISO mdoc, and it is what the EU Digital Identity Wallet uses. - [DCQL (Digital Credentials Query Language)](https://tessio.eu/glossary/dcql/): DCQL, the Digital Credentials Query Language, is how an OpenID4VP request states which credentials it wants and which claims from them. It replaced the earlier Presentation Exchange syntax in OpenID4VP 1.0, and it asks for a claim by name. It can name the value it expects, though a wallet is only asked to honour that, not made to. - [EU age verification profile (Annex A)](https://tessio.eu/glossary/av-profile/): The EU age verification profile, published as Annex A of the age verification technical specification, is the set of rules the EU age verification app follows. It is a profile of OpenID4VP, like HAIP, but it differs from HAIP in how the request is sent, whether the verifier is authenticated, how the response travels and how the verifier is identified, so a verifier written for the EU Digital Identity Wallet alone will not satisfy it. - [W3C Digital Credentials API (DC API)](https://tessio.eu/glossary/digital-credentials-api/): The W3C Digital Credentials API lets a web page ask the browser for a credential through navigator.credentials.get, and the operating system then shows its own picker so the person can choose a wallet and approve. It replaces the redirect to a custom URL scheme, and the EU age verification profile names it as the preferred way to present a proof of age. ## Use cases - [Age verification for iGaming and betting](https://tessio.eu/use-cases/igaming/) - [Age verification for age restricted retail](https://tessio.eu/use-cases/retail/) - [Age verification for dating apps](https://tessio.eu/use-cases/dating/) - [Age verification for adult platforms](https://tessio.eu/use-cases/adult/) - [Age verification for social and UGC platforms](https://tessio.eu/use-cases/social/) ## Optional - [Yoti alternative: wallet based age verification](https://tessio.eu/compare/yoti/) - [Veriff alternative: age verification without storing ID](https://tessio.eu/compare/veriff/) - [Onfido alternative: privacy first EU age verification](https://tessio.eu/compare/onfido/) - [Persona alternative: EU wallet age verification](https://tessio.eu/compare/persona/) - [Sumsub alternative: EU age verification, no documents stored](https://tessio.eu/compare/sumsub/) - [iDenfy alternative: wallet based age verification API](https://tessio.eu/compare/idenfy/) - [AgeChecked alternative: wallet based age verification](https://tessio.eu/compare/agechecked/) - [VerifyMy alternative: EU wallet age verification](https://tessio.eu/compare/verifymy/) - [GBG alternative: wallet based age verification, no documents stored](https://tessio.eu/compare/gbg/)