Checkout with PayPal is a one-time payment checkout experience that gives you more control throughout the entire checkout process. It offers a streamlined checkout flow that keeps customers local to your website throughout the payment authorization process.
Unlike the Vault flow, Checkout with PayPal does not provide the ability to store a customer’s PayPal account in the Vault. However, if you are located in a country that supports PayPal One Touch™, your customer can make repeat purchases without re-entering their user credentials after their initial purchase.
Checkout with PayPal supports the following features:
- Select or add shipping addresses in the PayPal account
- Select or add funding instruments in the PayPal account
- PayPal One Touch for Web
- Two factor authentication support (currently only for US, UK, CA, DE, AT, and AU)

Typical use cases for the Checkout With PayPal flow:
- Checkout from Cart/Product pages
- Checkout page replacement
- As a payment source
Invoking the Checkout with PayPal flow
To invoke Express Checkout you must ensure singleUse
, amount
, and currency
are passed in your client options.
<script type="text/javascript">
braintree.setup('CLIENT-TOKEN-FROM-SERVER', 'custom', {
paypal: {
container: 'paypal-container',
singleUse: true, // Required
amount: 10.00, // Required
currency: 'USD', // Required
locale: 'en_US',
enableShippingAddress: true,
shippingAddressOverride: {
recipientName: 'Scruff McGruff',
streetAddress: '1234 Main St.',
extendedAddress: 'Unit 1',
locality: 'Chicago',
countryCodeAlpha2: 'US',
postalCode: '60652',
region: 'IL',
phone: '123.456.7890',
editable: false
}
},
onPaymentMethodReceived: function (obj) {
doSomethingWithTheNonce(obj.nonce);
}
});
</script>
See our JavaScript PayPal client reference for more information on the options available in the Checkout with PayPal flow.
Checkout with Vault
The Checkout with Vault flow is also a one-time payment checkout experience, but with vaulting capability. It automatically creates a PayPal Billing Agreement and stores a customer's PayPal account in the Braintree Vault, allowing you to charge the account in the future without requiring your customer to re-authenticate with PayPal.
All enrolled merchants can invoke this flow with some additional options in your createPayment
call. For full info on createPayment
and how to invoke the Checkout with PayPal flow, see the integration guide.
Additional options to include:
requestBillingAgreement
- set to truebillingAgreementDetails.description
- description of the billing agreement to display to the customer
paypal.Buttons({
fundingSource: paypal.FUNDING.PAYPAL,
createOrder: function () {
return paypalCheckoutInstance.createPayment({
flow: 'checkout',
amount: 10.00,
currency: 'USD',
// new required parameters for this flow
requestBillingAgreement: true,
billingAgreementDetails: {
description: 'Description of the billng agreement to display to the customer'
}
});
},
}).render('#paypal-button');
When creating a Transaction.sale
using a nonce from the Checkout with Vault flow, the result will contain a PayPal details object with an implicitlyVaultedPaymentMethodToken
property. You can then associate this payment method token with your customer for future transactions.
Country support
PayPal is available to merchants in all countries that we support and to customers in 140+ countries. Ensure you are using a desired locale
code as outlined in our JavaScript PayPal client reference.
Currency presentment
The currency of the transaction is presented to the customer in the Checkout with PayPal flow. We support all currencies that PayPal REST APIs support.
See the server-side section for details on charging a transaction in a specific currency.