Web- und Softwareentwicklung

Wie verhindert man doppelte Bestellungen, wenn ein Zahlungs-Webhook zweimal eintrifft?

Bei erneuter Zustellung desselben Zahlungs-Webhooks darf die Bestellerstellung nicht erneut ausgeführt werden. Nutzen Sie die Ereignis-ID des Anbieters gemeinsam mit einem eindeutigen…

Was enthält dieser Artikel?

Kurzantwort

Bei erneuter Zustellung desselben Zahlungs-Webhooks darf die Bestellerstellung nicht erneut ausgeführt werden. Nutzen Sie die Ereignis-ID des Anbieters gemeinsam mit einem eindeutigen Geschäftsschlüssel und speichern Sie den Verarbeitungsstatus atomar in der Datenbank. Eine erfolgreiche Webhook-Antwort und der tatsächliche Bestellabschluss sind verschiedene Schritte.

Ereignis-ID und Bestell-ID sichern unterschiedliche Ebenen

Die Ereignis-ID des Anbieters hilft, die erneute Zustellung derselben Meldung zu erkennen. Für dieselbe Zahlung können jedoch unterschiedliche Ereignistypen eintreffen. Die alleinige Prüfung, ob ein Ereignis bereits eingetroffen ist, reicht daher möglicherweise nicht. Auch die Zuordnung der Bestellung zur Zahlung und zum Geschäftsschlüssel braucht eine Eindeutigkeitsregel. Wiederholte Zustellung ist als regulärer, erwarteter Fehlerfall einzuplanen.

Erst die Datenbank abzufragen und danach einen Datensatz einzufügen, kann bei zwei gleichzeitigen Anfragen zu einer Race Condition führen. Schützen Sie die Verarbeitung mit einer Eindeutigkeitsbedingung und einer geeigneten Transaktionsgrenze. Unterscheiden Sie die Ereigniszustände „empfangen“, „in Bearbeitung“, „abgeschlossen“ und „fehlgeschlagen“. Ein vorhandener, unvollständiger Datensatz bedeutet nicht, dass der Vorgang erfolgreich abgeschlossen wurde.

Signaturprüfung und sichere Warteschlange

Wenden Sie vor den Geschäftsregeln das Signaturprüfverfahren des Anbieters an. Prüfen Sie in der offiziellen Dokumentation, welches Format des Anfragekörpers dafür erforderlich ist. Stellen Sie eine ungültige Anfrage nicht als normales Zahlungsereignis in die Warteschlange. Nach dauerhafter Speicherung eines gültigen Ereignisses können lange Aufgaben kontrolliert in einer Warteschlange laufen. Sensible Zahlungsdetails gehören nicht in Protokolle.

Das in der Stripe-Dokumentation beschriebene Zustellverhalten gilt als Referenz für Stripe-Integrationen; bei anderen Anbietern sind Wiederholungszeitraum und Signaturformat nicht zwangsläufig gleich. Das Projektangebot muss Anbieter, Ereignistypen, Wiederholungsregeln und Zuständigkeit für fehlgeschlagene Aufgaben nennen. Idempotente API-Anfragen bilden ebenfalls eine andere Schutzebene als die Webhook-Verarbeitung.

Abgleich ist ebenso wichtig wie das Verhindern von Duplikaten

Testen Sie doppelte und gleichzeitige Zustellung sowie erneute Zustellung nach einem Verarbeitungsabbruch. Ist die Zahlung abgeschlossen, aber keine Bestellung entstanden, muss eine Abgleichaufgabe eröffnet werden. Die Betriebsansicht soll Zahlung und Bestellung verbinden und zeigen, was eine Wiederverarbeitung verändert. Ziel ist nicht nur, Duplikate zu verhindern, sondern auch fehlende Bestellungen zu erkennen.

Checkliste für die Umsetzung

  • Wird die Webhook-Signatur geprüft?
  • Gibt es eine Eindeutigkeitsbedingung für die Ereignis-ID?
  • Ist der zahlungsbezogene Bestellschlüssel gesondert geschützt?
  • Kann ein abgebrochener Vorgang erneut verarbeitet werden?
  • Ist der Zahlungs- und Bestellabgleich sichtbar?

Häufige Fragen

Bedeutet eine erfolgreiche HTTP-Antwort, dass die Bestellung abgeschlossen ist?

Nein. Zustellungsannahme und Abschluss des Geschäftsablaufs sind getrennte Einträge.

Gelten bei allen Anbietern dieselben Wiederholungsregeln?

Nein. Maßgeblich sind der offizielle Vertrag und die Dokumentation des ausgewählten Anbieters.

Umfang und Grenzen

Dieser Ansatz ersetzt keine anbieterspezifischen Integrationstests. Zahlungs- und Erstattungsabläufe müssen vor dem Produktivstart in der Testumgebung des jeweiligen Anbieters überprüft werden.

Quellen und Aktualität

Quellenprüfung: 7. Oktober 2026. Versionen verlinkter Dokumente und Anbieterbedingungen können sich ändern. Prüfen Sie vor der Umsetzung die aktuelle Fassung der jeweiligen Quelle.

Zugehörige Leistung

Individuelle Software und mobile Anwendungen kennenlernen

B10 Digital Agency

Wie verhindert man doppelte Bestellungen, wenn ein Zahlungs-Webhook zweimal eintrifft?