---
title: "MitID and BankID age checks, inside the shops people already run"
description: "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."
url: /work/verifyid
markdown: /work/verifyid.md
case_study: true
updated: 2026-10-13
---

# MitID and BankID age checks, inside the shops people already run

VerifyID · Aug 2024 to now

> 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.

| Fact sheet | |
| --- | --- |
| Client | VerifyID, Denmark |
| 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](https://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.

## Where VerifyID plugs in

Left and middle: what I built. Right: the national eIDs it connects to.

- Shop platforms (WordPress, WooCommerce, Shopify, PrestaShop, Wix, Magento) → VerifyID platform (dashboard, certificates, partner panel, billing)
- REST API and MitID API (docs.verifyid.dk) → VerifyID platform (dashboard, certificates, partner panel, billing)
- VerifyID platform (dashboard, certificates, partner panel, billing) → MitID (Denmark, age or full identity)
- VerifyID platform (dashboard, certificates, partner panel, billing) → 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.

[VerifyID's timeline](/companies/verifyid.md)

_This page uses my own work and what VerifyID publishes. It names no customers and carries no figures._

## Contact

- Email: hi@namanbuilt.com
- LinkedIn: https://www.linkedin.com/in/naman-jain-hub

Horizon Beam is taking on new projects.
