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
| Event | Aktuelles Backend-Verhalten |
|---|---|
checkout.session.completed | Prueft 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.updated | Uebernimmt 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.deleted | Sperrt 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.