> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Apple Pay integration

> Compare four Apple Pay integration options and their different requirements for runtime environment, frontend work, and token handling.

This page compares four Apple Pay integration options and their different requirements for runtime environment, frontend work, and token handling. Waffo supports Apple Pay through hosted Checkout and Merchant-built payment experiences.

## Choose an integration option

| Option                                     | Use when                                                                                                 | Merchant requirements                                                                                                                                        |
| ------------------------------------------ | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Redirect to Waffo Checkout                 | Your website, mobile web page, or app can open a standalone payment page                                 | Create an order, then open [`orderAction.webUrl`](/docs/api-reference/order-create/create-new-order#response-data) in the top-level page                          |
| Load Waffo Checkout in an App WebView      | You want the customer to remain in your app                                                              | Send [`userTerminal=APP`](/docs/api-reference/order-create/create-new-order#body-user-info) when creating the order, and allow the WebView to open external pages |
| Load Waffo Apple Pay Checkout in an iframe | You use a web or H5 page and want to keep the customer on the current page instead of opening a new page | You must use the Waffo frontend SDK and complete domain verification and registration in advance                                                             |
| Integrate directly with Apple Pay          | You need full control of the Apple Pay button, payment page, and token processing                        | Build the Apple Pay frontend and manage the account, certificates, domain verification, token decryption, and compliance                                     |

## Option 1: Redirect to Waffo Checkout

Call [`/api/v1/order/create`](/docs/api-reference/order-create/create-new-order), parse [`orderAction`](/docs/api-reference/order-create/create-new-order#response-data) from the response, and open [`orderAction.webUrl`](/docs/api-reference/order-create/create-new-order#response-data) in the browser's top-level page.

Waffo Checkout displays Apple Pay in this option. You don't integrate Apple Pay JS on your page or handle an Apple Pay token. Use the Webhook or the [`/api/v1/order/inquiry`](/docs/api-reference/order-inquiry/order-inquiry) result as the source of truth for payment status.

## Option 2: Load Waffo Checkout in an App WebView

Open [`orderAction.webUrl`](/docs/api-reference/order-create/create-new-order#response-data) in your App WebView. Send [`userTerminal=APP`](/docs/api-reference/order-create/create-new-order#body-user-info) when creating the order so Waffo returns a link suitable for an app.

## Option 3: Load Waffo Apple Pay Checkout in an iframe

<Warning>
  An iframe integration must use the Waffo frontend SDK `@waffo/payment-sdk`. Before integration, contact Waffo technical support to complete Apple Pay domain verification and registration. Do not load [`orderAction.webUrl`](/docs/api-reference/order-create/create-new-order#response-data) in a plain `<iframe>`.
</Warning>

The frontend SDK renders and manages the Checkout iframe on your page. Your integration must also meet the Checkout iframe requirements for `allow="payment"`, Referrer Policy, and responsive layout. See [Frontend SDK usage](/docs/en/developer-docs/integration/elements/usage#embedded-checkout-renderiframe) and [iframe embedding considerations](/docs/en/developer-docs/integration/checkout/steps#iframe-embedding-considerations).

Do not launch iframe Apple Pay before domain verification and registration are complete. The Apple Pay button may not appear, or payment authorization may not proceed.

## Option 4: Integrate directly with Apple Pay

For the complete prerequisites, decryption steps, and pass-through format, see [Direct Apple Pay integration](/docs/en/developer-docs/integration/apple-pay/merchant-direct-integration).
