PayPal

Client-Side Implementation

Important
The SSL certificates for all Braintree SDKs are set to expire by June 30, 2025. This will impact existing versions of the SDK in published versions of your app. To reduce the impact, upgrade the iOS SDK to version 6.17.0+Android SDK to version 4.45.0+ or version 5.0.0+ for the new SSL certifications.

If you do not decommission your app versions that include the older SDK versions or force upgrade your app with the updated certificates by the expiration date, 100% of your customer traffic will fail.

SetupAnchorIcon

Before you can add PayPal, you will need to:

  1. Create, verify, and link your PayPal account in the Braintree Control Panel
  2. Set up your Android SDK and obtain your client token
  3. Declare a URL scheme in your AndroidManifest

Using our Drop-in UIAnchorIcon

When using the Drop-in UI, a PayPal payment option will be shown alongside any other payment methods you've enabled.

For more details, see the Drop-in UI guide.

Using a Custom UIAnchorIcon

You can optionally implement a custom button to start a PayPal flow.

Get the SDKAnchorIcon

Add the following in your app-level build.gradle:

  1. Kotlin
  2. Groovy
dependencies {
    implementation("com.braintreepayments.api:paypal:4.49.1")
}

InitializationAnchorIcon

Create a BraintreeClient with a ClientTokenProvider or Tokenization Key. Construct a PayPalClient, and add a click listener to your button to initiate the PayPal flow. For a complete integration example, see the Vault or Checkout pages.

  1. Kotlin
  2. Java
class MyActivity : AppCompatActivity() {

  private lateinit var braintreeClient: BraintreeClient
  private lateinit var payPalClient: PayPalClient

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    braintreeClient = BraintreeClient(this, ExampleClientTokenProvider())
    payPalClient = PayPalClient(this, braintreeClient)
  }

  private fun onPayPalButtonClick(view: View) {
    // The PayPalRequest type will be based on integration type (Checkout vs. Vault)  
    payPalClient.tokenizePayPalAccount(this, payPalRequest) 
  }
}

Collecting additional dataAnchorIcon

There is additional data you can gather about your customers as they complete the payment process.

Next: Choose your integrationAnchorIcon

The rest of your configuration will be determined by how you'd like to use PayPal.

See a detailed comparison of One-Time Payments, Vaulted Payments, and Recurring Payments.

If you accept cookies, we’ll use them to improve and customize your experience and enable our partners to show you personalized PayPal ads when you visit other sites. Manage cookies and learn more