Ablauf einer Verifikation
Stand: 18. August 2026
Eine Verifikation ist eine einzelne Frage an eine einzelne Wallet, mit begrenzter Lebensdauer. Sie gehört zu deinem Konto, trägt deine eigene Referenz und endet in genau einem Zustand.
Die vier Schritte
- Dein Server erstellt die Verifikation. Er nennt das Prüfprofil und optional eine eigene Referenz. Zurück kommen ID, Einweg-Token, Deeplink und Ablaufzeitpunkt.
- Deine Seite zeigt QR-Code oder Wallet-Button. Sie arbeitet nur mit ID und Einweg-Token, nie mit deinem API-Schlüssel.
- Die Kundin bestätigt in der Wallet. Sie sieht vorher, was abgefragt wird, und kann ablehnen.
- Dein Server holt das Ergebnis – per Statusabfrage oder Webhook – und gibt die Bestellung frei.
Schritt 4 ist der einzige, der zählt. Die Anzeige in Schritt 2 kann man manipulieren; sie dient dem Menschen vor dem Bildschirm, nicht deiner Entscheidung.
Die vier Zustände
| Status | Bedeutung |
|---|---|
PENDING |
Erstellt, noch nicht beantwortet. Ausgangszustand. |
SUCCESS |
Die Wallet hat geantwortet und der Nachweis war gültig. |
FAILED |
Die Prüfung ist gescheitert – abgelehnt, ungültig oder nicht erfüllt. |
EXPIRED |
Niemand hat innerhalb der Lebensdauer geantwortet. |
Ein Endzustand ist endgültig. Eine abgelaufene Prüfung wird nicht wieder
PENDING, und ein zweiter Versuch ist eine neue Verifikation mit neuer ID.
Status und Ergebnis sind zwei Dinge
status beschreibt den Verlauf, satisfied das Ergebnis:
SUCCESS+satisfied: true– die Bedingung ist erfüllt. Nur hier gibst du frei.SUCCESS+satisfied: false– die Wallet hat sauber geantwortet, aber die Bedingung ist nicht erfüllt. Technisch fehlerfrei, inhaltlich ein Nein.FAILED–satisfiedistfalseodernull; infailure_reasonsteht, woran es lag.PENDING,EXPIRED–satisfiedistnull.
Frag deshalb immer beide Felder ab. Der häufigste Integrationsfehler ist, nur
auf status zu schauen.
Lebensdauer
Eine Verifikation läuft nach kurzer Zeit ab. Das ist Absicht: ein Deeplink, der tagelang gültig bleibt, ist ein Deeplink, den man weitergeben kann.
Daraus folgt eine Regel für die Einbindung: erstelle die Verifikation erst,
wenn die Kundin sie braucht – also beim Öffnen des Prüfdialogs, nicht beim
Aufbau der Kassenseite. Wer sie zu früh erstellt, hat sie bei einem langsam
ausgefüllten Formular schon verloren, bevor jemand den QR-Code ansieht. Das
Widget nimmt dafür einen createSession-Rückruf; siehe
Widget.
Die eigene Referenz
client_reference ist ein freies Textfeld, das unverändert zurückkommt – dein
Haken, um eine Prüfung deiner Bestellung zuzuordnen. Eine Bestellnummer ist
richtig, eine E-Mail-Adresse falsch.
Setz dort keine Personendaten hinein. Der Rest des Systems ist darauf ausgelegt, keine zu kennen; dieses Feld ist die einzige Stelle, an der du welche hineintragen könntest, und dann stünden sie in unserer Datenbank. Siehe Datensparsamkeit.