Make required changes to your iDEAL API integration

iDEAL no longer expects merchants to display a bank selector on their checkouts. Instead, as part of the new iDEAL 2.0 experience, customers choose their bank on the new iDEAL hosted bank selection page. You should stop sending the customer’s bank on your API requests to create an iDEAL payment, unless it’s a returning customer and you already know their bank.

Do I need to take action?

No action is required for Stripe users on Checkout, Payment Links, Payment Element and Hosted Invoices, since Stripe has already migrated these to comply with the new iDEAL regulations.

If you have integrated with the IdealBankElement, Mobile SDK, or have an advanced API integration with Stripe, you must take action to make these changes.

What you need to change

IdealBankElement integration

If you are using the react-stripe-js IdealBankElement or elements.create('idealBank',options?) method, you need to:

Mobile SDK integration

Make the following changes to your mobile app integration:

Android

// BEFORE

val paymentMethodCreateParams = PaymentMethodCreateParams.create(
  ideal = PaymentMethodCreateParams.Ideal("Bank Name"),
  billingDetails = PaymentMethod.BillingDetails(
    name = "Jane Doe"
  )
)
// AFTER

val paymentMethodCreateParams = PaymentMethodCreateParams.create(
  ideal = PaymentMethodCreateParams.Ideal(null),
  billingDetails = PaymentMethod.BillingDetails(
    name = "Jane Doe"
  )
)

iOS

// BEFORE

let iDEALParams = STPPaymentMethodiDEALParams()
iDEALParams.bankName = "abn_amro"

let billingDetails = STPPaymentMethodBillingDetails()
billingDetails.name = "Jane Doe"

let paymentMethodParams = STPPaymentMethodParams(
    iDEAL: iDEALParams,
    billingDetails: billingDetails,
    metadata: nil
)
// AFTER

let billingDetails = STPPaymentMethodBillingDetails()
billingDetails.name = "Jane Doe"

let paymentMethodParams = STPPaymentMethodParams(
    billingDetails: billingDetails,
    metadata: nil
)

Advanced API integration

For payments created for a customer paying with iDEAL for the first time:

For returning customers, you can store the bank returned by Stripe on ​​payment_method_data[ideal][bank] on Payment Intents and Setup Intents, or ideal[bank] on Sources, and pass it on future payment confirmations. This skips the iDEAL bank selector page and takes your customer directly to their issuing bank.

If you want your customer to select a new bank, create a payment without specifying the issuing bank. Only pass a different bank on future payment requests after your customer has gone to the iDEAL bank selection page again and you received the new bank from the Stripe API.

What happens if you do not make these changes

To prevent non-compliance, Stripe will update your iDEAL integration, such that the selected bank by users in your checkout page is ignored. The impact of this change is the following: