This page explains how to add Apple Pay to your existing Web Drop-in integration.
Requirements
Select which endpoint you are using:
Offering Apple Pay on web
When offering the option to pay with Apple Pay on web, there are additional things to consider if you use iframe elements. If you want to show Apple Pay on browser other than Safari, see compatibility to learn which devices and operating systems support this feature.
Apple Pay with iFrames
To show Apple Pay in an iframe element when the shopper is using Safari as their browser:
- For shoppers on Safari 17 later: add the
allow
attribute to the iframe to let the iframe communicate correctly with Apple Pay APIs:<iframe allow="payment"> </iframe>
Safari 17 is available on iOS 17 and later, and macOS 12 and later.
- For shoppers on Safari 16 or earlier: match the iframe origin and your top-level origin. The protocols, hosts (full domain name), and ports, when specified, must be the same for both pages.
Device compatibility
On v6.10.0 and later versions of Drop-in, you can offer Apple Pay on all supported third-party browsers, platforms, and devices, including Windows and Chromebooks. Shoppers can now initiate Apple Pay payments from any compatible device and complete their payment by scanning a code. See Devices compatible with Apple Pay on Apple Pay documentation.
On earlier versions of Drop-in , the support for Apple Pay on third-party browsers differ per shopper device:
- MacOS devices: available on Safari.
- iOS and iPadOS devices: available on all browsers, including web views.
- Non-Apple devices: not available.
API reference
You do not 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:
- /sessions: This is the default with Drop-in v5.0.0 or later.
- /payments: If you implemented an additional use case.
If you run into an error, refer to Handle Apple Pay errors.
Drop-in configuration
Select which endpoint you are using:
Optional configuration
This optional configuration parameter is only accepted on the dropin
instance.
Instant payment button configuration
Use the instantPaymentTypes
object to display the Apple Pay payment button at the top of the list of available payment methods. The sample below shows how to do this:
Optional Apple Pay configuration
You can do the following:
- Configure the appearance of the Apple Pay button.
- Include additional data such as transaction information, fields for billing and shipping contact information.
- Configure how to render Apple Pay code.
- Add logic for specific events on your payment form.
Button configuration
Property | Description |
---|---|
buttonType |
The type of button you want to show on your payments form. Possible values: - plain: Apple Pay - buy: Buy with Apple Pay - donate: Donate with Apple Pay - check-out: Check out with Apple Pay - book: Book with Apple Pay - subscribe: Subscribe with Apple Pay The following types are supported from Web Components v4.1.0: - add-money: Add money with Apple Pay - contribute: Contribute with Apple Pay - order: Order with Apple Pay - reload: Reload with Apple Pay - rent: Rent with Apple Pay - support: Support with Apple Pay - tip:Tip with Apple Pay - top-up: Top Up with Apple Pay |
buttonColor |
Specify the color of the button you want displayed on the payment form. Possible values: - black: Black button - white: White button with no outline - white-with-line: White button with black outline |
buttonLocale |
Specify the locale to set the language for the Apple Pay button. For possible values, see Apple Pay documentation. |
Payment request data
Payment request data | Configuration object | Description |
---|---|---|
Transaction information |
version
|
Check the Apple Pay on the Web documentation for version features and compatibility details. |
totalPriceLabel
|
String. Description of the line item. | |
lineItems
|
A set of line items that explain recurring payments, additional charges, and discounts. Refer to Apple Pay documentation for sample values. | |
merchantCapabilities
|
Payment capabilities supported by the merchant. Default value is [supports3DS ]. Refer to Apple Pay documentation for other options. |
|
shippingMethods
|
List of available methods for shipping physical goods. Refer to Apple Pay documentation for sample values. | |
shippingType
|
Optional value that indicates how purchased items are to be shipped. Refer to Apple Pay documentation for available options. | |
supportedCountries
|
Specify the ISO 3166 country codes if you only support payments from cards issued in specific countries. | |
supportedNetworks |
Specify the card networks that you support. This is configured automatically based on your Adyen merchant account settings, but you can override the configuration here. | |
Requested billing and shipping contact information |
requiredBillingContactFields
|
Billing information fields that you require from the shopper to process the transaction. Refer to Apple Pay documentation for sample values. |
requiredShippingContactFields
|
Shipping information fields that you require from the shopper to fulfill the order. Refer to Apple Pay documentation for sample values. | |
shippingContactEditingMode
v6.13.0 or later |
Set to storePickup for in-store or other pickup shipping options to prevent the shopper from editing the shipping address field. | |
Known contact information |
billingContact
|
Set an up-to-date billing contact information for the shopper. |
shippingContact
|
Set an up-to-date shipping contact information for the shopper. | |
Custom data |
applicationData
|
A Base64-encoded string used to contain your application-specific data. For example, a shopping cart identifier or an order number that you will need to identify this transaction. |
Recurring payments |
recurringPaymentRequest
|
Required for recurring payments. Include to specify that the payment is a recurring payment. |
Code rendering configuration
Property | Description |
---|---|
renderApplePayCodeAs |
Specify whether the Apple Pay code is rendered as a modal, or pop-up window within the page when using Apple Pay in a browser other than Safari. Possible values: - modal: This is the default when the Apple Pay Component is not embedded in an iframe. - window: This is the default when the Apple Pay Component is embedded in an iframe. |
Events
The following event handlers are supported for Apple Pay. Select the event handler names to see the related Apple Pay documentation.
Event | Description |
---|---|
onClick(resolve, reject) |
Called when the shopper clicks the Apple Pay button. Call resolve() to continue or reject() to stop the payment flow. |
onValidateMerchant(resolve, reject, validationURL) |
Required if you use your own Apple Pay certificate. Called when the payment sheet is displayed. See Apple Pay documentation for more information. |
onAuthorized(data, actions) |
Called after the shopper authorizes the payment with Apple Pay. This contains the raw event from Apple Pay, and the raw event from Apple Pay pre-formatted by our Web SDK. Call actions.resolve() to continue or actions.reject() to stop the payment flow. See Apple Pay documentation for more information. |
onPaymentMethodSelected(resolve, reject, event) |
Called when the shopper selects a new payment method. Call resolve() or reject() , passing the
ApplePayPaymentMethodUpdate
object. See Apple Pay documentation for more information. |
onShippingContactSelected(resolve, reject, event) |
Called when the shopper selects a shipping contact. Call resolve() or reject() , passing the
ApplePayPaymentMethodUpdate
object. See Apple Pay documentation for more information. |
onShippingMethodSelected(resolve, reject, event) |
Called when the shopper selects a shipping method. Call resolve() or reject() , passing the
ApplePayPaymentMethodUpdate
object. See Apple Pay documentation for more information. |
onApplePayCodeClose |
Called when the Apple Pay code modal or window closes. |
Optional Apple Pay Wallet Order Tracking
Supported in v6.0.0 or later.
You can use Apple Pay Wallet Order Tracking to give your shopper order tracking through Apple Pay. For more information, refer to the following resources from Apple:
- Apple Pay Wallet Order Tracking Demo
- Apple Pay Tech Talk about implementing Apple Pay with order management
- Example Order Packages
-
Implement
onOrderTracking
: -
When
onOrderTracking
is called depends on which server-side flow your integration uses. -
From your server, get the order details and pass it as
orderDetails
to your client side.
If an error occurs, the Apple Pay payment overlay is closed, and the payment is successfully completed without creating an order in the shopper's Apple Wallet app.
Optional Apple Pay capabilities check
Supported in v6.10.0 or later.
You can use the
applePayCapabilities
method to check whether the device supports Apple Pay and if the shopper has an active card in their wallet for web payments. You can then configure when to offer Apple Pay depending on the available payment methods in your shopper's wallet. This is only recommended if you display Apple Pay on the product page.
To implement applePayCapabilities
:
applepay.applePayCapabilities().then(capabilities => {
// Check whether the person has an active payment method in their wallet.
switch (capabilities.paymentCredentialStatus) {
case "paymentCredentialsAvailable":
// Display an Apple Pay button and offer Apple Pay as the primary payment option.
case "paymentCredentialStatusUnknown":
// Display an Apple Pay button and offer Apple Pay as a payment option.
case "paymentCredentialsUnavailable":
// Optionally, display an Apple Pay button.
case "applePayUnsupported":
// Do not show an Apple Pay button or offer Apple Pay.
}
});
Recurring payments
Apple Pay supports tokenization for recurring transactions on v5.39.0 and later.
We strongly recommend that you ask explicit permission from the shopper if you intend to make future recurring payments. Being transparent about the payment schedule and the charged amount reduces the risk of chargebacks.
To enable recurring payments, you must include recurringPaymentRequest
when configuring Apple Pay.
To make recurring payments, refer to Tokenization to:
- Create a token through the initial payment
- Use the token in subsequent payments.
- Manage tokens.
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.