Dokumentation

Stripe-Webhook (eingehend)

Interne Stripe-Webhook-Verarbeitung fuer Checkout-Aktivierung, Tarifwechsel und geloeschte Abonnements.


Parsurai stellt einen internen Stripe-Webhook-Empfaenger fuer Abrechnungsereignisse bereit. Dies ist getrennt von den ausgehenden Kunden-Webhooks, die Ihre eigenen Systeme ueber Extraktions-, Review- und Workflow-Ereignisse benachrichtigen.

Stripe-Webhook-Endpunkt

POST /webhooks/stripe

Stripe muss den Header Stripe-Signature senden. Anfragen ohne Signatur oder mit ungueltiger Signatur erhalten 400.

Lokale Entwicklung

stripe listen --forward-to localhost:8000/webhooks/stripe

Setzen Sie das ausgegebene Signing Secret in der Backend-Umgebung:

STRIPE_WEBHOOK_SECRET=whsec_your_local_signing_secret

Verarbeitete Events

EventAktuelles Backend-Verhalten
checkout.session.completedPrueft die Bindung der Unternehmensangaben und den berechneten Tarif erneut, verlangt nutzbare Kunden- und Abonnement-IDs, gleicht das Event mit dem aktuellen nicht-terminalen Stripe-Abonnement ab und erstellt oder reaktiviert danach das bezahlte Konto. Dabei wird stripe_subscription_id gespeichert; bei einem erneuten Abschluss wird auch eine vorgemerkte Kontoloeschung aufgehoben.
customer.subscription.updatedUebernimmt einen Tarifwechsel aus Stripe nur, wenn die Abonnement-ID des Events weiterhin dem aktuell im Konto gespeicherten Abonnement entspricht. Verzoegerte Updates eines alten Abonnements werden ignoriert.
customer.subscription.deletedSperrt den Zugriff und plant die Kontoloeschung nach 30 Tagen nur, wenn das Event zum aktuellen Abonnement des Kontos gehoert. Auch der Loeschzeitpunkt wird abonnementgebunden geschrieben, sodass ein verspaetetes Event eines alten Abonnements nach einer erneuten Anmeldung keine Loeschung planen kann.

Die Checkout-Aktivierung erzeugt keinen API-Schluessel. Falls die E-Mail noch verifiziert werden muss, erstellt oder verwendet der Aktivierungsablauf ein bestehendes Verifizierungstoken; die API-Schluesselerstellung bleibt Teil des E-Mail-Verifizierungs- und Schluesselverwaltungsablaufs.

Andere Stripe-Events werden mit {"received": true} bestaetigt, loesen aber keine Kontoaenderung aus. Verarbeitete Events, die veraltet sind oder nicht zum aktuellen Abonnement passen, werden ebenfalls bestaetigt, ohne den Kontostatus zu aendern.

Sicherheit

Der Webhook prueft die Stripe-Signatur mit STRIPE_WEBHOOK_SECRET, bevor das Event geparst wird. Umgehen Sie die Signaturpruefung weder lokal noch in Produktion.