Learn about PXP's PayPal components for Android.
PayPal is one of the most widely used payment options in Europe, the US and many other parts of the world. PayPal is also widely adopted across industries, from retail to hospitality to gaming to many others. With the PayPal component for Android, you can provide your customers with a secure and convenient checkout experience.

With the PayPal components, you can benefit from:
- Fast checkout: Retrieve stored shipping information from PayPal, so you can offer customers a "checkout with PayPal" experience.
- High customisability: Set the style and button text of the payment buttons, with the maximum level of customised branding allowed by PayPal.
- Flexible rendering: Each PayPal button is made available as a separate component, so you can place the buttons anywhere in your checkout flow — including separately from each other.
- One-click payments: Allow customers to vault their account, so you can offer them one-click purchases and create merchant-initiated transactions.
- Native Android integration: Seamlessly integrated with Jetpack Compose for modern Android UI development.
- WebView-based security: Secure payment processing using Android WebView with proper SSL/TLS handling.
The PayPal components will determine availability for Pay Later automatically and only render the button if available in the shopper's region.
The PayPal components support the following payment options:
- PayPal: A digital payment platform that allows users to make payments and transfer money online. It enables customers to pay using their PayPal balance, linked bank accounts, or cards.
- PayPal Pay later: A buy-now-pay-later service that allows customers to split their purchases into multiple payments over time. It offers both short-term (Pay in 4) and long-term financing options, with no interest on Pay in 4 if payments are made on time.
Venmo isn't currently supported on native Android or iOS. It's only available with our Web SDK.
You can configure the components to drive your desired flow:
- Pay now flow: A synchronous, single-step payment process where the customer completes the payment immediately during checkout and you receive the payment confirmation right away.
- Confirm payment flow: An asynchronous, two-step payment process where the customer authorises the payment and you choose whether to capture the funds later on. If these aren't captured within the time limit (29 days), then the authorisation expires.
When you initiate a transaction, you have to provide key information in the transactionData object:
- The amount and currency.
- The entry type (
EntryType), which describes the origin of the transaction and determines the supported payment methods and available features. For PayPal, this is always useEntryType.Ecom. - The intent (
IntentType), which describes the purpose of a transaction, indicating the intended money flow direction. Each intent dictates a specific transaction flow and affects how the transaction is handled by the system. - A merchant transaction identifier of your choosing, which identifies this specific transaction.
- The merchant transaction date.
PayPal supports the following intents:
| Intent | Description | PayPal usage |
|---|---|---|
IntentType.Purchase | Immediate payment capture. | Used for for th pay now flow - captures payment in one step. |
IntentType.Authorisation | Payment authorisation only. | Used for "Confirm payment" flow - authorises payment for later capture. |
PayPal for Android uses a compositional approach with four separate components that can be used independently or combined:
- PayPal component: The main PayPal payment button and flow.
- Pre-built PayPal component: A composite component that includes a pre-configured PayPal component and the toggle component. This is an alternative to the main PayPal component.
- PayPal consent component: A consent checkbox for vaulting.
- Toggle component: A toggle for payment method switching.
You only need one of the first two components, plus any optional components based on your requirements.

The core PayPal button component for initiating PayPal payments.
Use this when:
- You need a standalone PayPal payment button.
- You want full control over button styling and behaviour.
- You're implementing custom payment flows.
- Multiple button styles (gold, blue, silver, white, black).
- Support for Pay Later messaging.
- One-click payment with vaulting.
- Customisable button dimensions and layout.

A checkbox component for obtaining user consent to save PayPal account information.
Use this when:
- You want to offer one-click payment for returning customers.
- You need to obtain explicit user consent for vaulting.
- You're implementing custom consent flows.
- Customisable checkbox styling.
- Support for rich text labels with hyperlinks.
- PayPal brand colours by default.
- Validation support.

A toggle switch for payment method selection and account switching.
Use this when:
- Users need to switch between saved and new PayPal accounts.
- You're implementing payment method selection.
- You want to provide binary choice controls.
- Material Design toggle switch.
- Customisable label positioning.
- Optional text indicators (ON/OFF).
- Flexible styling options.

A composite component that combines the PayPal button and toggle switch for quick implementation.
Use this when:
- You want faster integration with less code.
- You need one-click payment with account switching.
- You prefer pre-configured component layouts.
- Automatic component linking.
- Container styling options.
- Unified configuration.
- Vertical layout support.
Use when you need basic PayPal payments without one-click payments or payment method switching. Ideal for Simple checkout flows, guest checkout, and digital products.
val paypalComponent = pxpCheckout.createComponent(
type = ComponentType.PAYPAL,
config = PayPalComponentConfig(
enableOneClickPayment = false
)
)