Online verification
A shop asks for an age check without a POS terminal. The shopper completes it with eID on our page; the shop gets pass or fail, never the shopper's identifier, name or birth date.
The flow
| Step | Who | Page |
|---|---|---|
| 1. Connect the shop to a tenant. Once per shop. | Tenant admin and the shop's app | Connecting a shop |
2. POST /api/v1/verifications returns a verifyUrl. | The shop's backend | Starting a Verification |
| 3. The shopper opens the link and signs in with eID. | The shopper | The shopper page |
| 4. One signed callback reports the outcome. | Our backend, to the shop's app | Result callbacks |
5. POST /api/v1/transactions/{id}/finalize binds a passed Verification to one order. | The shop's backend | Finalize |
Rules that hold throughout
- A connected shop is bound to exactly one shop host. It can only read and finalize the Verifications it started, even inside one tenant. Anything else answers 404.
- One Verification binds to one order. Finalizing the same order again is safe; a different order is refused.
- Test it on a test tenant first (see Test mode). Every answer carries
livemode; refuse a sale onlivemode: falsein production. - Errors follow Errors: Problem Details with a
typeslug, except Connect and the shopper routes, which answer a shorterrorstring.
Start with connecting a shop.