Apple Pay
Allow customers to securely make payments using Apple Pay on their Apple device.
Apple Pay is a digital wallet that lets customers pay with a card stored on their Apple device instead of manually entering their card details. Customers can pay with Apple Pay on their iPhone, iPad, Mac or Apple Watch. Refer to Apple’s compatibility documentation for the full list of supported devices.
For Payment Links or hosted Checkout, Apple Pay works with no additional configuration. For Elements or embedded Checkout, you need to register your domain for Apple Pay to work. In-app payments require additional configuration changes.
- Customer locations Worldwide except India
- Presentment currency See supported presentment currencies
- Payment confirmation Customer-initiated
- Payment method family Wallet
- Recurring payments Yes
- Payout timing Standard payout timing applies
- Connect support Yes
- Dispute support Yes
- Manual capture support Yes
- Refunds / Partial refunds Yes / Yes
App Store in-app purchase rules for Apple Pay
This guide explains how to configure your app to accept Apple Pay directly for physical goods, services and other eligible items. Stripe processes these payments and you pay only Stripe’s processing fees.
For digital products, content and subscriptions sold in the United States or European Economic Area (EEA), your iOS app can accept Apple Pay by redirecting to an external payment page. You can use the following payment UIs:
- Stripe Checkout
- Web Elements
- Payment Links (best for limited numbers of products and prices)
In other regions, your iOS app can’t accept Apple Pay for digital products, content or subscriptions.
Accept Apple Pay
Stripe offers a variety of methods to add Apple Pay as a payment method. For integration details, select the method you prefer:
You can accept Apple Pay payments on the Web using Payment Links, Checkout or Elements.
If you use Payment Links or hosted Checkout, Apple Pay works with no additional configuration. If you use Elements or embedded Checkout", you need to register your domain.
Register your domain with Apple Pay
To use Apple Pay with Elements or embedded Checkout, you must register all of your web domains that show an Apple Pay button. That includes top-level domains (for example, stripe.com) and subdomains (for example, www.stripe.com and shop.stripe.com), in production and testing.
Register your domains on the Payment methods domains page in the Dashboard or by using the API with your live secret key as shown below. Don’t register your domain more than once per account.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Apple validation
Stripe handles Apple merchant validation for you, including creating an Apple Merchant ID and Certificate Signing Request. Don’t follow the merchant validation process in the Apple Pay documentation.
When using Direct charges with connect, you need to configure the domain for each connected account using the API. This isn’t a requirement for connected accounts using other charge types.
Web integration considerations
- When using an iframe with Elements , the iframe’s origin must match the top-level origin (except for Safari 17+ when specifying allow="payment" attribute). Two pages have the same origin if the protocol, host (full domain name) and port (if specified) are the same for both pages.
- If the top-level domain differs from the iframe domain, the top-level domain and the iframe’s source domain must both be registered payment method domains on the associated account.
- Checkout with ui_mode set to embedded _ page supports only Safari version 17 or later and iOS version 17 or later.
Use of Apple Pay on the Web is subject to the Apple Pay on the Web terms of service.
Present the payment sheet
Apple requires that user gestures trigger the Apple Pay modal (for example, clicking a button or interacting with the form). Make sure your code:
- Invokes the payment sheet directly with a user activation event.
- Add the code for the payment sheet at or near the top of your user gesture event handler, before any asynchronous or long-running code.
- Sets a reasonable time limit to call confirmPayment after the user gesture.
Recurring payments
We recommend implementing Apple Pay merchant tokens to enable merchant-initiated transactions (MIT) such as recurring and deferred payments and automatic reloads. Merchant tokens (MPANs) connect your business with your customer’s Apple Wallet payment method, so they work across multiple devices and keep payment information active in a new device even when its removed from a lost or stolen device. See ApplePay merchant tokens for integration details.
Test Apple Pay
To test Apple Pay, you must use a real credit card number and your test API keys. Stripe recognises that you’re testing and returns a successful test card token for you to use, so you can make test payments on a live card without charging it.
You can’t save Stripe test cards or Apple Pay test cards to Apple Pay wallets to test Apple Pay.
If you don’t meet device and integration requirements, Stripe doesn’t show Apple Pay as a payment option. Use our test page to help you troubleshoot.
