Woo Braintree Payment – full feature list

Basic options5 Screenshots
  1. UI card form customization

This feature allows you to customize some user interface (UI) elements that appear on the credit card form. By default the payment method name (ie. Credit card) and the payment method description are the only fields that you may customize. However, the enhanced options allow you to make some additional tweaks (see Accepted Cards, Display Card Icons and Customize card CSS).

  1. Testing on Sandbox

This feature can be used to test both, the Woo-Braintree Payment and the Braintree payment gateway functionality in the sandbox. The Braintree’s sandbox is an entirely separate environment from your production account. Nothing created in the sandbox (e.g. processing options, recurring billing settings) will transfer to production. Your login information, merchant ID and API keys will also be different.

We recommend our customers to test the whole setup before going live. It’s a great way to identify potential issues which you or the plug-in are not aware of, and it also gives you ample opportunities to get familiar with Braintree.

  1. Production mode

This feature allows you to set the Woo Braintree Payment to work with your production Merchant ID and API keys. Comparing with the Testing on Sandbox which allows you to make test/fake payments in this mode the payments are for real. This is the mode that you want to use in order to allow your customers make real payments for real goods and services you sell.

Likewise the Sandbox environment this one also has its own Merchant ID and API keys so after you switch in this mode you have to enter the production environment credentials.

It is important to test your production account with a couple of low-value transactions using various payment methods and allow the transactions to settle. The funds should successfully make their way into your bank account a few days later.

The production environment only works with real payment methods, so those used in the sandbox will not work. This means that any test transactions that you allow to settle in production will actually take funds from the payment methods used, and you’ll be assessed the applicable transaction fees. So, be sure to use reasonable values and run a limited number of transactions.

  1. PCI Compliance badge

This option allows you to display a PCI Compliance badge right under the card checkout form. You may use either the built-in PCI compliance image or you may specify any custom URL that target a valid image.
Besides this image you may also display a PCI Compliance description (eg. “100% PCI compliant”) which may be entered in HTML format.

Tips: if you don’t want to display either the badge or its description or even both then just enter an empty URL and/or description.

  1. Reset settings

This option allows you to clear your custom settings by resetting the settings to their factory defaults. By doing this you will lose any customization you created and instead will start with the plugin’s default settings.

Custom card12 Screenshots
  1. Card validation

This feature allows a card number, its date expiry and CCV number to be validated on the client-side (on client’s browser) before they are sent to the Braintree gateway. By doing this there are eliminated the unnecessary round-trips to the Braintree gateway just to find out later that the card number is invalid or its date is already expired. If a field is not valid then the user will notice (1) a field shake while trying to submit the order and (2) the field gets focus and the checkout form is not submitted.

By validating the card number the plug-in does not check if the card number is a real card number issued by a real card company or not. Instead it checks if the card number respects a certain numbering pattern made public by its issuing company. The same for the CCV. As for the expiry date it is only verified if the date is before the current date or not.
The following cards are supported: VISA, American Express, JCB, MasterCard, Maestro, Diners Club and Discover.

  1. CCV Validation

This feature allows you to require the customer to enter his/her Card Code Verification (CCV). You may however opt not to ask this information. For example if your web shop only welcomes card type X/Y and you are not concerned about payment security issues for these card types then you may want to disable the request of CVV input for your card checkout form.

Please note that without sending this information to the Braintree gateway it is impossible to settle automatically a sale transaction (see the Submit for Settlement). Usually a transaction is not considered safe if the card owner does not know/provide this security code because “anyone” could know the card number but it is considered not likely to know both, the card number and the Card Code Verification (CCV) also known as Card Security Code (CSC).

  1. Accepted Cards

This feature allows you to specify which cards are supported independently of the Braintree account settings. Obviously you should not use here cards not supported by Braintree for your merchant account.

By using the option Display Card Icons your customer can see before entering their card info which card brands are welcome and which are not. This will save you, your customer and nonetheless the Braintree the unpleasant “this card is not supported” situation.

  1. Display Card Icons

This feature adds a card badge on the card checkout form to provide a hint about which cards brands are supported by your web shop. The shown cards depends on the cards defined within the Accepted Cards option.

You may position the card badge either on line with the payment method title or under the payment method description.

  1. Customize card CSS

Besides UI card form customization this feature allows you to customize the appearance of the card checkout form and/or its fields with the aids of the CSS attributes.
What this feature does it takes the CSS you defined for a checkout element and use it inline when generating the respective HTML element.

The following checkout elements may be customized:

  • the card form (the DIV element)
  • the card number input
  • the card expiry input
  • the card CCV input
  1. Card icon position

This option allows you to set the card badge position by swapping its position with the Braintree badge.

If you set the card icon position on  top (ie. near the payment method title) then make sure that the card icons fit in the remaining space otherwise they will wrap on the next row.

Tips: if you need more space near the payment method title try to use a short name for the payment method (eg. “Card” instead of the default “Credit card”)
  1. Display Braintree badge

This option allows you to set the visibility of the Braintree badge. We recommend you to leave this option ON. When clicked, your customers will see this verification to better communicate your dedication to credit card security and industry compliance requirements.

The badge position is influenced by the option Card icon position. If you chose the card icon position on top then the Braintree badge will be shown under the payment method description and vice-versa.

At the moment this article was written the Braintree had 4 different badges: 2 on white background and 2 on dark background. By default the badge that will be shown is the following:


You may change the default Braintree badge with the aid of the Braintree badge URI option.

  1. Braintree badge URI

This option allows you to choose which Braintree badge to show. You may opt for any of the Braintree’s online badges.
Check the Braintree badge page.
Please note that regardless which badge you will choose it will be scaled down to a height=24px.

Enhanced options7 Screenshots
  1. Additional Merchant ID

The default configuration of Braintree allows you to present your products, to sell and to settle the funds in your local currency only.

Example: you live in Singapore where the local currency is SGD. Your default Braitnree account will be in SGD. Your products should be presented only in SGD because this is the currency that the Braintree Sale Transaction will use.

However, with few exceptions the most merchants sell products in any other currency than their local currency. Nevertheless, they may sell products using multiple currencies. For these situations the Braintree allows different merchant account IDs, one for each additional currency. For instance, you may have:

  • a `yourEURaccount` for your EUR transactions
  • a `yourUSDaccount` for your USD transactions
  • a `yourSEKaccount` for your SEK transactions, etc.

This feature allows you to define any of these additional merchant account IDs. It sees what currency your WooCommerce order has and when creating the Braintree payment transaction it will use the currency specific additional merchant account ID. If no additional merchant account ID is found for your order’s currency then your default Braintree merchant account will be used instead. Read more.

This option will allow you to define additional accounts only for those currency supported by WooCommerce.

  1. Card statement descriptor

This feature allows you to set the card statement descriptor that is passed to Braintree when a sale transaction is made.
A descriptor is what your customers will see on their statement when they make a purchase through your website. Ultimately, a customer’s bank will determine exactly how your business’s descriptors will appear on customer statements.

Please note that the card statement descriptor length is fixed. Read more here.

  1. Submit for Settlement

This feature allows automatic settling of the funds resulted from a authorized Braintree sale transaction. After a sale transaction was validated and authorized it will eventually expire. In order to collect funds, you need to submit for settlement. You can do that manually in the Braintree Control Panel.

When the transaction is settled the money moves from your customer’s bank through your merchant account. Read more about Transaction Life Cycle.

  1. Debug Mode

This feature allows you to capture the responses received from the Braintree gateway when sending a payment transaction request. Usually you would want this when you want to debug the way that this plug-in works.

The debugging works at two different levels: on the server-side where the payment requests/responses are handled and on the client-side from the “Place Order Now” click to the “Thank you for order” post-order notice. At the server level the debug messages are stored in a dedicated log file that usually can be found at wp-content/uploads/wc-logs/Braintree-xxxxx.log. At the client level the debug messages are only printed in the browser console so after the browser is closed they are not stored anyware. If you don’t know what the browser console is and how to activate it then just search “browser console firefox” on Google (or Chrome, Internet Explorer, Opera) and you will find many good articles explaining that.

  1. Card regex patterns

This features allows you to define the regular expression (regex) pattern to be used while validating the card information on client-side. The advantage of this feature is that (1) you have a fine grained control of what cards numbers are accepted or not and (2) the validation is made on the client side (on user’s browser) which reduces the unnecessary round-trips to the Braintree gateway in case of erroneous user input. Regardless of how this validation is done the Braintree will ALWAYS make their validations (which is what we all want, don’t we?).

When a card number matches a specific pattern it is considered that the card has that particular type (ie. if it matches the VISA pattern then it is regarded as `issued by VISA`). The implication of this is that the card CCV length will be challenged against the respective card issuer CCV length.

Please note that if the card number matches two or more different card patterns then the first one (in the order of its definition) will be regarded as a match.

PayPal button7 Screenshots
  1. PayPal payment

This feature allows the merchant to accept PayPal payments. The PayPal button is integrated in the Custom UI card form but also in the Hosted Fields card form. Please note that the Drop-in UI card form has a built-in PayPal button (depends on your Braintree account setup).

The PayPal button integrates both the Braintree Vault checkout flow as well the PayPal checkout flow.


Typical use cases for the Checkout With PayPal flow:

  • Checkout from Cart/Product pages
  • Checkout page replacement
  • As a payment source

Typical use cases for the vaulted payment flow:

  • Faster payments for repeat customers
  • Subscriptions
  • Recurring billing (e.g. automatic top-up or usage based charges)
  1. PayPal button label

This option allows you to customize the label shown above the PayPal button. Basically this label should tell your customer that he/she is going to pay via PayPal.

  1. PayPal button opacity

This option applies an opacity effect over the PayPal button that basically should tell your customer that PayPal is merely an alternative payment option and not the one that you recommend. While the mouse is over the button the opacity is completely removed so the customer would know that this button works and that it is not there only as decoration.

  1. PayPal checkout flow

This option tells the PayPal button what checkout flow to inherit. There are only two supported checkout flows:

Typical use cases for the Checkout With PayPal flow:

  • Checkout from Cart/Product pages
  • Checkout page replacement
  • As a payment source

Typical use cases for the vaulted payment flow:

  • Faster payments for repeat customers
  • Subscriptions
  • Recurring billing (e.g. automatic top-up or usage based charges)

Please note that PayPal checkout flow is supported only on certain countries. Customers from other countries countries not mentioned in the previous link will be redirected to a PayPal-branded checkout page. Besides the mentioned countries limitation the PayPal checkout flow limits the supported payment’s currency.

  1. PayPal lightbox merchant name

This option allows you to define the merchant name as it will appear on the PayPal lightbox while  using the PayPal checkout flow.

  1. PayPal flow locale

This option allows you to set the locale (ie. language, regional settings) you want to use on the PayPal checkout flow. Please note that this option is supported only on certain countries. Customers from other countries countries not mentioned in the previous link will be redirected to a PayPal-branded checkout page.

PCI DSS support4 Screenshots
  1. Drop-in UI

This option enables the usage of the Braintree’s PCI DSS ready Drop-in UI card form instead of our Custom UI form.

The main advantages of using the Drop-in UI card form on your checkout page:

  • easy to maintain PCI compliance with Drop-in
  • it is eligible for SAQ-A since Braintree hosts the form that captures customer payment information
  • Language support for 18 languages on iOS and Android; English-only for web

The plug-in adds furthermore the option of customizing the Drop-in UI container via your custom CSS style. Obviously you can customize even more the Drop-in form by setting custom CSS rules to any of the Drop-in UI HTML elements.

  1. Hosted Fields

This option enables the usage of the Braintree’s PCI DSS ready Hosted Fields card form instead of our Custom UI form. From graphical point of view the Hosted Fields does not look different than our Custom UI integration. But Hosted Fields means more than just an UI.

The main advantages of using the Hosted Fields card form on your checkout page:

  • SAQ A Compliant (via Hosted Fields)
  • Use a custom payment form including your custom CSS styles
  • Localized/translated checkout form
  • May include a PayPal button

The plug-in adds furthermore the option of customizing the Hosted Fields UI container and fields via your custom CSS style. Obviously you can customize even more the Hosted Fields form by setting custom CSS rules to any of the Hosted Fields UI HTML elements.

Security options5 Screenshots
  1. 3D Secure

This feature allows you to request the Braintree payment gateway to challenge the 3D Secure enrolled card holder password. Usually the cards are validated based on their number, expiry date and its Card Secret Code (aka CVV, CVC, CSC, CID, etc). With 3D Secure layer the card issuer (eg. Visa, MasterCard, JCB or AmericanExpress) adds an authentication step for online payments.

Why is this feature important? From Braintree website:

In addition to helping fight fraudulent card use, 3D Secure can shift liability for charge-backs due to fraud from the merchant to the card issuer.
The Braintree has a nice chart that illustrate all possible cases and who is liable for fraudulent card use in each situation.
In order to lower the payment risk of your web shop this plugin adds other 3DS related features: Allow only 3D Secure cards, Ignore 3D Secure if AVS and Risk limit for non 3DS cards.

  1. Allow only 3D Secure cards

This feature enforces the usage of 3D Secure enrolled cards only. This option may be preferable if you, as a merchant, want to have zero liability for any fraudulent card use.

Please note that this may exclude few of your online customers who either did not enrolled their card or their card issuer/brand does not implement this security layer. To encompass this situation you may give (you) a chance to those non 3DS card holders by using the Ignore 3D Secure if AVS option.

  1. Ignore 3D Secure if AVS

This option allows you to create an exception for Allow only 3D Secure cards by ignoring the non 3D Secure card usage if the card/order passes the Address Verification System (AVS) rules that the merchant has configured in his/her Braintree account.

What this option does is to verify if the cardholder uses a 3D Secure enrolled card and if he/she does not but the option Allow only 3D Secure cards is ON then to relay the cardholder based on the AVS checks. This means that the card holder post code, street address and/or country match these provided in the shopping order and by that you trust the card holder identity.

  1. Risk limit for non 3DS cards

This option allows you to set a risk payment threshold in case of payments made with non 3D Secure enrolled cards that are fraudulently used. Basically it means that if a buyer uses (fraudulently or not) a non 3DS card and the payment is higher than the threshold you set for a certain currency then the payment is declined.

From the merchant perspective the usage of this option should be seen as a compromise between shifting the liability towards the bank while losing some potential customers due to non 3DS enrolled cards use and selling to these potential customers while assuming a certain liability within a controlled risk range.

You are allowed to set a single threshold value per currency, ie. if you use 10 different currencies in your web shop you may set up to 10 different payment risk thresholds, one for each currency. When no threshold (or zero) is set for a currency it is assumed that you don’t accept any liability for orders made with that currency.

Recurring Billings2 Screenshots
  1. Recurring Billings

This feature implements a way to combine a regular WooCommerce product and the Braintree Recurring Billings option. This feature does not implement a real subscription payment method which usually replaces the `Add to Cart` button with a subscription payment method selection form. Instead it allows you to define a regular WooCommerce product, to define a recurring billings plan inside Braintree Dashboard and to map the regular WooCommerce product to a Braintree Recurring Billing Plan. While submitting the Checkout page this will search the current Cart for all WooCommece products mapped to a Braintree Recurring Billing Plan. If at least one such product is found then the customer info is stored to the Braintree Vault together with the current payment method (eg. stores the card info within the secure Braintree Vault). Moreover, a recurring billing subscription is created for that customer using the billing plan mapped to the ordered WooCommerce product. As such the Braintree Payment Gateway is able to bill your customer recurrently according to the predefined Braintree Billing Plan.

If you want to bill your customer a certain amount upfront then specify that value as the WooCommerce product regular|selling price. That value will be shown on the Cart|Checkout page and nevertheless it will be charged while submitting the order. On the other hand if you want to bill your customer starting with next billing period (ie. not at order date) then make sure you check the “Substract lines amount” option on the `Recurring` settings tab.