Journal

iDEAL Payments With Stripe and Apple Pay in SwiftUI

iDEAL is a bank-redirect method, so the app hands off to the bank and waits. Here is how to wire it with Stripe and Apple Pay in SwiftUI, confirmed server-side.

iDEAL Payments With Stripe and Apple Pay in SwiftUI: a glass iPhone app-grid icon on a mint and teal gradient

TL;DR

iDEAL is the Netherlands' dominant bank-transfer payment method, and in a SwiftUI app you add it through Stripe alongside Apple Pay. The key difference from a card is the redirect: iDEAL sends the user to their bank to approve, then returns, so the app cannot know the result on its own and a server-side webhook is the source of truth for fulfillment. It is only lawful for physical goods and real-world services, since digital in-app content must use Apple's in-app purchase. Build the checkout from a free VP0 design, create the payment on your server, and confirm via webhook.

iDEAL is the Netherlands’ dominant bank-transfer payment method, and in a SwiftUI app you add it through Stripe alongside Apple Pay. The defining trait is the redirect: iDEAL sends the user to their bank to approve and then returns, so the app cannot reliably know the outcome on its own, which is why a server-side webhook is the source of truth for fulfillment. It is lawful only for physical goods and real-world services, since digital in-app content must use Apple’s in-app purchase. The checkout is fastest to start from a free VP0 design, the same shape as an Apple Pay and Stripe SwiftUI template.

What makes iDEAL different from a card

A card charge completes in one round trip; iDEAL does not. Stripe’s iDEAL documentation describes it as a redirect-based method: the customer chooses their bank, approves the payment in the bank’s own environment, and is sent back to your app. That hand-off is the whole reason the integration looks different. The app initiates the payment and then waits for a result it cannot itself guarantee, because the return trip can drop, stall, or be manipulated.

So the mental model is asynchronous: you start the payment, the bank decides, and your server, not the app, learns the real outcome.

Why the webhook is the source of truth

Because of that redirect, the app’s view of the result is not trustworthy, and the fix is the same one a good Stripe integration always uses. The order is marked paid only when Stripe sends the webhook event confirming the payment actually succeeded, never from the app’s success screen. This is the identical discipline behind a direct Stripe integration in Expo: create the payment on your server with the secret key, and let the verified webhook gate fulfillment. With iDEAL the stakes are higher, because the redirect makes a falsely-confirmed success more likely if you trust the client.

Pairing iDEAL with Apple Pay

You do not have to pick one method. Stripe lets a single checkout offer Apple Pay and iDEAL together, and Apple Pay gives users with a card in Wallet the fastest possible path to a completed purchase. Many Dutch shoppers expect to see iDEAL specifically, so offering both covers the tap-to-pay case and the familiar bank-redirect case. A drop-in style checkout like the Adyen drop-in pattern shows the same multi-method layout you will build here.

The rule that decides whether you can use it at all

Before any of this, confirm the product type, because it determines legality. Apple’s App Store Review Guidelines require digital content and services consumed in the app to use in-app purchase, which means iDEAL and Stripe are only lawful for physical goods and real-world services, a shipped product, an in-person booking, a physical event. A digital subscription or unlock must go through StoreKit. Matching the method to the product before you wire anything is what keeps the build shippable.

What to choose

To add iDEAL to a SwiftUI app, route it through Stripe alongside Apple Pay, create the payment on your server, and treat the webhook as the only confirmation of success, never the app’s success screen, because iDEAL’s bank redirect makes the client’s view unreliable. Offer Apple Pay beside it so card-in-Wallet users get the fast path while Dutch shoppers get the method they expect. Confirm first that you are selling physical goods or real-world services, since digital content must use in-app purchase. Start the checkout from a free, $0 VP0 design and put your effort into the server and webhook, which is where an iDEAL payment is actually won or lost.

Frequently asked questions

How do I add iDEAL payments to a SwiftUI app?

Add iDEAL through Stripe, the same way you add cards and Apple Pay, by creating the payment on your server and presenting Stripe’s payment flow in the app. iDEAL is a bank redirect, so the user approves in their bank and returns to your app. Because the app cannot reliably observe that result, a server-side webhook confirms the payment before you fulfill. Build the checkout screen from a free VP0 design and keep the secret key on your server.

Why does iDEAL need a webhook to confirm payment?

Because iDEAL redirects the user to their bank to approve, and the return to your app can be interrupted, delayed, or tampered with. The app’s view of the outcome is not trustworthy on its own. Stripe sends a webhook event when the payment actually succeeds, and that event is the source of truth for fulfillment. Marking an order paid from the success screen instead of the webhook is how iDEAL integrations ship goods on payments that never cleared.

Can I use iDEAL for digital goods in my iOS app?

No. Apple requires digital content and services consumed inside the app to use in-app purchase, so iDEAL and Stripe are only lawful for physical goods and real-world services, like shipping a product or booking an in-person service. A subscription or digital unlock must go through StoreKit. Match the payment method to the product type before you build, or the app will be rejected.

Should I offer Apple Pay alongside iDEAL?

Yes, when you can. Apple Pay is the fastest path to a completed purchase for users who have a card in Wallet, and Stripe lets you offer both Apple Pay and iDEAL from the same checkout. Many Dutch shoppers expect iDEAL specifically, so offering both covers the fast tap-to-pay case and the familiar bank-redirect case without forcing one on everyone.

Can VP0 give me a free iDEAL checkout screen?

Yes. VP0 is a free iOS design library where each screen has an AI-readable source page, so you copy a link and Claude Code or Cursor builds the checkout in SwiftUI with iDEAL and Apple Pay options. You own the code and wire Stripe and the webhook on your server. The design gives you a compliant checkout layout to start from at no cost.

Questions VP0 users ask

How do I add iDEAL payments to a SwiftUI app?

Add iDEAL through Stripe, the same way you add cards and Apple Pay, by creating the payment on your server and presenting Stripe's payment flow in the app. iDEAL is a bank redirect, so the user approves in their bank and returns to your app. Because the app cannot reliably observe that result, a server-side webhook confirms the payment before you fulfill. Build the checkout screen from a free VP0 design and keep the secret key on your server.

Why does iDEAL need a webhook to confirm payment?

Because iDEAL redirects the user to their bank to approve, and the return to your app can be interrupted, delayed, or tampered with. The app's view of the outcome is not trustworthy on its own. Stripe sends a webhook event when the payment actually succeeds, and that event is the source of truth for fulfillment. Marking an order paid from the success screen instead of the webhook is how iDEAL integrations ship goods on payments that never cleared.

Can I use iDEAL for digital goods in my iOS app?

No. Apple requires digital content and services consumed inside the app to use in-app purchase, so iDEAL and Stripe are only lawful for physical goods and real-world services, like shipping a product or booking an in-person service. A subscription or digital unlock must go through StoreKit. Match the payment method to the product type before you build, or the app will be rejected.

Should I offer Apple Pay alongside iDEAL?

Yes, when you can. Apple Pay is the fastest path to a completed purchase for users who have a card in Wallet, and Stripe lets you offer both Apple Pay and iDEAL from the same checkout. Many Dutch shoppers expect iDEAL specifically, so offering both covers the fast tap-to-pay case and the familiar bank-redirect case without forcing one on everyone.

Can VP0 give me a free iDEAL checkout screen?

Yes. VP0 is a free iOS design library where each screen has an AI-readable source page, so you copy a link and Claude Code or Cursor builds the checkout in SwiftUI with iDEAL and Apple Pay options. You own the code and wire Stripe and the webhook on your server. The design gives you a compliant checkout layout to start from at no cost.

Part of the Payments, Monetization & Regional Fintech hub. Browse all VP0 topics →

Keep reading

Apple Pay + Stripe SwiftUI Template: What to Know: the App Store logo as a frosted glass icon on a pink and blue gradient with bubbles
Guides 8 min read

Apple Pay + Stripe SwiftUI Template: What to Know

What you sell decides how you charge: Apple Pay plus Stripe is for physical goods and services. Here is the SwiftUI template an AI agent should build from.

Lawrence Arya · June 8, 2026
Native In-App Purchases in SwiftUI Without RevenueCat: a glass iPhone app-grid icon on a mint and teal gradient
Guides 4 min read

Native In-App Purchases in SwiftUI Without RevenueCat

How to build in-app purchases in SwiftUI with StoreKit 2 directly, no RevenueCat: the tradeoffs, the compliance rules, and what you own server-side.

Lawrence Arya · June 2, 2026
Adyen Drop-in Checkout UI in SwiftUI: a phone toggle icon surrounded by location, calendar, settings, wallet and chart app icons on a coral gradient
Guides 4 min read

Adyen Drop-in Checkout UI in SwiftUI

Build an Adyen Drop-in checkout in SwiftUI: order summary, the Drop-in component, and clear result states, from a free VP0 design. PCI-safe by design.

Lawrence Arya · May 31, 2026
Paddle Mobile Checkout UI Kit in SwiftUI: a glass iPhone UI wireframe icon on a holographic purple gradient
Guides 4 min read

Paddle Mobile Checkout UI Kit in SwiftUI

Build a Paddle checkout UI in SwiftUI: plan, price with tax handled, and a clean pay flow, from a free VP0 design. Plus the honest iOS rule on digital goods and IAP.

Lawrence Arya · May 31, 2026
Robinhood Options Chain UI Clone in SwiftUI: a glass iPhone UI wireframe icon on a holographic purple gradient
Guides 6 min read

Robinhood Options Chain UI Clone in SwiftUI

An options chain is a density problem: expirations, a strike ladder, and a clear price line, made legible on a phone without gamifying a genuinely high-risk product.

Lawrence Arya · June 7, 2026
RevenueCat Paywall Template in SwiftUI (Free Design): a glass iPhone app-grid icon on a mint and teal gradient
Guides 4 min read

RevenueCat Paywall Template in SwiftUI (Free Design)

Build a clean RevenueCat paywall in SwiftUI: plan options, a clear price, and an honest call to action, from a free VP0 design. RevenueCat handles the billing.

Lawrence Arya · May 31, 2026