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.
For most Merchants, start with one of the first three Waffo-hosted Apple Pay options. You can reuse the Apple Pay capabilities in Waffo Checkout instead of applying for an Apple Developer account, managing Apple Pay certificates, or implementing token decryption. Then select the presentation that fits your product:
You can open a standalone payment page: Redirect to Waffo Checkout. This option works for websites, mobile web pages, and apps, and provides the most direct default integration path.
You need to keep the customer in your Merchant app: Load Waffo Checkout in an App WebView.
You need to keep the customer on the current web or H5 page: Use the iframe managed by the Waffo frontend SDK, and complete domain verification and registration in advance.
You must fully control the Apple Pay UI and token: Integrate directly only when the Merchant has an Apple Developer account, Merchant ID, Apple Pay certificates, and the required PCI DSS compliance status, and your team can manage server-side decryption and ongoing compliance.
Unless your product experience or compliance boundary requires the Merchant to process the Apple Pay token, use Waffo-hosted Checkout. Direct integration has the highest cost and requires the Merchant to maintain Apple accounts and certificates, PCI DSS compliance, cryptographic implementation, and long-term operations.
Here, terminal means the runtime that hosts Waffo Checkout or the Merchant’s Apple Pay UI. App WebView is an app integration: the outer container is the Merchant’s native or hybrid iOS app, while a WebView loads Waffo Checkout. An Android app can reuse the WebView Checkout pattern for other payment methods, but Apple Pay does not apply to an Android terminal.
Option
Applicable scope
Supported terminals
Presentation
Integration cost
Merchant prerequisites
Redirect to Waffo Checkout
Use Waffo-hosted Checkout with the lowest integration cost; Apple Pay visibility depends on device and browser support
Desktop web, mobile web, or an iOS app that can open an external browser or top-level payment page
Waffo Checkout in the browser’s top-level page
Lowest: create the order and implement the page redirect
No additional Apple Pay prerequisites
Load Waffo Checkout in an App WebView
Keep the payment flow in the app while Waffo handles the Apple Pay token
A native or hybrid iOS app
Waffo Checkout in an App WebView
Low: add WebView and external-navigation handling
No additional Apple Pay prerequisites
Load Waffo Apple Pay Checkout in an iframe
Embed Waffo Checkout in the current web page and support the required SDK integration, domain verification, and iframe adaptation
Desktop web or mobile web
An iframe managed by the Waffo frontend SDK
Medium: integrate the SDK and complete domain verification and iframe adaptation
Use @waffo/payment-sdk, contact Waffo technical support for domain verification and registration, and meet the iframe attribute and layout requirements
Integrate directly with Apple Pay
Require full control of the Apple Pay UI and token and already have the Apple account setup and required PCI DSS compliance status
A web terminal that supports Apple Pay JS or an iOS app that uses PassKit
A Merchant UI built with Apple Pay JS or PassKit
Highest: build the Apple Pay frontend, manage certificates, verify and decrypt the token on the server, and submit it in Waffo’s format
A valid Apple Developer account, Merchant ID, Apple Pay certificates, domain verification for web integrations, and the required PCI DSS compliance status and ongoing controls
Call /api/v1/order/create, parse orderAction from the response, and open orderAction.webUrl 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 result as the source of truth for payment status.Choose this option first when you do not need to keep the customer on the current page or inside your app. It has the fewest page-container and frontend dependencies and keeps redirects and payment-result handling consistent.
Open orderAction.webUrl in your App WebView. Send userTerminal=APP when creating the order so Waffo returns a link suitable for an app.Make sure the WebView can handle external pages or wallet navigation, and preserve the complete query string when your app passes a URL to or from the WebView.
Option 3: Load Waffo Apple Pay Checkout in an iframe
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 in a plain <iframe>.
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 and 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.
Choose this option only when the Waffo-hosted options cannot meet your UI, interaction, or responsibility-boundary requirements and the Merchant already has the Apple Developer account and certificate setup, the required PCI DSS compliance status, server-side decryption, and ongoing compliance capabilities. For the complete prerequisites, decryption steps, and pass-through format, see Direct Apple Pay integration.
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.