Skip to content

Preventing Duplicate Payments

When a customer reports being charged twice, check whether the two bank entries are a hold and a completed charge, or two actual separate payments. Do not refund a transaction solely from a screenshot of pending bank entries.

About this path

Level
Intermediate
Reading time
About 4 minutes
Sections
3
Account needed
No

Written for store owners, builders, and designers refining high-performance ecommerce stores.

Foundation · 2 min

What you need to know

Why was a customer charged twice?

Two bank entries may be a hold and a completed charge, or they may be two actual payments. Check distinct provider transaction IDs, status, amount and time before diagnosing a duplicate. Do not refund a transaction solely from a screenshot of pending bank entries.

How do duplicate ecommerce payments happen?

Duplicate payments can follow repeated clicks, browser reloads, a lost response or an unsafe switch to another gateway. Duplicate orders or notifications can also appear without a second charge. Match payment records to orders to distinguish the problem.

How do I prevent duplicate payment submissions?

Use a clear processing state plus server-side protection that recognizes repeat submissions of the same intended purchase. Preserve the original payment reference through timeouts. A disabled button helps the customer, but cannot protect against every repeated network request.

What should happen if a customer clicks Pay twice?

The customer should see progress and the eventual result for the same attempt. Repeated clicks must not create new payment attempts indiscriminately. If processing stalls, show a status-check or support route rather than inviting blind retries.

Foundation · 2 min

Frequently asked questions

How should duplicate gateway callbacks be handled?

Verify the callback, recognise the previously processed payment and avoid performing its action twice. Also account for events arriving out of order. If two distinct successful charges exist, investigate them as separate transactions rather than ignoring one as a duplicate message.

How should accidental duplicate payments be refunded?

Confirm two actual collected payments for one intended purchase, then refund the extra transaction through the provider’s supported process. Record the refund reference, notify the customer and monitor completion. Check for an existing refund or dispute first to avoid returning the same money twice.

Ready for the next stage?

Continue through the Academy sequence to apply advanced optimization and scaling techniques.

Start Advanced techniques