Überblick
Ovra sendet HTTPS-POST-Anfragen an von Ihnen registrierte URLs, wenn Events auftreten — Zahlungen, Intents, Cards, Agents, Streitfälle und mehr. Die Payloads sind JSON und enthalten einen Event-Namen sowie strukturiertedata.
Einrichtung
"*", um alle Events zu erhalten (in Produktion mit Vorsicht verwenden).
Event-Katalog
Die Payload-Struktur ist einheitlich: Der JSON-Body enthältevent, createdAt und data (eventspezifische Felder). Derselbe event-Wert steht zusätzlich in X-Ovra-Event.
Transactions
| Event | Wann |
|---|---|
transaction.completed | Erfolgreicher Checkout (Browser-Fill oder Ledger-Execute) oder Issuer-Settlement-/Refund-Flows, die einen Zahlungsdatensatz abschließen |
transaction.authorization | Kartenautorisierung vom Issuer-Webhook akzeptiert |
transaction.declined | Autorisierung abgelehnt (z. B. Policy-Simulation oder unzureichendes Guthaben in Testpfaden) |
Intents
| Event | Wann |
|---|---|
intent.created | Neuer Intent angelegt |
intent.approved | Genehmigt (Policy oder manuell) |
intent.denied | Abgelehnt |
intent.cancelled | Vor der Zahlung abgebrochen |
intent.expired | TTL abgelaufen ohne Abschluss |
Cards
| Event | Wann |
|---|---|
card.issued | Neue virtuelle Karte bereitgestellt |
card.funded | Agent-Funding hat das Ausgabelimit erhöht |
card.frozen | Karte eingefroren |
card.unfrozen | Karte reaktiviert |
card.closed | Karte dauerhaft geschlossen |
card.rotated | Karten-Credentials rotiert |
Agents
| Event | Wann |
|---|---|
agent.created | Neuer Agent angelegt |
agent.frozen | Agent eingefroren |
agent.unfrozen | Agent reaktiviert |
Streitfälle und Verifikation
| Event | Wann |
|---|---|
dispute.created | Streitfall eröffnet |
dispute.updated | Streitfall oder Nachweise aktualisiert |
dispute.resolved | Streitfall geschlossen (resolved oder rejected) |
verification.mismatch | Post-Checkout-Verifikation stimmte nicht mit dem Intent überein |
"*").
Header und Verifikation
Jede Zustellung enthält:| Header | Zweck |
|---|---|
X-Ovra-Event | Event-Name (wie event im JSON-Body) |
X-Ovra-Timestamp | Unix-Sekunden zum Zeitpunkt der Signierung der Anfrage |
X-Ovra-Signature | sha256=<hex> HMAC der Signaturzeichenkette (siehe unten) |
Content-Type | application/json |
.) und den rohen Request-Body (Bytes wie gesendet), und berechnen Sie HMAC-SHA256 mit Ihrem Webhook-Secret. Vergleichen Sie das Ergebnis mit dem Hex-Digest in X-Ovra-Signature (nach dem Präfix sha256=). Lehnen Sie Anfragen mit veralteten Timestamps ab, wenn Sie Replay-Fenster erzwingen.
Retry-Policy
Fehlgeschlagene Zustellungen (Nicht-2xx, Timeouts oder Verbindungsfehler) werden mit exponentiellem Backoff wiederholt:- Verzögerungen: 1 Minute, 5 Minuten, 15 Minuten, 1 Stunde, 4 Stunden
- Maximal 5 Versuche pro Zustellung
