Returns a string which contains all authorization and configuration information your client needs to initialize the client SDK to communicate with Braintree.

gateway.clientToken.generate({}, (err, response) => {
  const clientToken = response.clientToken
customerId String

Only applies to the Drop-in UI; not needed when generating client tokens for custom integrations.

A string value representing an existing customer in your Vault. Passing this option allows customers to manage their vaulted payment methods via the Drop-in UI; see Drop-in Customization for details.

merchantAccountId String

Specify the merchant account ID that you want to use to generate the client token. If no merchant account ID is specified, we will use your default merchant account.

Depending on its settings, the merchant account you use will determine:

  • whether the PayPal button should be displayed
  • whether the 3D Secure authentication flow can be invoked
failOnDuplicatePaymentMethod bool

If this option is passed and the same payment method has already been added to the Vault for any customer, the request will fail. This can only be passed if a customerId is passed as well. If the check fails, this option will stop the Drop-in from returning a paymentMethodNonce. This option will be ignored for PayPal, Pay with Venmo, Apple Pay, Google Pay, and Samsung Pay payment methods.

makeDefault bool

This option makes the specified payment method the default for the customer. This can only be passed if a customer_id is passed as well.

verifyCard bool

If the payment method is a credit card, this option prompts the gateway to verify the card's number and expiration date. It also verifies the AVS and CVV information if you've enabled AVS and CVV rules. This option can only be passed if a customerId is passed as well. If the verification fails, this option will stop the Drop-in from returning a paymentMethodNonce.


Braintree strongly recommends verifying all cards before they are stored in your Vault by enabling card verification for your entire account in the Control Panel.

In some cases, cardholders may see a temporary authorization on their account after their card has been verified. The authorization will fall off the cardholder's account within a few days and will never settle.

version String

The version of the client token to generate. The default value is 2. Current supported versions are 1, 2, and 3. Please check your client-side SDKs in use before changing this value.


Specify a customer ID

The Drop-in UI supports presenting returning customers with their saved payment methods. To generate a token for a customer in your vault provide the customer's ID.

  customerId: aCustomerId
}, (err, response) => {
  // pass clientToken to your front-end
  const clientToken = response.clientToken

If the customer can't be found, it will return a validation error.