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
- Declines: authorization decline codes — Braintree (PayPal)
- Transaction response object — Braintree (PayPal)
- Decline codes — Stripe
Related
- 2069 — PayPal blocked a duplicate order ID.
- 2017 — The cardholder asked the bank to stop this payment.
- 2018 — The cardholder told the bank to stop all recurring charges.
- 2019 — The card does not support this kind of transaction.
- 2020 — The bank refused the payment citing a violation.
- 2021 — The bank declined, possibly for a security or fraud concern.
- 2022 — The card was replaced; the bank has newer card details.