Documentation menu

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 CLI
stripe listen --forward-to localhost:8080/api/stripe/webhook
.env
STRIPE_WEBHOOK_SECRET=whsec_replace_me

Handled 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.