TransactKit-Prov1.0.0
TransactKit-Pro webhooks
Configure Stripe webhook delivery and understand signature verification, durable claims, retries, deduplication, and supported events.
Updated
Configure local webhook delivery
Install and authenticate the Stripe CLI, start the application, then forward Stripe sandbox events to the webhook endpoint.
stripe listen --forward-to localhost:8080/api/stripe/webhookSTRIPE_WEBHOOK_SECRET=whsec_replace_meHandled events
- checkout.session.completed, checkout.session.async_payment_succeeded, checkout.session.async_payment_failed, checkout.session.expired
- refund.created, refund.updated, refund.failed
- customer.subscription.created, customer.subscription.updated, customer.subscription.trial_will_end, customer.subscription.deleted
- invoice.paid, invoice.payment_failed
- entitlements.active_entitlement_summary.updated
Durable processing and retries
The unchanged raw body and Stripe-Signature header are verified by stripe-java before persistence. A unique event ID is claimed in a short transaction, dispatch runs after the claim transaction is released, and feature writes plus final status use their own short transactions.
- PROCESSED and IGNORED are terminal and deduplicate redelivery.
- RECEIVED and FAILED claims remain retryable.
- Stripe network calls do not run while the claim row is locked.
- Domain writes roll back independently from the durable event claim.
Production operations
- Expose POST /api/stripe/webhook over HTTPS and keep it reachable by Stripe.
- Protect the endpoint secret and monitor Stripe delivery failures.
- Retain enough safe logging to diagnose retryable claims without logging signatures, raw bodies, secrets, or sensitive fields.
- Test duplicate, out-of-order, failed, and replayed delivery behavior in the host integration.