Early access
Express checkout for Apple Pay
Present customers with a seamless, one-click payment experience on mobile when using Apple Pay. Express checkout is optimized for mobile purchases, prioritizing Apple Pay and capturing customer information from Apple Wallet.
What's new?
We've introduced express checkout, a new checkout variant designed for mobile that prioritizes digital wallets for a frictionless, one-click payment experience.
It's available in early access for Apple Pay, using Apple Wallet to capture customer email address, plus geolocation information for address details.

Access to express checkout for Apple Pay is limited to users who are part of our early access program. If you're interested in being part of the program, fill out the form to join the waitlist. We'll reach out when space is available if you meet the program requirements.
How it works
Express checkout is a new checkout variant that's designed for mobile. It prioritizes Apple Pay, presenting it first to customers, and uses details from Apple Wallet to capture customer email address.
Behind the scenes, Paddle Checkout uses the customer's IP address to estimate the correct tax and pricing before the checkout loads, eliminating the need for customers to enter their address details before opening Apple Pay.
If Apple Pay is unavailable on the customer's device, the checkout automatically falls back to alternative payment methods.
You must verify your domain for Apple Pay in order to offer the one-click experience in express checkout.
Early access program guidelines
Why are we doing this?
Mobile users overwhelmingly prefer digital wallets over card payments. In particular, Apple Pay is deeply integrated into the Apple ecosystem, making it the fastest and most convenient payment method for customers on iPhone.
Express checkout improves conversion rates and customer satisfaction by:
- Surfacing Apple Pay as the first payment method on a compatible device, making it the easiest option for customers to select.
- Using Apple Wallet and geolocation information to capture customer information, eliminating the need for customers to manually enter their email, country, and postal code.
If Apple Pay is unavailable on the customer's device, the checkout automatically falls back to alternative payment methods.
What's included?
For this stage of the early access program, express checkout includes:
- A new
expresscheckout variant in Paddle.js. - One-click payment flow for Apple Pay, with Apple Pay prominently displayed at the top.
- Automatic location detection using IP address geolocation for tax calculations and address detail capture.
- Use of Apple Wallet information to capture customer email address.
- Fallback to standard payment methods and option to pay another way.
- A new
showNonExpressPaymentMethodsparameter to determine whether the option to pay another way is shown. - Full transaction webhook support, like standard checkouts.
- Support for one-time purchases and subscriptions.
Are there any limitations?
There are some limitations with express checkout:
Customers can't input business or tax information.
There's no option to input tax or VAT information on the inline checkout form. You can pass this information to Paddle.js when opening the checkout using the
customer.businessparameter. If you passshowAddTaxId: true, it's ignored and checkout is loaded.Customers can't add a discount code.
There's no option to add a discount code on the inline checkout form. You can pass this information to Paddle.js when opening the checkout using the
discountIdordiscountCodeparameter. If you passshowAddDiscounts: true, it's ignored and checkout is loaded.It's not yet available if you're using a partner for funnels or paywalls.
If you're using a partner for funnels or paywalls, express checkout for Apple Pay isn't available just yet. We're working with our partners to bring express checkout to their funnels and flows. This doesn't impact users who are only using a partner for fulfillment or entitlements.
What's planned for the future?
In the future, we're planning to add support for:
An event to detect when the inline checkout frame size changes.
We'll add a new Paddle.js event when the inline checkout frame size changes, which you can use to dynamically resize an outer container like a sheet or modal.
Express checkout for other digital wallets.
Right now, express checkout supports Apple Pay. In later versions of express checkout, we may add support for other digital wallets like Google Pay and PayPal.
What do we need from you?
We're keen to understand how you find express checkout and any feedback from customers about the experience. Your feedback will help shape the feature for general availability.
To share feedback:
- Use the feedback button at the top-right of this page.
- Email us at sellers@paddle.com.
We may reach out during the early access program to discuss your experience and gather specific insights.
What's the timeline for release?
We're releasing express checkout in multiple stages:
| Stage 1 | Feb 2026 | Private early access program. |
| Stage 2 | Feb to Mar 2026 | Invite-only early access program. |
| Stage 3 | End of Mar 2026 | General availability. |
These dates are estimates and may change depending on testing and feedback.
Examples
This example shows the minimal configuration needed to launch an express checkout:
12345678910111213141516171819201import { initializePaddle, Paddle } from '@paddle/paddle-js';
2
3// Initialize Paddle (async)
4const paddleInstance: Paddle | undefined = await initializePaddle({
5 token: 'live_7d279f61a3499fed520f7cd8c08', // replace with a client-side token
6});
7
8if (paddleInstance) {
9 // Open checkout with Express variant
10 paddleInstance.Checkout.open({
11 items: [
12 {
13 priceId: 'pri_01gm81eqze2vmmvhpjg13bfeqg',
14 quantity: 1
15 },
16 {
17 priceId: 'pri_01gm82kny0ad1tk358gxmsq87m',
18 quantity: 1
19 }
20 ],
This example shows how to open an express checkout with pre-filled customer information and address details, overriding details captured from Apple Wallet and IP address geolocation:
12345678910111213141516171819201import { initializePaddle, Paddle } from '@paddle/paddle-js';
2
3// Initialize Paddle (async)
4const paddleInstance: Paddle | undefined = await initializePaddle({
5 token: 'live_7d279f61a3499fed520f7cd8c08', // replace with a client-side token
6});
7
8if (paddleInstance) {
9 paddleInstance.Checkout.open({
10 items: [
11 {
12 priceId: 'pri_01gm81eqze2vmmvhpjg13bfeqg',
13 quantity: 1
14 },
15 {
16 priceId: 'pri_01gm82kny0ad1tk358gxmsq87m',
17 quantity: 1
18 }
19 ],
20 customer: {
Summary of changes
Paddle.js parameters
This is a summary of changes to parameters in the Paddle.Checkout.open() and Paddle.Initialize() methods:
| Setting | Type | Description |
|---|---|---|
settings.variant | string | Set to express to enable express checkout for Apple Pay. Must be used with displayMode: inline. |
settings.showNonExpressPaymentMethods | boolean | Set to false to hide the option to pay another way. Defaults to true. |
When passing variant: express, the following parameters are not compatible:
| Setting | Used for | Result |
|---|---|---|
customerAuthToken | Presenting saved payment methods. | checkout.error |
| Checkout fails to load if any value is passed. | ||
savedPaymentMethodId | Presenting a specific saved payment method. | checkout.error |
| Checkout fails to load if any value is passed. | ||
upsell | Opening a checkout for an upsell. | checkout.error |
| Checkout fails to load if any value is passed. | ||
settings.displayMode | Determining what mode to use for the checkout. | checkout.error |
Checkout fails to load if anything other than inline is passed. | ||
settings.allowedPaymentMethods | Restricting the payment methods presented to customers. | checkout.error |
| Checkout fails to load if any value is passed. | ||
settings.allowLogout | Preventing customers from changing the email address on the checkout. | checkout.error |
| Checkout fails to load if any value is passed. | ||
settings.showAddTaxId | Showing or hiding the option to add a tax number. | checkout.warning |
Checkout loads but ignores true value. | ||
settings.showAddDiscounts | Showing or hiding the option to add a discount. | checkout.warning |
Checkout loads but ignores true value. | ||
settings.allowDiscountRemoval | Preventing customers from removing an applied discount. | checkout.warning |
Checkout loads but ignores true value. |
Next steps
Access to express checkout for Apple Pay is currently limited to users who are part of the early access program. If you're interested in participating, fill out the form to join the waitlist. We'll reach out when space is available if you meet the program requirements.
To implement:
Apply to join the early access program by filling out the form.
Make sure your domain is verified for Apple Pay.
Update your Paddle.js configuration to pass
variant: expressas a checkout setting. See the examples for more details.
If you're using a partner for funnels or paywalls, express checkout for Apple Pay isn't available just yet. We're working with our partners to bring express checkout to their funnels and flows. This doesn't impact users who are only using a partner for fulfillment or entitlements.
Related pages
- Express checkout for Apple Pay
- What's new?
- How it works
- Early access program guidelines
- Why are we doing this?
- What's included?
- Are there any limitations?
- What's planned for the future?
- What do we need from you?
- What's the timeline for release?
- Examples
- Summary of changes
- Paddle.js parameters
- Next steps
- Related pages





