Schnellstart
Stand: 18. August 2026
Ziel: eine erfolgreiche Prüfung, ausgelöst von deinem Rechner, ohne dass du eine Zeile in deinen Shop einbaust. Danach weisst du, dass Schlüssel und Verbindung stimmen, und kannst die eigentliche Integration angehen.
Dieser technische Schnellstart beschreibt die E-ID-Testintegration. Für die aktuelle Ausweisprüfung im Shop nutze die WooCommerce-Anleitung.
Für das folgende E-ID-Beispiel brauchst du die swiyu-Wallet auf dem Handy und eine Beta-E-ID darin. Wie du beides bekommst, steht bei eid.admin.ch.
1. Schlüssel holen
Melde dich im Dashboard an und erzeuge unter Schlüssel einen API-Schlüssel. Er wird genau einmal angezeigt. Kommt er dir abhanden, ziehst du ihn zurück und erzeugst einen neuen – ein Schlüssel lässt sich nicht wieder anzeigen.
Aktiviere vor der ersten Prüfung dein Abo im Kundenkonto. Die einmaligen 14 Testtage beginnen beim ersten Abo-Abschluss.
Behandle ihn wie ein Passwort: nicht ins Repository, nicht ins Frontend, nicht in ein Ticket.
2. Verifikation erstellen
curl -X POST https://api.valyda.ch/v1/verifications \
-H "Authorization: Bearer $VALYDA_KEY" \
-H "Content-Type: application/json" \
-d '{"profile": "age-over-18", "client_reference": "test-1"}'
Die Antwort:
{
"id": "3f7c…",
"status": "PENDING",
"profile": "age-over-18",
"deeplink": "swiyu-verify://…",
"expires_at": "2026-07-30T12:34:56.000Z",
"public_token": "…"
}
Drei Felder sind wichtig. Der deeplink führt die Wallet zur Prüfung – auf
dem Handy als Link, auf dem Desktop als QR-Code. Das public_token ist das
Einzige, was du dem Browser geben darfst. Die id brauchst du für die
Statusabfrage.
3. QR-Code anzeigen
Den QR musst du nicht selbst zeichnen:
https://api.valyda.ch/public/verifications/<id>/qr.svg?token=<public_token>
Öffne die URL im Browser und scanne den Code mit der swiyu-Wallet. Die Wallet zeigt an, was abgefragt wird, und fragt nach deiner Zustimmung.
4. Ergebnis abholen
curl https://api.valyda.ch/v1/verifications/<id> \
-H "Authorization: Bearer $VALYDA_KEY"
{
"id": "3f7c…",
"profile": "age-over-18",
"status": "SUCCESS",
"satisfied": true,
"failure_reason": null,
"client_reference": "test-1",
"completed_at": "2026-07-30T12:31:02.000Z"
}
status ist SUCCESS und satisfied ist true – die Person ist mindestens 18.
Ein Geburtsdatum ist nirgends aufgetaucht, weder in der Antwort noch in unserer
Datenbank. Genau das ist der Punkt.
Prüfe immer beides.
status === "SUCCESS"allein genügt nicht: es bedeutet, dass die Prüfung technisch durchgelaufen ist. Ob die Bedingung erfüllt war, steht insatisfied. Wer nur den Status prüft, lässt jemanden durch, dessen Wallet sauber geantwortet hat – mit „nein".
Weiter
- In WooCommerce brauchst du nichts davon selbst zu bauen: WooCommerce
- Für eine eigene Integration: Widget einbinden und Webhooks statt Abfragen im Sekundentakt
- Alle Felder und Fehlerfälle: API-Referenz