Social and user content
Age verification for social and UGC platforms
Social and user content platforms have to protect minors without turning into ID collectors. Tessio lets you gate adult features while storing no documents or dates of birth. Users confirm they are over 18 with the EU age verification app (the EU Digital Identity Wallet follows once our access certificate is issued).
The problem
Under the DSA, platforms accessible to minors have to take proportionate measures to protect them. Article 28(3) says complying does not oblige them to process extra personal data to check age. The UK Online Safety Act adds age assurance duties for services likely to be accessed by children. A wallet check works only for someone who has an EU wallet credential, so under the UK Act you need another method for UK users without one. Under either law you need real assurance with minimal data.
With Tessio a user proves they are over 18 in the EU age verification app, you get a signed yes or no and no document or date of birth is stored. You can gate adult features or age restrict parts of the experience without building an identity database.
Before and after
Without Tessio
- Self declared ages that give no real protection.
- Heavy ID checks that clash with the DSA data minimisation expectation.
- Age estimation that processes a face image when a yes or no is all you need.
With Tessio
- A wallet based over 18 proof that fits data minimisation.
- No document or date of birth collected or stored to check age.
- A signed result you can keep as evidence of the check.
- Built on the standards the Commission age verification blueprint uses.
How it works
01
Call the API where you gate
POST an age check when a user reaches an age restricted feature or signs up. You get a hosted verification link.
02
The user confirms 18+
They prove they are over 18 in the EU age verification app. No ID upload.
03
You get a signed result
A signed yes or no lands on your webhook. You apply the right experience and store no documents or dates of birth.
Start a check
One POST creates a check and returns a link for the user's wallet. The signed result lands on your webhook. Full detail is in the developer docs.
curl -X POST https://api.tessio.eu/v1/age-checks \
-H "Authorization: Bearer tk_your_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: gate-4821" \
-d '{ "minAge": 18, "reference": "gate-4821" }' Frequently asked
Does this fit the DSA data minimisation rule?
Article 28(3) of the DSA says the duty to protect minors does not oblige online platforms to process additional personal data to work out whether a user is a minor. A wallet based over 18 proof returns a single yes or no and stores no document or date of birth, which fits the GDPR principle of data minimisation. Read our DSA summary and confirm your own obligations.
Can I age restrict only part of the experience?
Yes. You choose where to require a check, so you can gate adult features or specific spaces rather than the whole platform and ask for a check only where it matters.
What about users without a wallet?
Few people have the EU age verification app yet. The rollout is early and we do not provide a document or selfie fallback, so Tessio is not a drop in replacement for your current age checks. The realistic path is to run Tessio alongside what you already use and move more traffic to the app as adoption grows.
Related reading
EU Digital Services Act and age assurance
EU regulation
UK Online Safety Act age assurance
UK regulation
The EU Digital Identity Wallet, for relying parties
EU Digital Identity
Tessio vs VerifyMy
Age assurance and online safety
Tessio vs Yoti
Age assurance and digital ID
Tessio for compliance
For compliance, legal and DPOs
Developer docs
The age verification API
Age assurance for social and UGC platforms
Put it in front of your users
Signup is open and a test project works as soon as you create one. Sending real traffic needs us to switch your organisation to live mode, so that part stays a conversation. Pricing is published, with no quote needed.