Go through 3DS implementation for Braintree.js in ChargeMonk, in case you plan to use Braintree.js as your checkout option, and want to be SCA-compliant under the European PSD2 regulation.

Braintree is the payment processing solution that specializes in web and mobile payment systems for e-commerce businesses. It offers clients with a payment gateway and a merchant account. Braintree provides companies with the facility to accept payments within their mobile application or online. Go to Contact Braintree for more information.

Choosing Braintree

Consider the below given criteria before opting Braintree as a payment solution:

  • Countries supported: Currently Braintree is available in regions including Canada, United States, Europe, Australia, Singapore, Malaysia and Hong Kong. Get the complete list here.
  • Business Type: Due to legal reasons, Braintree does not support several business types. Read the Acceptable use Policy of Braintree for more info.
  • Payment Methods: All major debit and credit cards such as Mastercard, Visa, AMEX, etc are supports by Braintree. Excluding cards, Braintree also supports PayPal and Apple Pay as well.
  • Pricing: There are no monthly charges or setup fee associated with Braintree. The rates are based on transactions. More details about pricing here.
  • Data Portability: Braintree established the idea of data portability. In case you chose to switch from Braintree, it allows you an easily migrate by exporting your data to another payment gateway.
  • Currency Support: Almost 130 currencies are supported by Braintree. Get the entire list here.

Types of Accounts

Braintree allows you to register for two kinds of accounts: Production and SandBox. The SandBox Account is same as Production account but is for testing purposes primarily. This account is can be used to test end to end transactions. For testing purposes the test card numbers are given in later sections. The Production Account is generated when you have monkn approved and applied for a merchant account. Only Production account allows you to accept payments.

Integration options

ChargeMonk supports linking with production and sandbox modes of your Braintree account.

ChargeMonk provides the below given options to link with Braintree.

Option A ChargeMonk's hosted payment pages + Braintree Gateway

PCI Compliance Requirements: Low

Due to the hosted pages of ChargeMonk, your PCI compliance requirements are greatly reduced. If you are a merchant using hosted pages ChargeMonk, all you need to do is to enter a Self Assessment Questionnaire (SAQ-A) to stay compliant.

Option B ChargeMonk's API + Braintree Gateway

In this mode, gathering card details and passing it to ChargeMonk is your responsibility. ChargeMonk then forwards the card details to Braintree directly.

PCI Compliance Requirements: High

Since the card details will be gathered directly by you, you will be responsible to take care of PCI Compliance requirements.

Option C ChargeMonk's API + Braintree.js

In this mode, Braintree provides you with a payment form that can be embedded in your checkout page. In this way, PCI compliance requirement is reduced. The card details collected through the payment form is sent to Braintree directly.

Go through this tutorial to set up Braintree. js with ChargeMonk.

PCI Compliance Requirements: Low

As Braintree collect the card details, your PCI compliance requirements get reduced.

Configuring Braintree with ChargeMonk

ChargeMonk supports linking with production and sandbox modes of your Braintree account.

Step 1: Click *Settings > Configure ChargeMonk > Payment Gateways > Add Payment Gateway > Braintree *

Step 2: Create a new account or sign in by using your credentials.

Step 3: For currency configured, submit Merchant Account IDs. This step will help to send the transactions to the appropiate account in Braintree. Find the Merchant Account ID in Account › Merchant Account info in your Braintree account.


ChargeMonk and Braintree supports the different currencies for charging customers throughout different geographical regions. In case you want to use ChargeMonk+ Braintree for your business make sure both support your transactional currencies. Get the entire list of currencies supported by:

For example, in case you are operating USD currency, ensure that your Braintree merchant account id is mapped for USD to your ChargeMonk-USD site.


In case you do not need a Braintree merchant account id in your ChargeMonk account, then the default currency set in your Braintree account will be used for transactions.

Step 4: Click the Manage button placed next to the cards section to arrange the cards setting. You can also pick to enable/disable the prepaid cards, maintain the card details in Braintree before the default gateway and choose those brands whose logos you want to appear in the self serve portal or checkout.

Step 5: In case you want to permit your customers' to pay through Paypal or Apply Pay or turn them on from the Payment methods page.

Step 6: Click Apply


Make sure that you do not cancel ChargeMonk's access from Braintree account.

3DS Execution of Card Payments

Confirm with your gateway if 3DS for your account is enabled or not. In case it is not then enabled it both in your gateway and ChargeMonk. Also, ensure that you complete the entire SCA checklist in ChargeMonk prior to accepting 3DS payments. This is to make sure that you can easily get back the failed payments, without compromising on your income.

1) For new cards with immediate payment

The execution of respective integrations given below is for 3DS payments that includes immediate charge and a new card.

a)Braintree.js + ChargeMonk APIs:

  • Complete the 3DS flow for the card by using API of Braintree.
  • Send the 3DS-verified nonce to payment_intent[gw_token] parameter of ChargeMonk APIs and carry out the required operation.

You can go through our tutorial for the complete steps on completing a 3DS payment for a new card using Braintree.js at your checkout.

b)ChargeMonk Hosted pages + Braintree gateway:

Hosted pages of ChargeMonk (Single Page checkout, Portal, In-app checkout) take care of tokenizing the card info and carrying out 3DS verification if required.

All you have to do is to complete configuration 3DS in your ChargeMonk site.

c)ChargeMonk APIs + Braintree gateway:

Conveying raw card info to ChargeMonk is not a suggested way to perform 3DS transactions. Reason for this being: ChargeMonk.js or Gateway JS sends you’re the background data of customer and tries for a 3DS frictionless flow that is not possible typically, when you send the raw card info to ChargeMonk directly.

We suggest you to go with the gateway JS + ChargeMonk API option, as your payment agreement rate would get better with this approach. To get the more information, check out

d)ChargeMonk.js + Braintree gateway:

ChargeMonk.js has the full responsibility of tokenizing the card info and carrying out 3DS verification whenever needed. All you have to do is to integrate ChargeMonk.js at your checkout.

2) For new cards without immediate payment

Given here is the implementation of respective integrations for 3DS authorization that engages a new card without an instant charge.

a) Braintree.js + ChargeMonk APIs:

Pass least amount (say 1$) and complete its 3DS authorization. The stored card info will be used for payments in future.

  • By passing a least amount for authorization, complete the 3DS flow for the card.
  • Send the 3DS-verified nonce to payment_intent[gw_token] parameter of ChargeMonk APIs. The approved amount would be canceled after successful completion of 3DS flow automatically.

b) ChargeMonk Hosted pages + Braintree gateway:

Hosted pages of ChargeMonk (Single page checkout, Portal, In-app checkout) take care of tokenizing the card info and carrying out 3DS authorization for the least amount.

  • The authorized amount is released to the customer automatically on 3DS flow completion.

All you have to do is to complete the configuring 3DS in your ChargeMonk site.

c)ChargeMonk.js + Braintree gateway:

  • ChargeMonk.js takes the full responsibility of tokenizing the card info and carrying out 3DS authorization for a least amount.
  • The authorized amount is released automatically to the customer on 3DS flow completion.

All you have to do is to integrate ChargeMonk.js at your checkout.

3) For stored cards

The imposition for the respective integrations shown here are for the 3DS payments done using a stored card.

a)Braintree.js + ChargeMonk APIs:

  • Get the card info and charge it through 3DS flow.
  • Send the PaymentIntent id to payment_intent[gw_token] parameter of ChargeMonk's APIs to carry out the required operation.

b)ChargeMonk Hosted pages + Braintree gateway:

The Reference ID of card is used by ChargeMonk to get back the payment method and charge the customer.

c)ChargeMonk.js + Braintree gateway:

  • Retrieve the Reference ID of the card and send it to the PaymentIntent API of ChargeMonk.
  • ChargeMonk.js' handleCardPayment function can be used as a callback function

Go to our ChargeMonk.js documentation to get more info about charging a stored card via 3DS flow.

Handling 3DS Fallback

The Fallback flow is required when 3DS verification efforts fail for the stored cards, because of the customer being offline. Then the invoice would get into the dunning and customer would follow up for the payment, on the basis of your remainder email configuration. Enable 3DS and dunning email configuration to take care of Fallback flow in ChargeMonk.

Reconnect and Removing Braintree Integration

    Reconnect: If there is a connection failure or whenever an "Access denied by Gateway" error message appeared, you can re-establish the connection by Reconnecting with your Braintree account.
  • Remove: This option will be used, in case you intent to remove your Braintree account that is integrated with ChargeMonk.


In case this gateway account is integrated as a payment mode to a subscription, then you can archive the gateway account.

Configuring Webhooks

Braintree can make use of webhooks to inform your site of events regarding your Braintree account.

When the Notification URL given by ChargeMonk is set up in Braintree, ChargeMonk will get a notification of events that happen in Braintree.

To setup the webhook, go to your Braintree configuration page (Settings > Configure ChargeMonk > Payment Gateways > Braintree) and copy the Notification URL.

Now in your Braintree account, go to Settings > Webhooks. Click on Create a New Webhook feature and paste that URL in the Destination URL box from ChargeMonk.

Don’t forget to select account updater Daily Report button before you click on Save.


  • Webhooks for Braintree can be setup in ChargeMonk's live site only.
  • Contact Braintree support in case the Account Updater Daily Report feature isn't visible in your LIVE account.
  • Generally account updater is available to merchants using Braintree direct and is resided in the US or transact with US customers primarily.

In case you have configured Weebhooks, ChargeMonk will take notes for Card Update events. Braintree works with card networks directly and automatically updates the card so that the card would work even if their bank replaces the physical card. Get informed through Webhook on every update on customer's card.

Additional Configurations in Braintree

Make sure that you setup the below given settings in your Braintree account to lessen fraudulent transactions or transaction failures.

1) Enable Card Verification

The process of validating a card to make sure that the info in the card submitted is linked to a valid bank account is known Card verification. Generally this is done prior to storing a card in a vault. Make sure you turn on the card verification option in your Braintree account.

To enable card verification in your Braintree account, navigate to: Settings > Processing > Card Verification.

2) AVS Rules

AVS is a service that re-checks the billing address submitted by the customer with the address saved in the credit card company. This is a security check that helps in combating the deceptive transactions, which if ignored, could result in charge backs.

Ensure that you your Braintree account is configured with AVS rules under Settings > Processing > AVS Rules.

3) CVV Rules

CVV numbers are mandatory for authenticating card-not-present transactions. Make sure that your Braintree Account is configured with CVV Rules under Settings > Processing > CVV Rules.

Test Card Numbers

The below given card numbers can be used for the testing card transactions in Test site of ChargeMonk in the sandbox mode of your Braintree account.

Card Number

Card Type

Response Description

4111 1111 1111 1111


Successful Transaction*.

5555 5555 5555 4444


Successful Transaction*.

4000 1111 1111 1115


Unsuccessful Verification.

*Amounts within $0.01 - $1999.99 will made a successful transaction. More info on amount based testing is given here.


By using Braintree, payments can be accepted only through cards Apple Pay and PayPal.