# 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](https://support.apple.com/en-us/HT208531) 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.

#### Payment method properties

- **Customer locations**

  Worldwide1

- **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)

1 Apple Pay recurring support for Indian customers is coming soon.

#### Business locations

Stripe accounts worldwide 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.

## 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](https://stripe.com/pricing).

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](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 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:

# Web


You can accept Apple Pay payments on the Web using [Payment Links](https://docs.stripe.com/payment-links.md), [Checkout](https://docs.stripe.com/payments/checkout.md), or [Elements](https://docs.stripe.com/payments/elements.md).

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](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 "<<YOUR_SECRET_KEY>>:" \
  -d "domain_name=example.com"
```

> #### 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](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.

### Web integration considerations

- When using an iframe with [Elements](https://docs.stripe.com/payments/elements.md), 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](https://docs.stripe.com/payments/payment-methods/pmd-registration.md) on the associated account.
- [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).

## 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.
- Adds 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 it’s 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)
