Entwickler · Webhooks
Sieben Events, eine Zustell-Garantie
mandate.issuedNeues Mandat aktiv — mit Scope und Laufzeit.
mandate.revokedKill Switch ausgelöst — alle abgeleiteten Tokens sind ab sofort wertlos.
mandate.expiringMandat läuft in ≤ 7 Tagen ab (täglicher Sweep, 04:00 UTC).
verification.escalatedStep-up ausgelöst — escalation_id, Aktion, Betrag, Frist.
escalation.decidedMandant hat entschieden — approved/denied, bei approve mit Token-Referenz.
limit.threshold80 % des Monatslimits erreicht — proaktive Warnung.
consumption.recordedBetrag endgültig gebucht — mit Restkontingent.
Signatur prüfen
// Header: X-Mandact-Signature: sha256=<hex>
import crypto from "node:crypto";
function verifySignature(rawBody: string, header: string, secret: string) {
const expected = "sha256=" + crypto
.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}Zustell-Semantik
- ▸ At-least-once: Empfänger müssen idempotent verarbeiten (Event-ID dedupen).
- ▸ 4 Retries mit Backoff (1 s / 10 s / 60 s / 300 s) bei Nicht-2xx.
- ▸ Danach Dead Letter Queue — einsehbar und manuell re-deliverbar.
- ▸ Registrierung: POST /v1/webhooks mit url + events[]; Secret wird einmal angezeigt.