Webhook

Ein Ereignis, das per POST an einen HTTPS-Endpunkt gesendet wird: Zustellberichte, eingehende Nachrichten und Statusänderungen, die der Empfänger prüfen, schnell bestätigen und in eine Warteschlange stellen muss.

Nur Definitionen – ein hier erklärter Begriff ist keine Leistung, die wir verkaufen.

Ein Webhook ist ein HTTPS-Callback, der ein Ereignis an eine von Ihnen registrierte URL sendet, etwa einen Zustellbericht oder eine eingehende Nachricht. Der Empfänger prüft die Signatur, bestätigt mit 2xx und stellt die Verarbeitung in eine Warteschlange.

Der Empfänger behandelt Duplikate und Ereignisse in falscher Reihenfolge; ein Webhook ist eine Push-Zustellung.

Prüfen, bestätigen, einreihen

Der Anbieter sendet einen POST, wenn ein Ereignis eintritt, und Ihr Endpunkt gibt zur Bestätigung einen 2xx-Status zurück. Die Nutzdaten sind meist JSON mit einem Ereignistyp und einer Kennung. Der Anbieter kann sie signieren; prüfen Sie die Signatur anhand des unveränderten Rohinhalts mit dem gemeinsamen Geheimnis und weisen Sie Anfragen außerhalb des Replay-Fensters zurück.

Prüfen Sie zuerst, speichern Sie das unveränderte Ereignis, geben Sie 2xx zurück und verarbeiten Sie den Rest asynchron. Langsame Endpunkte lösen Wiederholungen aus. Die Zustellung erfolgt meist mindestens einmal, und die Reihenfolge bleibt nicht erhalten; deduplizieren Sie daher anhand der Ereignis-ID. Führen Sie eine Dead-Letter-Queue für Ereignisse, die sich nicht verarbeiten lassen. Die Erklärung SMPP im Vergleich zu HTTP vergleicht Callbacks mit sitzungsbasierter Zustellung.

FAQ

Was ist der Unterschied zwischen einem Webhook und einer API?

Eine API wird in der Regel vom Client abgefragt. Ein Webhook wird vom Anbieter gesendet, wenn ein Ereignis eintritt, und die meisten Plattformen bieten beides an.

Warum kommen Ereignisse doppelt an?

Die Zustellung erfolgt meist mindestens einmal, daher kann eine Wiederholung ein bereits verarbeitetes Ereignis duplizieren. Deduplizieren Sie anhand der Ereignis-ID.

Welchen Status sollte ich zurückgeben?

Einen 2xx-Status, sobald das Ereignis gespeichert oder in die Warteschlange gestellt ist. Wer früher 2xx zurückgibt, riskiert den Verlust des Ereignisses, wenn der nächste Schritt fehlschlägt.

Mehr erfahren

Quellen

  1. IETF RFC 9110: HTTP Semantics