Support

Hilfe und Dokumentation

API & Webhooks

Webhook Retry und Fehlerbehandlung

Überblick

Webhook-Empfänger sind mal nicht erreichbar – ein Deployment, ein Timeout, ein Ausfall. Kyvento verliert deshalb keine Ereignisse, sondern wiederholt fehlgeschlagene Zustellungen mit wachsenden Abständen über bis zu rund neun Tage. Dieser Artikel erklärt die Wiederholungs-Mechanik und wie Sie Ihren Empfänger robust bauen.

Was als Fehlschlag gilt

Eine Zustellung gilt als erfolgreich, wenn Ihr Endpoint innerhalb von 30 Sekunden mit einem HTTP-Status 2xx antwortet. Alles andere – 4xx, 5xx, Timeouts, Verbindungsfehler – zählt als Fehlschlag und löst Wiederholungen aus.

Der Wiederholungs-Plan

Kyvento unternimmt insgesamt sieben Zustellversuche: den ersten sofort, danach nach ungefähr

  1. 10 Minuten
  2. 1 Stunde
  3. 6 Stunden
  4. 24 Stunden
  5. 72 Stunden (3 Tage)
  6. 96 Stunden (4 Tage)

Der letzte Versuch liegt damit rund acht Tage nach dem ersten. Die Abstände wachsen bewusst langsam: Eine kurze Störung ist schon nach Minuten überstanden, ein längerer Ausfall bekommt trotzdem mehrere Tage Zeit, sich zu erholen. Erst wenn auch der letzte Versuch fehlschlägt, gilt die Zustellung als endgültig fehlgeschlagen – und erst dann benachrichtigt Kyvento Sie („Webhook-Zustellung erschöpft"). Ein kurzes Deployment übersteht Ihr Empfänger also folgenlos; die Ereignisse kommen später an, lediglich die Reihenfolge ist dann nicht garantiert.

Dieselbe Kurve für den E-Mail-Versand

Diese langsam ansteigende Wiederholungs-Logik gilt nicht nur für Webhooks, sondern für beide Zustellkanäle: Auch der E-Mail-Versand – etwa von Rechnungen oder Mahnungen – folgt exakt derselben Kurve. So bekommt jede vorübergehende Störung, ein kurzer Ausfall oder ein Greylisting Ihres Mailservers, mehrere Tage Zeit, sich von selbst zu lösen. Erst wenn alle Versuche erschöpft sind, benachrichtigt Kyvento den Account-Inhaber, dass eine Zustellung endgültig nicht möglich war.

Was nicht dieser Kurve folgt

Diese Kurve betrifft ausschließlich die Zustellung (Webhook und E-Mail) – sie gilt bewusst nicht für Zahlungen. Eine abgelehnte Kartenzahlung wird durch tagelanges Wiederholen nicht doch noch gedeckt; Zahlungen haben deshalb ihre eigenen, passenderen Abläufe:

  • Ihre eigene Kyvento-Abrechnung: Scheitert der Einzug Ihres Kyvento-Abos, greift statt dieser Kurve eine Schonfrist mit mehreren Erinnerungen, bevor der Zugang eingeschränkt wird. Details im Artikel „Wenn eine Kyvento-Zahlung fehlschlägt".
  • Zahlungen Ihrer eigenen Kunden: Überfällige Kundenrechnungen durchlaufen Ihr – pro Account konfigurierbares – Mahnwesen, nicht diese Zustell-Kurve. Siehe „Automatisches Mahnwesen aktivieren".

Automatische Deaktivierung

Scheitern 10 Zustellungen in Folge, deaktiviert Kyvento den Endpoint automatisch – ein dauerhaft toter Empfänger soll keine Ressourcen binden. Nach der Reparatur aktivieren Sie den Endpoint in den Webhook-Einstellungen wieder; in der Zwischenzeit entstandene Ereignisse werden dann nicht nachgeliefert. Prüfen Sie nach längeren Ausfällen den Datenstand daher per API-Abfrage.

Fehlerdiagnose im Blick

Zu jedem Endpoint zeigt der Bereich „Letzte Zustellungen" die jüngsten Zustellversuche mit Status, HTTP-Antwortcode und Zeitpunkt. Die vollständige Historie inklusive Antwort-Details liefert die API (GET /v1/webhooks/{id}/deliveries) – nützlich, wenn Ihr Empfänger Fehler produziert, die Sie lokal nicht reproduzieren können.

Empfänger robust bauen

  1. Schnell antworten, asynchron verarbeiten: Bestätigen Sie den Empfang sofort mit 2xx und verarbeiten Sie das Ereignis danach in einer eigenen Warteschlange – so laufen Sie nie ins 30-Sekunden-Timeout.
  2. Idempotent verarbeiten: Wiederholungen bedeuten, dass dasselbe Ereignis mehrfach ankommen kann. Deduplizieren Sie über die Ereignis-ID (id im Payload) – nicht über die Delivery-ID, die je Versuch neu ist.
  3. Signatur zuerst prüfen (siehe „Webhooks konfigurieren") – ungültige Anfragen mit 4xx ablehnen.
  4. Reihenfolge nicht voraussetzen: Durch Wiederholungen können Ereignisse in geänderter Reihenfolge eintreffen – verlassen Sie sich auf den Objektstand (data.object) statt auf die Abfolge.

Gut zu wissen

  • Die Wiederholungs-Zeitpunkte lassen sich je Endpoint per API anpassen, falls Ihr System ein anderes Muster braucht.
  • Der Verbindungstest („Test senden") läuft außerhalb des Wiederholungs-Systems – er zeigt den Sofort-Status, erzeugt aber keine Retry-Kette.

Nächste Schritte

  • Endpoints und Signaturen einrichten – siehe „Webhooks konfigurieren"
  • Verlorene Zeiträume per API nachladen – siehe „API-Dokumentation und Beispiele"