Before you start

This guide assumes that you know how to

Accept payments with Apple Pay

Prepare the client session

Apple Pay requires the following data to process a payment successfully. Pass the following data in the client session, or in the payment request (for manual payment creation).

Parameter NameRequiredDescription
3-letter currency code in ISO 4217 format, e.g. USD for US dollars
  1. order
Details of the line items of the order
  1. order
The country in which the order is created

Prepare the SDK for payments

Show Universal Checkout

Apple Pay is automatically presented to the customer when calling Primer.showUniversalCheckout.

try {  await Primer.showUniversalCheckout(clientToken, {    container: '#checkout-container',    options,    onCheckoutComplete({ payment }) {      console.log('Checkout complete.', payment)    },  })} catch (e) {  // handle error}


Check the Customization Guide to learn how to customize payment method buttons.

Additionally, you can style the Apple Pay button by passing the following options:

const options = {    /* Other options... */    applePay: {        buttonType: 'plain', // 'plain' (default) | 'buy' | 'set-up' | 'donate' | 'check-out' | 'book' | 'subscribe'        buttonStyle: 'black', // 'black' (default) | 'white' | 'white-outline',    }}
Capture billing address

By default, Apple Pay does not capture the user's billing address.

You can ask to capture the billing address by setting the option captureBillingAddress. The billing address is added to the client session before the payment is made.

const options = {    /* Other options... */    applePay: {        captureBillingAddress: true,    }}


  • Apple Pay is only supported on Apple Devices and Safari Browser. For more info take a look at the Apple support page.
  • Until iOS 16, Apple Pay does not appear on in-app webviews.
  • Apple Pay only appears if the website is using HTTPS.
  • Our current implementation of Apple Pay does not support the card networks mir, girocard, bancomat, and bancontact.


Apple Pay button is not presented

If the Apple Pay button is not presented, check that:

  • The browser is Safari
  • The website is using HTTPS
  • The domain has been registered in the Dashboard
  • The order details and country code have been passed to the client session


Check out Apple Pay's Sandbox Testing guide to make payments with Apple Pay on sandbox.

Go live

You don’t need to do anything particular to go live — just make sure to use production credentials.