Skip to content
IRC-CodingIRC-Coding
WebhooksAPIEreignisbasierte KommunikationRetry StrategienWebhook SicherheitIdempotenz

Webhook Grundlagen 2026: Ereignisbasierte Kommunikation für APIs erklärt

Lerne Webhook Grundlagen: Aufbau, Sicherheit, Retry-Strategien, Idempotenz, Signaturen und Best Practices für zuverlässige ereignisbasierte APIs.

S

schutzgeist

5 min read
Webhook Grundlagen 2026: Ereignisbasierte Kommunikation für APIs erklärt

Webhook Grundlagen

Webhooks ermöglichen es Servern, Clients in Echtzeit über Ereignisse zu informieren, ohne dass der Client regelmäßig abfragen muss.

Kompakte Beschreibung

Webhooks sind HTTP-Callbacks, die ein Server an einen vom Client bereitgestellten Endpunkt sendet, wenn ein bestimmtes Ereignis eintritt. Sie werden genutzt, um über Zahlungen, Statusänderungen, Benachrichtigungen, Integrationen und viele weitere Ereignisse zu informieren. Im Gegensatz zur Polling-API, bei der der Client regelmäßig fragt, ob etwas Neues vorliegt, schiebt der Server mit Webhooks aktiv Daten an den Client. Eine gute Webhook-Implementierung berücksichtigt Sicherheit, Zuverlässigkeit, Idempotenz, Retry-Strategien und klare Fehlerbehandlung. Webhooks sind ein wichtiges Muster für ereignisbasierte Architekturen und moderne Integrationen zwischen Diensten.

Wichtige Komponenten

Ereignisquelle und Zielsystem

Die Ereignisquelle ist der Server, der das Webhook auslöst. Das Zielsystem ist der Client-Endpunkt, der das Webhook empfängt. Beide Systeme müssen über HTTP kommunizieren können, und das Zielsystem muss öffentlich erreichbar sein, falls der Server außerhalb des eigenen Netzwerks liegt.

Webhook URL registrieren

Der Client registriert eine URL bei der Ereignisquelle, an die Webhooks gesendet werden sollen. Diese URL wird oft über ein Dashboard oder eine API verwaltet. Es ist wichtig, dass die URL HTTPS verwendet und validiert wird, um Manipulationen zu vermeiden.

Payload und Event-Format

Der Payload ist der Inhalt des Webhooks, meist als JSON. Er enthält Informationen über das Ereignis, wie Event-Typ, Zeitstempel, betroffene Ressource und Details. Ein eindeutiges Event-ID Feld hilft, Duplikate zu erkennen.

Sicherheit und Signaturen

Webhooks sollten signiert werden, damit der Empfänger prüfen kann, dass die Nachricht tatsächlich von der erwarteten Quelle stammt. HMAC-SHA256 Signaturen über den Payload sind ein gängiges Verfahren. Der Empfänger verifiziert die Signatur mit einem gemeinsamen Geheimnis oder einem öffentlichen Schlüssel.

Idempotenz bei Webhooks

Webhooks können mehrfach gesendet werden, beispielsweise wegen Timeouts oder Wiederholungen. Der Empfänger muss Ereignisse anhand einer eindeutigen Event-ID idempotent verarbeiten. Gleiche Event-IDs sollten ignoriert oder verworfen werden, sobald sie bereits verarbeitet wurden.

Retry-Strategien

Wenn der Empfänger nicht mit einem Erfolgscode antwortet, sollte die Ereignisquelle das Webhook wiederholen. Wiederholungen sollten exponentiell zurückgehalten werden, um das Zielsystem nicht zu überlasten. Nach einer bestimmten Anzahl von Versuchen oder einem Zeitfenster sollte die Ereignisquelle aufgeben und das Ereignis als fehlgeschlagen markieren.

Erwartete Antwortcodes

Das Zielsystem sollte bei erfolgreichem Empfang mit 2xx antworten. 4xx Codes signalisieren, dass der Empfänger die Anfrage ablehnt oder nicht verarbeiten kann. 5xx Codes signalisieren ein vorübergehendes Problem, das eine Wiederholung rechtfertigt. Ein falscher Code kann dazu führen, dass Ereignisse fälschlicherweise wiederholt oder abgebrochen werden.

Timeouts

Die Ereignisquelle sollte einen Timeout definieren, nach dem sie die Anfrage als fehlgeschlagen betrachtet. Empfänger sollten Webhooks schnell bestätigen, längere Verarbeitungen asynchron im Hintergrund durchführen, um Timeouts zu vermeiden.

Webhook Logs und Monitoring

Beide Seiten sollten Webhooks loggen, inklusive Event-ID, Zeitstempel, HTTP-Statuscode und Antwortzeit. Monitoring hilft, Ausfälle, Verzögerungen und Fehlerhäufigkeiten zu erkennen. Dashboards für Zustellstatus sind besonders hilfreich.

Webhook Testing und Debugging

Für die Entwicklung eignen sich Tools wie ngrok, lokale Webhook-Tester oder Sandbox-Endpoints. Diese helfen, Webhooks lokal zu empfangen, zu inspizieren und zu debuggen, ohne öffentliche Server bereitstellen zu müssen.

Praxisbeispiel

Ein Payment-Dienst möchte seinen Kunden mitteilen, wenn eine Zahlung erfolgreich war. Der Kunde registriert eine Webhook-URL:

POST /api/v1/webhooks
Content-Type: application/json
Authorization: Bearer token

{
  "url": "https://shop.example.com/webhooks/payments",
  "events": ["payment.succeeded", "payment.failed"]
}

Sobald eine Zahlung erfolgreich ist, sendet der Payment-Dienst ein Webhook:

POST /webhooks/payments
Content-Type: application/json
X-Event-ID: evt-9876543210abcdef
X-Webhook-Signature: sha256=5d41402abc4b2a76b9719d911017c592

{
  "eventType": "payment.succeeded",
  "eventId": "evt-9876543210abcdef",
  "timestamp": "2026-07-01T12:34:56Z",
  "data": {
    "paymentId": "pay-123456",
    "orderId": "order-7890",
    "amount": 79.97,
    "currency": "EUR"
  }
}

Der Empfänger prüft die Signatur, speichert die Event-ID und verarbeitet die Zahlung. Er antwortet mit 200 OK, um die erfolgreiche Zustellung zu bestätigen. Bei einem Timeout oder 5xx Fehler wiederholt der Payment-Dienst das Senden nach exponentiellem Backoff.

FAQ: Webhook Grundlagen

1. Was ist ein Webhook?

Ein Webhook ist eine HTTP-Anfrage, die ein Server an einen Client sendet, um ein Ereignis zu melden. Im Gegensatz zu Polling werden Daten aktiv vom Server zum Client geschoben.

2. Was ist der Unterschied zwischen Webhooks und Polling?

Bei Polling fragt der Client regelmäßig beim Server nach neuen Daten. Bei Webhooks informiert der Server den Client aktiv, wenn ein Ereignis eintritt. Webhooks sind effizienter und nahezu echtzeitfähig.

3. Wie registriert man einen Webhook?

Der Client registriert eine URL und die gewünschten Ereignistypen bei der Ereignisquelle. Das geschieht oft über ein API-Endpunkt oder ein Dashboard.

4. Warum sollten Webhooks HTTPS verwenden?

HTTPS verschlüsselt die Übertragung und schützt vor Abhörung und Manipulation. Unverschlüsselte Webhooks sind ein Sicherheitsrisiko, da sensible Daten oder Signaturgeheimnisse offengelegt werden könnten.

5. Was ist eine Webhook Signatur?

Eine Webhook Signatur ist ein kryptografischer Hash über den Payload. Der Empfänger kann die Signatur prüfen, um sicherzustellen, dass die Nachricht von der erwarteten Quelle stammt und nicht manipuliert wurde.

6. Wie funktioniert Idempotenz bei Webhooks?

Jeder Webhook enthält eine eindeutige Event-ID. Der Empfänger speichert diese ID und verarbeitet Ereignisse mit derselben ID nur einmal. So bleibt die Verarbeitung idempotent bei Wiederholungen.

7. Was ist exponentieller Backoff?

Exponentieller Backoff bedeutet, dass Wiederholungen immer größere Zeitabstände haben. So wird das Zielsystem nicht überlastet und hat Zeit, sich von einem vorübergehenden Problem zu erholen.

8. Welche Antwortcodes sollte ein Webhook Empfänger zurückgeben?

Bei erfolgreicher Verarbeitung sollte ein 2xx Code zurückgegeben werden. 4xx Codes bedeuten, dass die Anfrage abgelehnt wird, 5xx Codes signalisieren ein vorübergehendes Problem.

9. Was passiert, wenn ein Webhook nicht zugestellt werden kann?

Die Ereignisquelle sollte das Webhook nach einer Retry-Strategie wiederholen. Nach einer definierten Anzahl von Fehlversuchen oder einem Zeitfenster wird das Ereignis als fehlgeschlagen markiert und optional an den Betreiber gemeldet.

10. Was ist ein Dead Letter Queue bei Webhooks?

Eine Dead Letter Queue speichert Webhooks, die nach mehreren Versuchen nicht zugestellt werden konnten. Sie ermöglicht eine spätere manuelle Prüfung oder Wiederholung.

11. Sollte Webhook Verarbeitung synchron oder asynchron sein?

Empfänger sollten Webhooks schnell bestätigen und aufwändige Verarbeitung im Hintergrund durchführen. Das verhindert Timeouts und ermöglicht eine zuverlässige Zustellung.

12. Wie testet man Webhooks lokal?

Lokale Webhooks können mit Tools wie ngrok, webhook.site oder lokalen Tunneln getestet werden. Diese leiten eingehende Anfragen an die lokale Entwicklungsumgebung weiter.

13. Was ist eine Event-ID?

Eine Event-ID ist ein eindeutiger Identifier für ein einzelnes Ereignis. Sie wird im Webhook übertragen und ermöglicht es dem Empfänger, Duplikate zu erkennen und Ereignisse nachzuverfolgen.

14. Welche Sicherheitsmaßnahmen sind für Webhooks wichtig?

Wichtige Sicherheitsmaßnahmen sind HTTPS, Signaturprüfung, IP-Whitelisting, Zeitstempelprüfung gegen Replay-Angriffe und die Validierung des Payloads. Das Zielsystem sollte nur vertrauenswürdige Quellen akzeptieren.

15. Was ist ein Webhook Replay?

Ein Webhook Replay ist das erneute Senden eines bereits ausgelösten Webhooks. Es wird genutzt, um nach einem Fehler oder bei Tests ein Ereignis erneut zuzustellen, ohne die ursprüngliche Aktion wiederholen zu müssen.

Weiter im API Lernpfad

Der nächste Artikel im API Lernpfad behandelt GraphQL API Entwicklung: Schemas, Resolvers, Subscriptions und Apollo — die Alternative zu REST mit flexibler Datenabfrage und typisiertem Schema.

Quellen

  1. https://web.dev/secure/signatures/
  2. https://www.rfc-editor.org/rfc/rfc9110
  3. https://ngrok.com/

Buchempfehlungen zur API-Entwicklung

Wenn Du Dich weiter mit Webhooks, API Design und Softwarearchitektur beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:

API-Entwicklung

Bücher über API-Design, REST, GraphQL, OpenAPI und API-Architektur

REST und HTTP: Entwicklung und Integration nach REST-Prinzipien von Stefan Tilkov

REST und HTTP: Entwicklung und Integration nach REST-Prinzipien von Stefan Tilkov

Bei Amazon ansehen

Affiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.

API-Design: Praxishandbuch für Java- und Webservice-Entwickler

API-Design: Praxishandbuch für Java- und Webservice-Entwickler

Bei Amazon ansehen

Affiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.

Microservices: Grundlagen flexibler Softwarearchitekturen von Eberhard Wolff

Microservices: Grundlagen flexibler Softwarearchitekturen von Eberhard Wolff

Bei Amazon ansehen

Affiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.

Zurück zum DEV Blog
Share:

Ähnliche Beiträge