# Integrating Todis

This folder has just one other file you need to integrate Todis:
[CLAUDE.md](CLAUDE.md), the full technical reference (endpoints,
request examples, error codes). Hand it as-is to your coding assistant
(Claude Code or equivalent): it has everything needed to write the
integration without guessing. This file explains the broad strokes for
a human, before handing over the detail.

## What Todis does

Todis verifies that a proof presented by a European digital identity
wallet (EUDI Wallet) is genuine: a user is of age, is who they say
they are, holds a valid driving licence. Your application sends a
request, Todis talks to the user's wallet, and hands back a clear
answer: true or false, with only the information you asked for. No
personal data is stored on Todis's side.

Why this matters: integrating the protocol yourself means
understanding OpenID4VP, handling two different credential formats
(SD-JWT VC and mdoc), resolving European trust registries, and keeping
up with evolving standards. Todis does that work for you.

## Three ways to integrate

**The hosted flow** is the recommended starting point. You create a
verification journey with a single request, Todis hands you back a
URL, you redirect your user there. Todis shows the QR code, handles
the waiting, and you get the result back through a webhook or by
polling the session. No UI to build.

**The session flow** fits if you already have your own verification
screen and just want to display the QR code yourself: Todis gives you
the request to encode, you handle the display, you poll the result.

**Direct verification** fits if you already run the whole dialogue
with the wallet some other way, and only want Todis to authenticate
the proof you received.

For most cases, the hosted flow is enough and gets you there fastest.

## Getting started

1. A license token, from [todis.eu/en/pricing.html](https://todis.eu/en/pricing.html)
   (free trial of 50 requests, no card required).
2. Hand [CLAUDE.md](CLAUDE.md) to your coding assistant along with
   your use case ("I want to check age of majority before granting
   access to my site", "I want to confirm identity when opening an
   account"...) and let it write the call.
3. For a first test, the hosted flow with the `age_over_18` shortcut
   is enough to see the whole journey working in a few minutes.

## Further reading

- The flow explained in detail, with a diagram: [todis.eu/en/workflow.html](https://todis.eu/en/workflow.html)
- Concrete use cases: [todis.eu/en/use-cases.html](https://todis.eu/en/use-cases.html)
- A question before you start: [contact@todis.eu](mailto:contact@todis.eu)
