---
title: "Apple Pay Component integration"
description: "Add Apple Pay to an existing Components integration."
url: "https://docs.adyen.com/payment-methods/apple-pay/flutter-component"
source_url: "https://docs.adyen.com/payment-methods/apple-pay/flutter-component.md"
canonical: "https://docs.adyen.com/payment-methods/apple-pay/flutter-component"
last_modified: "2026-06-01T15:33:15+02:00"
language: "en"
---

# Apple Pay Component integration

Add Apple Pay to an existing Components integration.

[View source](/payment-methods/apple-pay/flutter-component.md)

This page explains how to add Apple Pay to your existing Components integration.

## Requirements

Select which endpoint you are using:

### Tab: `/sessions`

| Requirement                                                               | Description                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Integration type**                                                      | Make sure that you have built a Sessions flow [Components integration](/online-payments/build-your-integration/sessions-flow?platform=%7B%7BgetParameter%28%27platform%27%29%7D%7D\&integration=Components).                                                                           |
| **[API credential roles](/development-resources/api-credentials/roles/)** | To [process live Apple Pay payments](#going-live) make sure that you have the following role:- **API Clientside Encryption Payments role**.                                                                                                                                            |
| **Setup steps**                                                           | Before you begin, make sure that you have:- [Set up Apple Pay with your own certificate](/payment-methods/apple-pay/apple-pay-certificate/ios).
- [Added Apple Pay in your Customer Area](/payment-methods/apple-pay/apple-pay-certificate/ios#add-apple-pay-as-a-payment-method-ios). |

### Tab: `/payments`

| Requirement                                                               | Description                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Integration type**                                                      | Make sure that you have built an Advanced flow [Components integration](/online-payments/build-your-integration/advanced-flow?platform=%7B%7BgetParameter%28%27platform%27%29%7D%7D\&integration=Components).                                                                          |
| **[API credential roles](/development-resources/api-credentials/roles/)** | To [process live Apple Pay payments](#going-live) make sure that you have the following role- **API Clientside Encryption Payments role**.                                                                                                                                             |
| **Setup steps**                                                           | Before you begin, make sure that you have:- [Set up Apple Pay with your own certificate](/payment-methods/apple-pay/apple-pay-certificate/ios).
- [Added Apple Pay in your Customer Area](/payment-methods/apple-pay/apple-pay-certificate/ios#add-apple-pay-as-a-payment-method-ios). |

## API reference

### Tab: Sessions flow

When you [make the `/sessions` request](/online-payments/build-your-integration/sessions-flow?platform=Flutter\&integration=Components#create-a-payment-session), Apple Pay does not require any additional fields.

### Tab: Advanced flow

When you [make the `/payments` request](/online-payments/build-your-integration/advanced-flow?platform=Flutter\&integration=Components#make-a-payment), Apple Pay does not require any additional fields.

In case of errors, set your server up to [handle Apple Pay errors](/payment-methods/apple-pay/handle-apple-pay-errors).

## Components configuration

### Tab: Sessions flow

When you [create the configuration object](/online-payments/build-your-integration/sessions-flow?platform=Flutter#configure), you must add additional properties for Apple Pay.

### Tab: Advanced flow

When you [create the configuration object](/online-payments/build-your-integration/advanced-flow?platform=Flutter#configure), you must add additional properties for Apple Pay.

| Property       | Description                                                                                                                                     |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `merchantID`   | Your Apple Pay [merchant identifier](/payment-methods/apple-pay/apple-pay-certificate/ios#create-merchant-identifier).                          |
| `merchantName` | Your merchant name. This is used to generate [`PKPaymentSummaryItem` ](https://developer.apple.com/documentation/passkit/pkpaymentsummaryitem). |

**Create a configuration object for Apple Pay**

```js
final ApplePayConfiguration applePayConfiguration = ApplePayConfiguration(
  merchantId: MERCHANT_ID,
  merchantName: MERCHANT_NAME,
  // ... Other optional parameters.
);
```

Create a configuration object for the Apple Pay Component and pass the configuration for Apple Pay to it.

**Create a configuration object for the Apple Pay Component**

```js
final ApplePayComponentConfiguration applePayComponentConfiguration = ApplePayComponentConfiguration(
  // Change the environment to live to accept live payments.
  environment: Environment.test,
  clientKey: CLIENT_KEY,
  countryCode: COUNTRY_CODE,
  applePayConfiguration: applePayConfiguration
  shopperLocale: SHOPPER_LOCALE, // Optional.
  amount: AMOUNT, // Optional.
);
```

### Optional configuration

You can include the following parameters in the configuration object:

| Parameter                                                                                                                                                      | Description                                                                                                                                                                                                                                                                                      |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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. |
| [`applePaySummaryItems`](https://developer.apple.com/documentation/passkit_apple_pay_and_wallet/pkpaymentrequest/1619231-paymentsummaryitems)                  | An array of the items included in the purchase that summarize the payment amount. The last item must have the same value as the `amount` you send in your [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request.                                                |
| [`requiredBillingContactFields`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/2216120-requiredbillingcontactfields)   | Billing information fields that you require from the shopper to process the transaction. Refer to Apple Pay documentation for sample values.                                                                                                                                                     |
| [`billingContact`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/1916125-billingcontact)                               | A prefilled billing address.                                                                                                                                                                                                                                                                     |
| [`requiredShippingContactFields`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/2216121-requiredshippingcontactfields) | Shipping information fields that you require from the shopper to fulfill the order. Refer to Apple Pay documentation for sample values.                                                                                                                                                          |
| [`applePayShippingType`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/1916128-shippingtype)                           | The type of shipping displayed, for example **Pick Up**, **Ship To**, or **Deliver To**. This is localized. Default: **PKShippingTypeShipping** = **.shipping**.                                                                                                                                 |
| [`allowShippingContactEditing`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepayshippingcontacteditingmode)                             | Indicates if the shopper can edit fields of the shipping address.                                                                                                                                                                                                                                |
| [`shippingMethods`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepayshippingmethod)                                                     | List of available methods for shipping physical goods. Refer to Apple Pay documentation for sample values.                                                                                                                                                                                       |
| [`applicationData`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/2577137-applicationdata)                             | A Base64-encoded string for application-specific data.                                                                                                                                                                                                                                           |
| [`supportedCountries`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypaymentrequest/2928612-supportedcountries)                       | Specify the [ISO 3166 country codes](https://www.iso.org/iso-3166-country-codes.html) if you only support payments from cards issued in specific countries.                                                                                                                                      |
| [`merchantCapability`](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaymerchantcapability)                                              | The payment capabilities the merchant supports.                                                                                                                                                                                                                                                  |

You can refer to the [`ApplePayConfiguration` class in Github](https://github.com/Adyen/adyen-flutter/blob/main/lib/src/common/model/payment_method_configurations/apple_pay/apple_pay_configuration.dart).

### Tab: Sessions flow

After adding the configuration object for Apple Pay, [initialize and show](/online-payments/build-your-integration/sessions-flow?platform=Flutter\&integration=Components#launch-and-show) the Component.

### Tab: Advanced flow

After adding the configuration object for Apple Pay, [add the required callbacks](/online-payments/build-your-integration/advanced-flow?platform=Flutter\&integration=Components#launch-and-show).

## 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](https://developer.apple.com/apple-pay/sandbox-testing/) on Apple's Developer website.

Check the status of an Apple Pay test payment in your [Customer Area](https://ca-test.adyen.com/) > **Transactions** >&#x20;**&#xA0;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](https://ca-live.adyen.com/) or ask your Admin user to verify.

[Set up Apple Pay](/payment-methods/apple-pay/apple-pay-certificate/ios) on your Apple Pay Developer account for your live merchant identifier.

## See also

* [Components integration guide](/online-payments/build-your-integration/sessions-flow?platform=Flutter\&integration=Components)
* [Webhooks](/development-resources/webhooks)
* [API Explorer](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/overview)
