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

Braintree · Decline codes

What does Braintree 2016 “Duplicate Transaction” mean?

Checked

Braintree 2016 “Duplicate Transaction” means this charge looks the same as one submitted just before, so it was declined to avoid charging the card twice. It is a soft decline. Check whether the first payment succeeded before trying again. If the shopper really wants a second identical order, a fresh attempt with different details can go through.

Type
Soft decline
Who declined
The processor's duplicate check
Retry
Only if it is a genuinely new purchase
Shopper action
Check whether the first payment went through
Merchant action
Check for an existing payment before charging again

What PlatformDTC does

PlatformDTC does not connect to Braintree. Stripe's matching code is duplicate_transaction. PlatformDTC gives every subscription renewal attempt its own idempotency key, so a retried request cannot charge the same renewal twice.

Why it happens

A double-click on the pay button, a page refresh during payment, or an integration that resends the same request.

What the store can do

Look up the order before charging again. Disable the pay button after the first click and use idempotent requests so a network retry does not create a second charge.

For developers

Braintree returns processor_response_code 2016 with processor_response_text “Duplicate Transaction” and processor_response_type “soft_declined” on the Transaction object.

Frequently asked questions

Was the shopper charged when Braintree returned 2016?
The duplicate was declined. The first attempt may have succeeded, so check your transactions.
How do I stop duplicate transaction declines?
Prevent double submits in the checkout and make retries of the same request idempotent.

Sources

Related

Payments library