NewNo plan feeNo plan fee. Just 2.9% + $0.30 per card sale, and signing up is free.Try now →

Stripe · Decline codes

What does the Stripe duplicate_transaction decline code mean?

Checked

Stripe's duplicate_transaction decline code means a transaction with an identical amount and card information was submitted very recently. It protects the customer from being charged twice, for example after a double click or a page refresh. Stripe's advice is to check whether a recent payment already exists. If the first payment succeeded, the order is paid and nothing more is needed; if it did not, wait a moment before a genuine new attempt.

Type
Not a funds or card problem
Who declined
Flagged as a repeat of a very recent payment
Retry
No, until you have checked the earlier payment
Shopper action
Check your bank app or email for the first payment before paying again
Merchant action
Look for a recent matching payment first

What PlatformDTC does

PlatformDTC's checkout treats duplicate_transaction as never-retry and does not send it to a backup processor, which would risk exactly the double charge the code prevents. On renewals it usually means a second subscription on the same card was billed minutes earlier, so with Smart retry on it gets one retry 48 to 72 hours later, no longer "recent"; a second refusal asks the customer for a new payment method.

Why it happens

The same card and amount reached the bank twice within a short time: a double-tapped pay button, a refreshed confirmation page, or an integration that sent the same charge twice.

What the shopper can do

Before paying again, check whether the first payment went through. A pending charge in your banking app or an order confirmation email means you are already done.

What the store can do

Find the earlier payment in your dashboard. If it succeeded, fulfil that order. If your checkout regularly creates repeats, disable the pay button after the first tap.

Frequently asked questions

Was the customer charged twice?
Usually not. This decline stops the second, identical attempt. Check whether the first one succeeded.
Can I just charge again?
Only after confirming the earlier payment failed. Otherwise you may create the duplicate charge this code exists to prevent.

Sources

Related

Payments library