Webhooks -- Funktionsweise
Was sind Webhooks?
Webhooks sind automatische HTTP-Benachrichtigungen, die der Shop an externe Systeme sendet, wenn bestimmte Ereignisse eintreten (z.B. eine neue Bestellung, eine Stornierung, ein Versand). Anstatt dass das externe System regelmäßig nachfragen muss ("Polling"), wird es in Echtzeit informiert.
Ablauf
wide760 Erfolg, Zähler zurückgesetzt, Payload aus Log gelöscht Antwort nicht 2xx? --> Retry mit exponential Backoff (bis zu 5 Versuche) 10 aufeinanderfolgende Fehler? --> Circuit Breaker deaktiviert den Endpunkt]]>Verfügbare Events
Bestellungen (order)
Event | Beschreibung | Status |
|---|---|---|
| Bestellung wurde angelegt und freigegeben/bezahlt | Aktiv |
| Bestellung wurde storniert | Teilweise* |
| Bestellung wurde gepackt | Teilweise* |
| Bestellung wurde versendet | Teilweise* |
Bestellpositionen (order.line_item)
Event | Beschreibung | Status |
|---|---|---|
| Position wurde freigegeben (direkt oder nach Freigabe-Workflow) | Aktiv |
| Position wurde versendet | Teilweise* |
| Position wurde storniert | Teilweise* |
Entwurfsbestellungen (draft_order)
Event | Beschreibung | Status |
|---|---|---|
| Bestellung angelegt, wartet auf Zahlung oder Freigabe | Aktiv |
Benachrichtigungen (notification)
Event | Beschreibung | Status |
|---|---|---|
| Endpunkt durch Circuit Breaker deaktiviert | Aktiv |
*Teilweise = Event ist implementiert und wird in bestimmten Code-Pfaden ausgelöst, aber noch nicht an allen relevanten Stellen im Legacy-Code abgedeckt.
Payload-Detailgrade
Jeder Endpunkt kann einen von zwei Detailgraden konfigurieren:
Level | Beschreibung | Anwendungsfall |
|---|---|---|
Minimal | Nur IDs und Status | System lädt Daten selbst nach, minimaler Traffic |
Standard | Kernfelder (Preise, Adressen, Artikel-IDs) | Standardintegration, ERP-Anbindung |
Sicherheit
HMAC-SHA256 Signatur: Jeder Request wird mit einem pro-Endpunkt-Secret signiert (Header
X-Shop-Signature)HTTPS: Nur HTTPS-URLs sind erlaubt
Authentifizierung: Optional konfigurierbar (Basic Auth, Bearer Token, Custom Header)
Idempotency: Jeder Event-Versand hat einen eindeutigen Key -- doppelte Zustellung wird verhindert
Verschlüsselung: Secret und Auth-Zugangsdaten werden verschlüsselt in der Datenbank gespeichert
Client-Isolation: Alle Daten sind per
client_idisoliert -- kein client-übergreifender Zugriff möglich
Zuverlässigkeit
Retry: Bei Fehlern wird bis zu 5x wiederholt (nach 1min, 5min, 15min, 1h, 2h)
Circuit Breaker: Nach 10 aufeinanderfolgenden Fehlern wird der Endpunkt automatisch deaktiviert
Delivery Logs: Jeder Zustellversuch wird protokolliert (Event, Status, HTTP-Code, Dauer)
Speicheroptimierung: Payloads werden komprimiert gespeichert und bei erfolgreicher Zustellung gelöscht
Limits
Maximal 10 Endpunkte pro Shop
Timeout pro Request: 30 Sekunden
Wildcard-Subscriptions möglich (z.B.
order.*für alle Bestell-Events)
Glossar
Begriff | Erklärung |
|---|---|
Endpunkt | Eine konfigurierte Ziel-URL die Webhook-Events empfängt |
Event | Ein Ereignis im Shop (z.B. |
Payload | Die Daten die mit dem Event mitgesendet werden |
Secret | Ein pro-Endpunkt generierter Schlüssel für die HMAC-Signatur (verschlüsselt gespeichert) |
Circuit Breaker | Sicherheitsmechanismus der Endpunkte nach wiederholten Fehlern deaktiviert |
Idempotency Key | Eindeutiger Schlüssel pro Event-Versand zur Vermeidung doppelter Verarbeitung |
Detailgrad | Konfigurierbare Tiefe der mitgesendeten Daten (Minimal, Standard) |