Case studyVerifyID · Aug 2024 to now
MitID and BankID age checks, inside the shops people already run
I've been VerifyID's CTO since the first commit. I built the platform it runs on, and it went to production the same month.
The live site

Fact sheet
The platform behind VerifyID's age and identity checks: the shop plugins and the Shopify app, MitID and BankID, the merchant dashboard, billing, and the API and docs.
- Client
- VerifyID, Denmark
- Through
- VerifyID
- Role
- CTO, full time, Denmark, remote
- When
- Aug 2024 to now
- Who else
- The platform is my build. The company is VerifyID's.
- Stack
- Python
- Flask
- MongoDB
- React
- PHP
- Shopify
- Next.js
- Link
- verifyid.dk
The problem
Denmark brought in new age check rules for webshops, in force from October 2024. A shop that sells something with an age limit has to know the buyer is old enough, and the way people in Denmark prove who they are online is MitID.
VerifyID set out to make that check one step inside the shop, using the ID people already have.
Constraints
- It had to live inside each shop. Shops run on Shopify, WooCommerce, WordPress, PrestaShop and more, so the check had to sit in each platform's own checkout or pages, not on a separate site.
- MitID goes through a certified broker. The platform talks to MitID through one.
- Not every buyer has MitID. Shoppers from outside Denmark usually don't, and later Sweden and Norway meant BankID.
What changed along the way
- Shopify started as a script in September 2024. By November 2024 it was a Shopify app with the check inside Shopify checkout itself, listed on the Shopify App Store.
- A shop decides what's protected: one product, a category or the whole store. Shoppers from outside Denmark can pass where the shop allows it.
- In October 2024 MitID moved to a different certified broker.
- The first checks only answered one question: old enough? In 2026 I added full identity checks for the cases that need to know who someone is, and I rebuilt the merchant dashboard in React.
How it works
- A shopper reaches a protected product, page or checkout.
- They log in with MitID through a certified broker, or with BankID in Sweden and Norway.
- The shop gets the answer: old enough, or, for full identity checks, who the person is.
- The merchant sees the record in the dashboard, exports it, and can send a compliance certificate to the authorities if they ask how the shop checks age.
- Developers can do the same through the REST API or the MitID API.
Drawing
Where VerifyID plugs in
Shop platforms
WordPress, WooCommerce, Shopify, PrestaShop, Wix, Magento
- leads to VerifyID platform
REST API and MitID API
docs.verifyid.dk
- leads to VerifyID platform
VerifyID platform
dashboard, certificates, partner panel, billing
- leads to MitID
- leads to BankID
MitID
Denmark, age or full identity
BankID
Sweden and Norway
Results
- The check runs inside Shopify, WooCommerce, WordPress, PrestaShop, Wix and Magento, and through the REST API and the MitID API, with MitID in Denmark and BankID in Sweden and Norway.
- The platform, and every email it sends, works in Danish, English, Swedish and Norwegian.
- VerifyID was named Identity Week Europe Start-up of the Year 2026.
See it live
VerifyID Shopify appapps.shopify.com/verifyid-mitid-aldersbekraeft
VerifyID API and developer docsdocs.verifyid.dk
- VerifyID merchant dashboardportal.verifyid.dksign in only
VerifyID WooCommerce and WordPress pluginsverifyid.dk/integrationer/woocommerce
VerifyID PrestaShop moduleverifyid.dk/integrationer/prestashop
BankID age checks for Swedenverifyid.dk/eid-api/bankid-sverige
Compliance certificatesverifyid.dk/compliance-certifikat
PermissionThis page uses my own work and what VerifyID publishes. It names no customers and carries no figures.