Duplicate transaction checking prevents transaction requests from accidentally processing more than once. This can happen if a customer refreshes your checkout page or clicks a button that issues a new API request. While duplicate checking can help prevent repeat transactions from going through, we recommend talking with your developers to see if changes can be made to your form to reduce the likelihood of this occurring (e.g. disabling the Submit button after it’s clicked).

Duplicate checking logic

A transaction will be Gateway Rejected by our duplicate checking logic if the following general and payment method-specific conditions are met:

General conditions

  • Amount is the same
  • Order ID is the same (if collected and if the transaction was not created by Braintree's recurring billing functionality)
  • Subscription ID is the same (if the transaction was created by Braintree's recurring billing functionality)
  • Previous transactions fall within the time window you specify in the Control Panel
  • Previous transactions were successful (i.e. status = Authorized, Submitted for Settlement, Settling, Settled, or Voided)

Payment method-specific conditions

  • Android Pay or Apple Pay – DPAN is the same
  • PayPal – payer email address is the same
  • Credit card – number and expiration date are the same

Configure duplicate transaction checking

Duplicate transaction checking is enabled by default with a 30-second window in both the sandbox and production environments. These settings can be updated or disabled by users with Account Admin privileges.

  1. Log into the Control Panel
  2. Navigate to Settings > Processing > Duplicate Transaction Checking
  3. Click the toggle to turn this feature on/off or click Options to adjust the time window

Still have questions?

If you can’t find an answer, contact our Support team.

← Back to Previous Page