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.
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.
IdealBankElement
integration
If you are using the react-stripe-js IdealBankElement
or elements.create('idealBank',options?)
method, you need to:
IdealBankElement
and/or elements.create('idealBank',options?)
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:
payment_method_data[ideal][bank]
parameter on Payment Intent and Setup Intent confirmation requests, or the ideal[bank]
on Sources creation requests.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.
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:
payment_method_data[ideal][bank]
of the payment intent) and not the bank selected by the buyer in your checkout page’s bank selector, given this value will no longer be used.