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:

  1. Webhook-Log nach Partner-ID filtern.
  2. Sehen den Original-Webhook-Eintrag.
  3. 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:

  1. Eintrag öffnen.
  2. Result-Message zeigt: „Header mismatch".
  3. → Webhook-Secret im Provider-Account neu kopieren.

Reproduktion von Bugs

Bei seltsamem Verhalten eines Webhooks:

  1. Eintrag finden.
  2. Payload-JSON kopieren.
  3. Lokal über app:webhook:replay durchspielen (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


Technische Tiefen-Doku: ../025-webhook-audit-log.md, ../029-csv-export-webhook-replay.md, ../071-tenant-webhook-event-log.md