Check Stripe state
Check not only Checkout Session, but also Payment Intent. Sometimes the session is canceled and the user pays later.
- succeeded, failed, processing, canceled.
- duplicate payments by email and amount.
- receipt email status.
coins and webhook
Workflow for duplicate charges, failed payments, processing payments, canceled checkout, and webhook delays.
Goal: do not run paid results without payment confirmation and do not leave a paying client without access.
what to ask first
Check not only Checkout Session, but also Payment Intent. Sometimes the session is canceled and the user pays later.
If Stripe succeeded but Supabase did not update, this is a webhook gap. Do not make the client pay again.
After confirming payment, restore reading access, send email, and add an internal note.
reply templates
Stripe shows processing.
Checking payment status
Your payment currently appears as processing. Please do not pay again while we check status. If it confirms, we will restore scroll access; if not, we will suggest the next safe step.
There are two succeeded payments for one scenario.
Checking possible duplicate charge
I see there may have been a repeated payment attempt. We will check payments by your email and, if duplicate charge for the same scroll is confirmed, process the correction according to the Refund Policy.
red flags
closed when
related doors