# Stripe-Webhooks, die Retries überleben

> Stripe liefert dasselbe Event zweimal, außer der Reihe, um drei Uhr nachts. Der Handler ist nur dann korrekt, wenn nichts davon zählt.

Zahlungs-Webhooks sind der eine Ort, wo 'im Test hat es funktioniert' aktiv irreführt: Test-Events kommen einmal und geordnet, Produktion liefert regelmäßig Duplikate, Umstellungen und Verzögerungen. Die folgenden Muster sind der Unterschied zwischen einem Checkout, der gelegentlich doppelt liefert, und einem, bei dem 'dasselbe Event zweimal' ein Nicht-Ereignis ist.

## Die Signatur vor allem anderen verifizieren

Stripe signiert jede Zustellung; gegen das Endpoint-Secret prüfen, bevor man sie als vertrauenswürdig parst oder protokolliert. Ein unverifizierter Webhook ist ein öffentlicher POST-Endpunkt, der behauptet, Geld sei geflossen — genau das ist er ohne den Check.

## Event-ID speichern, einmal verarbeiten

Die Event-ID ist dein Idempotency-Key: vor der Verarbeitung einfügen und den Unique-Constraint die zweite Zustellung zum No-Op machen lassen. Gleiches gilt für die ausgelöste Erfüllung — erstellte Bestellung, eingereihte Mail, gewährte Berechtigung brauchen jeweils einen eigenen 'schon erledigt'-Eintrag.

## Zustand lesen, nicht den Event-Payload

Das Event sagt, etwas hat sich geändert; der Objekt-Fetch sagt, was jetzt ist. 'checkout.session.completed' über das Lesen der aktuellen Session zu behandeln — statt dem Payload zu trauen — ist immun gegen Umordnung, weil späte Events immer noch die neueste Wahrheit holen.

## Was bleibt

- Signatur verifizieren — der Webhook ist ein öffentlicher Endpunkt.
- Event-ID ist der Idempotency-Key; dedupliziere, bevor du handelst.
- Aktuellen Zustand holen; der Payload ist bei Ankunft alt.
- Duplikate und Umordnung sind normal, keine Edge Cases.

## Schlagwörter

Stripe, Webhooks, Payments, Idempotency

## Das bauen wir auch

https://dfieldsolutions.com/de/leistungen/full-stack

## Mehr aus dem Lab

- https://dfieldsolutions.com/de/labor/custom-software-cost.md — Was Custom Software wirklich kostet
- https://dfieldsolutions.com/de/labor/custom-vs-off-the-shelf.md — Custom oder von der Stange — der ehrliche Test
- https://dfieldsolutions.com/de/labor/first-90-days-retainer.md — Die ersten neunzig Tage eines Retainers, wie er wirklich läuft
- https://dfieldsolutions.com/de/labor/client-portal-vs-email.md — Warum Kunden eine Fortschrittsseite statt Status-Mails bekommen

---

Source: https://dfieldsolutions.com/de/labor/stripe-webhooks-idempotent
DField Solutions — Dunakeszi, Hungary — dezso@dfieldsolutions.com
Booking: see https://dfieldsolutions.com/en/contact
