Skip to main content
Use Checkout.ApplePayButton to accept one-time payments for physical goods or real-world services using Apple Pay. Payments are processed by Whop at 2.7% + $0.30 instead of Apple’s 15–30% in-app purchase fees.
Selling on the web too? Use checkout links or embedded checkout for 100+ payment methods across 195 countries.
Apple Pay is not for digital content. Only use Checkout.ApplePayButton if your app sells physical goods (merch, food, hardware) or real-world services (event tickets, deliveries). Apps selling digital content — premium features, subscriptions, in-app currency, content unlocks — must use StoreKit. See the Apple Pay eligibility section for details.

What you’ll build

  • A product detail screen with a native Apple Pay button
  • A purchase flow that handles success, failure, and cancellation
  • Plan configuration in the Whop dashboard for your physical goods

Prerequisites

Step 1: Configure the SDK

Initialize the SDK at app launch. For one-time physical goods you don’t need planMappings — that’s only used for StoreKit fallback on subscriptions.
See the installation guide for the full setup and security notes on the API key.

Step 2: Add the Apple Pay button

Drop Checkout.ApplePayButton into your product view. The component renders Apple’s official, HIG-compliant Apple Pay button — you can’t substitute a custom-styled button.
When the user taps, they get the native Apple Pay sheet. Face ID or double-click confirms, and the payment flows through Whop.
onCompletion is not called when the user cancels — the sheet just dismisses. No cleanup needed.

Step 3: Choose a button label

The label parameter controls the text on the button. Pick the one that fits the action: The full list comes from Apple’s PayWithApplePayButtonLabel — see Apple’s documentation for every option.

Step 4: Handle the purchase result

onCompletion receives a Result<CheckoutPurchaseResult, Error>. On success you get back: Use this to show a confirmation screen, kick off shipping, or store the receipt for your own records.

Step 5: Set up your plan

Each purchasable item needs a plan in your Whop dashboard:
1

Create a plan

Go to your Dashboard > Products > select your product > Plans > Create plan.
2

Set it to one-time

Choose One-time payment and set the price.
3

(Optional) Set inventory limits

For limited drops, set a stock cap. The checkout enforces it automatically — when stock runs out, purchases stop.
4

Copy the plan ID

The ID starts with plan_. Pass it to Checkout.ApplePayButton(planId:).

Handle fulfillment with webhooks

For physical goods, you’ll need a server-side webhook to trigger shipping after a successful purchase. Listen for the payment.succeeded event:
The client-side onCompletion callback confirms the payment to the user, but your server should handle fulfillment via webhooks — don’t rely on the client alone. See the full webhooks guide for setup.

Complete example

A minimal merch detail view with size selection and Apple Pay:

Next steps

Webhooks

Handle payment events and trigger fulfillment

Apple Pay eligibility

Confirm your app qualifies under App Store Review Guidelines

Build a paywall

Sell subscriptions instead of one-time purchases

API reference

Full SDK documentation