112 — Webhook-Event-Log
Aktualisiert am 1. Juni 2026
112 — Webhook-Event-Log
Jeder eingehende Webhook (von Stripe, Digistore24, easybill, lexoffice, Custom, …) wird mit vollem Payload + Verarbeitungs-Status persistiert. Das ist Ihr Forensik- und Debugging-Werkzeug.
Wo finde ich es?
Tenant-Admin
Admin → „Webhook-Log" in der Sidebar — sehen Sie nur Webhooks Ihres eigenen Tenants.
Plattform-Admin
Superadmin → „Webhook-Events" — sehen alle Tenants.
Was wird geloggt?
Pro Webhook ein Eintrag mit:
| Feld | Inhalt |
|---|---|
| Tenant | Welcher Mandant |
| Provider | stripe, digistore24, … |
| Event-Type | Aus dem Payload extrahiert (z. B. checkout.session.completed) |
| External-ID | Provider-Referenz (für Lookup) |
| Status | siehe unten |
| Signature-Valid | Boolean — wurde die Signatur akzeptiert |
| Payload | Vollständiger Webhook-Body als JSON |
| Result-Message | Kurz-Erklärung des Ergebnisses |
| Result-Data | Weitere Details (Transaction-IDs, Errors) |
| Processing-Time | In Millisekunden |
| IP-Adresse | Absender-IP des Providers |
| Created-At | Eingangszeit |
Status-Werte
| Status | Bedeutung |
|---|---|
received |
Eingegangen, noch in Verarbeitung |
success |
Erfolgreich verarbeitet — Transaction angelegt |
skipped |
Bewusst übersprungen (z. B. nicht-affiliate-Sale, Duplikat) |
failure |
Fehler in der Verarbeitung |
invalid_signature |
Signatur-Validierung fehlgeschlagen — Sicherheitsrelevant! |
Filter & Suche
Liste mit Filtern:
- Provider (Dropdown).
- Status (Dropdown).
- Zeitraum.
- External-ID (Volltextsuche).
Detail-Modal
Klick auf Eintrag → öffnet Modal mit:
- Vollständigem Payload (JSON-formatiert mit Syntax-Highlighting).
- Verarbeitungs-Verlauf: was wurde gemacht.
- Verlinkte Transactions (falls erfolgreich).
- Error-Details (bei
failure).
Replay
Bei Status failure oder skipped gibt es einen „Replay"-Button:
- Sinnvoll für: Provider hat fehlerhafte Daten gesendet, später korrigiert.
- PartnerDesk verarbeitet den gespeicherten Payload erneut, ohne erneute Signaturprüfung.
- Neuer Audit-Eintrag mit Referenz zur ursprünglichen Event-ID (
replayOf).
Wichtig: Replay ist bei Status success nicht möglich — verhindert versehentliche Doppel-Verarbeitung.
Use-Cases
Sales-Provisions-Klärung mit Partner
Partner X behauptet, ein Sale sei nicht angerechnet worden. Sie:
- Webhook-Log nach Partner-ID filtern.
- Sehen den Original-Webhook-Eintrag.
- Verifizieren: war der Partner überhaupt im Webhook-Body? Wenn nicht → Customer-Lock oder Cookie-basierte Resolution gewann.
Provider-Konfigurations-Probleme
Webhook landet wiederholt als invalid_signature:
- Eintrag öffnen.
- Result-Message zeigt: „Header mismatch".
- → Webhook-Secret im Provider-Account neu kopieren.
Reproduktion von Bugs
Bei seltsamem Verhalten eines Webhooks:
- Eintrag finden.
- Payload-JSON kopieren.
- Lokal über
app:webhook:replaydurchspielen (CLI-Tool für Entwickler).
Retention
Webhook-Events bleiben unbegrenzt erhalten — sind oft auch Jahre später relevant (Rückabwicklungen, Audit-Klärung). Plattform-Admin kann manuell purgen, falls DB-Volumen zu groß wird.
Verwandte Kapitel
- 30 — Webhook-Übersicht
- 92 — Audit-Log — Geschwister-System für nicht-Webhook-Aktionen
- 113 — Failed-Messages — Geschwister für Messenger-Job-Fehler
Technische Tiefen-Doku: ../025-webhook-audit-log.md, ../029-csv-export-webhook-replay.md, ../071-tenant-webhook-event-log.md