# Apple Pay Allow customers to securely make payments using Apple Pay on their iPhone, iPad, or Apple Watch. Refer to Apple’s [compatibility documentation](https://support.apple.com/en-us/HT208531) to learn which devices support Apple Pay. Apple Pay is compatible with most Stripe products and features. Stripe users can accept [Apple Pay](https://stripe.com/apple-pay) in iOS applications in iOS 9 and above, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and [pricing](https://stripe.com/pricing/local-payment-methods#apple-pay) is the same as for other card transactions. Apple Pay is available to cardholders at participating banks in supported countries. For more information, refer to Apple’s [participating banks](https://support.apple.com/en-us/ht204916) documentation. #### Payment method properties - **Customer locations** Worldwide except India - **Presentment currency** See [supported presentment currencies](https://docs.stripe.com/currencies.md#presentment-currencies) - **Payment confirmation** Customer-initiated - **Payment method family** Wallet - **Recurring payments** [Yes](https://docs.stripe.com/apple-pay.md#recurring-payments) - **Payout timing** Standard payout timing applies - **Connect support** Yes - **Dispute support** [Yes](https://docs.stripe.com/apple-pay/disputes-refunds.md#disputed-payments) - **Manual capture support** Yes - **Refunds / Partial refunds** [Yes / Yes](https://docs.stripe.com/apple-pay/disputes-refunds.md#refunds) #### Business locations Stripe accounts worldwide except India can accept Apple Pay payments with local currency settlement. #### Product support - Connect - Checkout1 - Payment Links - Elements - Subscriptions - Invoicing 1When Checkout’s [ui_mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-ui_mode) is `embedded_page`, it only supports version 17 or later of Safari and iOS. ## Payment flow Below is a demonstration of the Apple Pay payment flow from your checkout page: ![Apple pay payment flow animation showing the Stripe checkout page, the Apple Pay button, and the confirmation dialog while testing.](https://b.stripecdn.com/docs-statics-srv/assets/apple-pay.3447ce2deeaab40d6d231eed4dc34644.gif) ## In-app purchase eligibility 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](https://stripe.com/pricing). For digital products, content, and subscriptions sold in the United States or European Economic Area (EEA), your app can accept Apple Pay by redirecting to an external payment page. You can use the following payment UIs: - [Stripe Checkout](https://docs.stripe.com/mobile/digital-goods/checkout.md) - [Web Elements](https://docs.stripe.com/mobile/digital-goods/custom-checkout.md) - [Payment Links](https://docs.stripe.com/mobile/digital-goods/payment-links.md) (best for limited numbers of products and prices) In other regions, your 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: # Web You can accept Apple Pay payments on the Web using [Checkout](https://docs.stripe.com/payments/checkout.md) or [Elements](https://docs.stripe.com/payments/elements.md). No additional configuration is required to use Apple Pay in Checkout. For Elements, refer to the [Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element.md) or [Accept a payment](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=elements&api-integration=checkout) guides to learn how to add Apple Pay to your site. ### Web integration considerations - **Using an iframe with [Elements](https://docs.stripe.com/payments/elements.md)**: When using an iframe, its 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. - **Top-level domain and iframe domain**: 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](https://docs.stripe.com/payments/payment-methods/pmd-registration.md) on the associated account. - **Existing Stripe.js v2 integrations**: Upgrade to Checkout or Elements at your earliest convenience. - **Using [Checkout](https://docs.stripe.com/payments/checkout.md) with [ui_mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-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](https://stripe.com/apple-pay/legal). ### Register your domain with Apple Pay To use Apple Pay, you must register all of your web domains that show an Apple Pay button with Apple. That includes top-level domains (for example, **stripe.com**) and subdomains (for example, **shop.stripe.com**), in production and testing. > #### Subdomains > > `www` is a subdomain (for example, **www.stripe.com**) that you must also register. 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. Instead, follow this step: 1. Tell Stripe to register your domain with Apple. You can do this on the [Payment methods domains page](https://dashboard.stripe.com/settings/payment_method_domains) 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. ```curl curl https://api.stripe.com/v1/payment_method_domains \ -u "<>:" \ -d "domain_name=example.com" ``` When using [direct charges](https://docs.stripe.com/connect/direct-charges.md) with *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), 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. After registering your domains, you can make payments on your site with your live API keys. ## 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 adheres to the following: - Invoke 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. - Set 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](https://docs.stripe.com/apple-pay/merchant-tokens.md?pay-element=ece) for integration details. ## Test Apple Pay To test Apple Pay, you must use a real credit card number and your test [API keys](https://docs.stripe.com/keys.md). Stripe recognizes 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](https://docs.stripe.com/testing.md#use-test-cards) or [Apple Pay test cards](https://developer.apple.com/apple-pay/sandbox-testing/) to Apple Pay wallets to test Apple Pay. # Web If you don’t meet device and integration requirements, Stripe doesn’t show Apple Pay as a payment option. Use our [test page](https://docs.stripe.com/testing/wallets.md) to help you troubleshoot. ## See also - [iOS Integration](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=mobile&platform=ios) - [Apple Pay on the Web](https://docs.stripe.com/elements/express-checkout-element.md) - [Apple Pay Best Practices](https://docs.stripe.com/apple-pay/best-practices.md)