--- title: "Swish iOS Component" description: "Add Swish to your Components integration." url: "https://docs.adyen.com/payment-methods/swish/ios-component" source_url: "https://docs.adyen.com/payment-methods/swish/ios-component.md" canonical: "https://docs.adyen.com/payment-methods/swish/ios-component" last_modified: "2026-05-23T12:56:20+02:00" language: "en" --- # Swish iOS Component Add Swish to your Components integration. [View source](/payment-methods/swish/ios-component.md) You can add Swish to your existing integration. The following instructions show only what you must add to your integration specifically for Swish. If an instruction on this page corresponds with a step in the main integration guide, it includes a link to that corresponding step of the main integration guide. What you must add to your integration depends on the [server-side flow](/online-payments/build-your-integration) that your integration uses: ## Sessions flow Component ### Before-You-Begin ## Requirements | Requirement | Description | | | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | | **Integration type** | Make sure that you have an existing Sessions flow [iOS Components integration](/online-payments/build-your-integration/sessions-flow?platform=iOS\&integration=Components). | | | **Checkout API** | Make sure that you use Checkout API v68 or later. | | | **Setup steps** | Before you begin, [add Swish in your Customer Area](/payment-methods/add-payment-methods). | | ### Add-Parameters-Sessions-Request ## Add additional parameters to your /sessions request You do not need to add any parameters when you [create a payment session](/online-payments/build-your-integration/sessions-flow?platform=iOS\&integration=Components#create-a-payment-session). ### Add-Configuration ## Add additional configuration for Swish You do not need to add any configuration parameters for Swish. ### Initialize ## Initialize the Component for Swish To [initialize](#initialize-the-component) Swish, use the `InstantPaymentComponent` class. **Initialize the InstantPaymentComponent** ```swift let paymentMethods = session.sessionContext.paymentMethods // Check that the payment method is supported before showing the Component. guard let paymentMethod = paymentMethods.paymentMethod(ofType: .other("swish")) else { return } // Create an instance of InstantPaymentComponent. let component = InstantPaymentComponent(paymentMethod: paymentMethod, context: context, order: nil) self.currentComponent = component // Set the session as the delegate. component.delegate = session component.initiatePayment() ``` ## Test and go live When you make a Swish payment in the test environment, the payment is authorised within 15 seconds. You can simulate different refusal scenarios, as outlined in the [Merchant Swish Simulator](https://developer.swish.nu/api/mss/v1), by adding the error code to the `shopperStatement` property. For example, `"shopperStatement": "FF08"`. Check the status of Swish test payments in your **Customer Area** > **Transactions** > **Payments**. To accept live Swish payments, you must [submit a request for Swish](/payment-methods/add-payment-methods) in your [live Customer Area](https://ca-live.adyen.com/). ## Advanced flow Component ### Before-You-Begin ## Requirements | Requirement | Description | | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | | **Integration type** | Make sure that you have an existing Advanced flow [iOS Components integration](/online-payments/build-your-integration/advanced-flow?platform=iOS\&integration=Drop-in). | | | **Action handling** | Make sure that your existing integration is set up to [handle the additional action](/online-payments/build-your-integration/advanced-flow/?platform=iOS\&integration=Components#handle-the-redirect). `action.type`: **qr**. | | | **Setup steps** | Before you begin, [add Swish in your Customer Area](/payment-methods/add-payment-methods). | | ### Add-Configuration ## Add additional configuration for Swish You do not need to add any configuration parameters for Swish. ### Initialize ## Initialize the Component for Swish To [initialize](#initialize-the-component) Swish, use the `InstantPaymentComponent` class. **Initialize the InstantPaymentComponent** ```swift // Check that the payment method is supported before showing the Component. guard let paymentMethod = paymentMethods.paymentMethod(ofType: .other("swish")) else { return } // Create an instance of InstantPaymentComponent. let component = InstantPaymentComponent(paymentMethod: paymentMethod, context: context, order: nil) self.currentComponent = component // Set the Component as the delegate. component.delegate = self component.initiatePayment() ``` ### Add-Parameters-Payments-Request ## Add additional parameters to your /payments request You do not need to add any parameters to the [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request when you [make a payment](/online-payments/build-your-integration/advanced-flow/?platform=iOS\&integration=Components#make-a-payment). ## Test and go live When you make a Swish payment in the test environment, the payment is authorised within 15 seconds. You can simulate different refusal scenarios, as outlined in the [Merchant Swish Simulator](https://developer.swish.nu/api/mss/v1), by adding the error code to the `shopperStatement` property. For example, `"shopperStatement": "FF08"`. Check the status of Swish test payments in your **Customer Area** > **Transactions** > **Payments**. To accept live Swish payments, you must [submit a request for Swish](/payment-methods/add-payment-methods) in your [live Customer Area](https://ca-live.adyen.com/).