Set Up Your Clientanchor

You can collect customer payment information via the client SDK in a number of ways:

Client side payment token flowDiagram demonstrating the required interaction between the client, Braintree servers and your server.

Android SDK setupanchor

In your app's build.gradle, add the following:

For other installation techniques and notes, see the Android Client SDK Guide.

Get a client tokenanchor

Client tokens are optional: You can initialize Braintree with a tokenization key instead of a client token. If you are using a tokenization key, you may skip this section and use the tokenization key for your authorization instead.

Your server is responsible for generating a client token, which contains the authorization and configuration details that your client needs to initialize the client SDK.

Try it nowanchor

So you can jump right in we generated a tokenization key for you. This is for testing purposes only! When you're ready to build your own integration, use your own tokenization key or generate your own client token.

Present Drop-in UIanchor

At this point, you are ready to collect payment information from your customer.

Drop-in is the easiest way to get started. It provides a fully fledged payments experience out of the box. You can also choose to create a custom UI and then tokenize the payment information directly.

Test your integrationanchor

Create a sandbox accountanchor

If you haven't already, sign up for a free Braintree sandbox account:

Sign Up for a Braintree Sandbox Account

Log in to obtain your sandbox API credentials. You'll need your:

  • Sandbox merchant ID
  • Public key
  • Private key

Use these credentials for your development and testing.


When you go live, you will need to replace your sandbox API credentials with production API credentials.

Test valuesanchor

When testing in the sandbox, be sure to use our test card numbers (e.g. 4111111111111111) and nonces (e.g. fake-valid-nonce). Real payment method data will not work in the sandbox. See our Testing page for more details.

Send payment method nonce to serveranchor

Send the resulting payment method nonce to your server (this example uses Android Async Http Client - adapt to your own setup):

  1. Android
void postNonceToServer(String nonce) {
  AsyncHttpClient client = new AsyncHttpClient();
  RequestParams params = new RequestParams();
  params.put("payment_method_nonce", nonce);"http://your-server/checkout", params,
    new AsyncHttpResponseHandler() {
      // Your implementation here

world.greeted = trueanchor

At this point, you should have a working client-side checkout flow. When your user provides payment information, you receive a payment method nonce and send it to your server.

Next, your server closes the loop by using the payment method nonce to create a transaction.

Next Page: Simple Server