No momento, esta página não está disponível em português
Payment-method icon

Apple Pay Drop-in integration

Add Apple Pay to an existing iOS Drop-in integration.

On this page, you can find additional configuration for adding Apple Pay to your Drop-in integration.

If you are selling digital goods in your native iOS app, use Apple's in-app purchase instead of Apple Pay.

Before you begin

This page assumes you have already built a Drop-in integration.

Set up Apple Pay

Enable Apple Pay with your own Apple Pay certificate.

API reference

You don't need to send additional fields for Apple Pay. To see optional fields that you can send for all payment methods, choose the endpoint you integrated:

If you run into an error, refer to Handle Apple Pay errors.

Drop-in configuration

When you configure Drop-in, you need additional configuration for Apple Pay.

Include the following when you configure Drop-in:

Parameter name Description
paymentRequest Your Apple Pay PKPaymentRequest object.
merchantIdentifier Your Apple Pay merchant identifier.
requiredBillingContactFields The fields required for the billing contact.
requiredShippingContactFields The fields required for the shipping contact.

Optional configuration

If your integration uses iOS Drop-in v5.0.0 or later, you can optionally include the following when you configure the Drop-in:

Parameter name Description
billingContact A prefilled billing address.
shippingContact A prefilled shipping address.
allowOnboarding Set to true to let the shopper add new cards to their Apple Pay wallet if there are none or if their cards are not supported for the payment.
By default this is set to false, and Apple Pay isn't shown as an available payment method if there are no cards in their Apple Pay wallet.
shippingType The type of shipping displayed, for example Pick Up, Ship To, or Deliver To. This is localized.
Default: PKShippingTypeShipping = .shipping.
allowShippingContact Set to false to prevent the shopper from changing the shipping contact field before showing the payment form.
Default: true.
shippingMethods An array of supported shipping methods.
applicationData Additional information that you provide about the payment request. For example, an order number or cart identifier.
This is signed and included in the resulting PKPaymentToken.
supportedCountries Only allow payments from cards issued in specific countries. This is a list of ISO 3166 country codes.
supportsCouponCode Set to true to let the shopper enter a coupon code which gets validated.
Default: false.
couponCode A coupon code that has already been applied to the payment request.
PKRecurringPaymentRequest Required for recurring payments. Include PKRecurringPaymentRequest to specify that the payment is a recurring payment.

Recurring payments

To enable recurring payments, you must include PKRecurringPaymentRequest when configuring Apple Pay.

To make recurring Apple Pay payments, you have to create a shopper token and then make subsequent recurring transactions with the token.

Test and go live

Use Apple's test card numbers to test your integration.

For a full list of test cards and instructions how to add these to your test device, see Sandbox testing on Apple's Developer website.

Check the status of an Apple Pay test payment in your Customer Area > Transactions >  Payments.

Going live

To process live Apple Pay payments, your API credential needs to have the API Clientside Encryption Payments role. You can check this in your live Customer Area or ask your Admin user to verify.

Make sure you follow Apple's guidelines on:

  • Designing your Apple Pay integration.
    1. Enable Apple Pay on your Apple Pay Developer account for your live merchant identifier.

    2. Configure your firewall's allow-list:

    We do not provide a list of IP addresses for allow-listing, because over time the list may change for various reasons, for example, due to ISP configuration changes.

    If you are unable to configure your firewall with a domain allow-list, attempt to resolve our IP addresses by performing a DNS lookup on, and then add those IP addresses to your allow-list. Beware that you still run the risk of a disruption if the IP addresses change.

See also