Intentkiln

Last verified 2026-07-13

stripe webhook delivered multiple times duplicate order

The actual problem

Idempotency gaps cause double fulfillments or double unlocks after webhook retries.

Do this

  1. Key fulfillment on event.id (or payment_intent id) in a durable store.
  2. Return 200 only after idempotent write succeeds.
  3. Replay a test event twice in Stripe CLI; confirm one side effect.
  4. Keep a demo unlock path for local without forwarding.

Tools for this job

Related intents

Also from Cashkiln

Deep-dive report — $29

Self-serve checklist expansion for this query family. PayPal Checkout. No call.