Overview
How the PayPal Mobile SDK fits into your Android app, who's responsible for what, and what to read next.
Last updated: October 14, 2026
Mobile SDK v3
Copy / Export
Accept PayPal, Pay Later, PayPal Credit, and card payments in your Android app with PayPal Mobile SDK v3.0.0.
The SDK handles buyer approval in your app, while your server creates and captures orders with the PayPal Orders API.
A native SDK is one actor among several in a checkout integration. Your Android app, server, PayPal, and the buyer's device each have different responsibilities.
Responsibility model
The following table shows who is responsible for each part of a checkout integration, so you know what to build and what the SDK handles for you.
The SDK does not:
- Create or capture orders. Your server does this through Orders v2.
- Provide a card-entry UI. Your app builds the card fields and handles input validation.
- Set return or cancel URLs in the order. In v3, you pass these URLs to the SDK through the URL configuration.
- Determine app-switch eligibility. PayPal makes that decision server-side; the SDK presents the resulting flow.
The checkout flow
Each payment method follows the same flow, with a few differences:
- Your app shows the buyer a way to pay, such as a PayPal button, or your card form.
- On intent, your app creates the order on your server. For PayPal, your app also prepares the checkout session first.
- Your app passes the order ID to
start()orapproveOrder(). - The buyer approves the payment in the PayPal app or an in-app browser. For cards, a 3D Secure challenge occurs when required.
- The buyer returns to your app. The SDK delivers a success, cancel, or failure result.
- On success, your server captures the order or you store the setup token.
PayPal uses a session-first pattern: call createPayPalSession() before start() or vault(). Cards integrations skip the PayPal session.
The SDK provides the card-payment flow and 3D Secure handling, but your app provides the card-entry fields.
Key behaviors and rules
- Call
createPayPalSession()beforestart()orvault()for PayPal. Otherwise, the SDK returns a session-not-started error. - Treat cancellation as a normal outcome. Return the buyer to checkout.
- Render buttons and other payment UI without an order. Create and pass an order only when the buyer starts or approves the payment.
- Make sure the return and cancel URLs you pass to the SDK match the URLs your app registers to receive. The host and path prefix must be consistent.
Find the right guide
For a new integration, start with the installation and setup guide. Then, follow the guides for the payment methods you want to support.
