Guide
Customers Charged Twice? Why Duplicate Charges Happen and How to Stop Them
Double charges, duplicate orders and pending holds that look like two payments: what causes them, how to refund safely and how to fix your checkout so it never happens again.
Short answer: Most “double charges” are either a pending authorization that will drop off in a few days, or a checkout that let the customer pay twice. Check whether both charges actually went through, refund the true duplicate, then fix the checkout so a second submit can’t create a second charge.
Common causes
- Authorization holds: the card was authorized and then charged, and the hold looks like a second charge until the bank releases it.
- Double clicks or slow pages: the customer pressed Pay twice.
- Retries: a website or app retried a payment after a timeout with no duplicate check.
- Duplicate order events: an order system created two orders from one payment.
- Two cards: a declined card was retried with another one, and both went through.
What to do now
- In your payment dashboard, check whether both payments succeeded or one is only authorized.
- Refund the true duplicate right away and tell the customer when to expect the money back.
- Note the time between the charges. Seconds apart usually means a double submit.
Fix the cause
- Disable the pay button after the first click and show progress.
- Use idempotency keys so a retried request can’t create a second charge.
- Make order handlers ignore payment events they have already processed.
- Set an alert for duplicate charges.
We fix checkouts and payment integrations remotely. See Stripe integration and payment gateway integration.
Frequently asked questions
How long does a pending charge take to drop off?
Usually a few business days, depending on the customer’s bank. The business can often release an authorization early by canceling it.
Will refunding a duplicate charge cost me fees?
Many processors don’t return the original processing fee on a refund, which is one more reason to stop duplicates at the source.