Android v1 is deprecated. We recommend migrating to the latest version of our Android SDK. The best way to start is by making an incremental upgrade from v1 to v2.


In order to use the Drop-in UI, you'll first need to generate a client token on your server.


Upgrade to Android v2 to use a tokenization key, a static form of client authorization obtained from the Control Panel.


There are several ways to include Braintree's Drop-in in your project.


Gradle is the preferred build system for working with the Braintree Android SDK.

In your app-level build.gradle, add the following:

dependencies {
  implementation 'com.braintreepayments.api:braintree:1.7.10'


You must be using android-maven-plugin.

In your pom.xml add the following:


Client-side implementation

If you're going to launch the Drop-in UI from a button, and you've set the button's onClick handler in XML via android:onClick="onBraintreeSubmit", add the method as:

public void onBraintreeSubmit(View v) {
  Intent intent = new Intent(context, BraintreePaymentActivity.class);
    .putExtra(BraintreePaymentActivity.EXTRA_CLIENT_TOKEN, clientToken);

  // REQUEST_CODE is arbitrary and is only used within this activity.
  startActivityForResult(intent, REQUEST_CODE);

When your user provides payment information, your app receives a paymentMethodNonce in your calling Activity#onActivityResult, which you will override to get the response or any possible errors:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == REQUEST_CODE) {
    switch (resultCode) {
      case BraintreePaymentActivity.RESULT_OK:
        String paymentMethodNonce = data
      case BraintreePaymentActivity.BRAINTREE_RESULT_DEVELOPER_ERROR:
      case BraintreePaymentActivity.BRAINTREE_RESULT_SERVER_ERROR:
      case BraintreePaymentActivity.BRAINTREE_RESULT_SERVER_UNAVAILABLE:
        // handle errors here, a throwable may be available in
        // data.getSerializableExtra(BraintreePaymentActivity.EXTRA_ERROR_MESSAGE)

Configuring payment methods

Additional steps are required for the Drop-in UI to accept payment methods other than cards. After completing the Drop-in setup instructions, follow the steps below for each payment method type.


In order for your Drop-in to support PayPal payments, you must allow for PayPal's browser switch by adding an intent filter to your AndroidManifest.xml.


To support Venmo payments in the Drop-in UI, make sure to follow the browser switch setup instructions in the Client SDK Setup and complete the full Venmo integrations.

Displaying the last used payment method

If your user already has an existing payment method, you may not need to show Drop-in. You can check if they have an existing payment method using DropInResult#fetchDropInResult. A payment method will only be returned when using a client token created with a customer_id.

Next steps

Next Page: Customization →