Use iDEAL to set up future SEPA Direct Debit payments
Learn how to save bank details from an iDEAL payment and charge your customers later with SEPA Direct Debit.
Caution
We recommend that you follow the Set up future payments guide. If you’ve already integrated with Elements, see the Payment Element migration guide.
iDEAL is a single use payment method where customers are required to authenticate each payment. With this integration, Stripe charges your customer 0.01 EUR through iDEAL to collect their bank details. After your customer authenticates the payment, Stripe refunds the payment and stores your customer’s IBAN in a SEPA Direct Debit payment method. You can then use the SEPA Direct Debit PaymentMethod to accept payments or set up a subscription.
Caution
To use iDEAL to set up SEPA Direct Debit payments, you must activate SEPA Direct Debit in the Dashboard. You must also comply with the iDEAL Terms of Service and SEPA Direct Debit Terms of Service.
You can use Checkout in setup mode to collect payment details and set up future SEPA Direct Debit payments using iDEAL.
Create or retrieve a CustomerServer-side
To set up future SEPA Direct Debit payments using iDEAL, you must attach the SEPA Direct Debit payment method to a Customer.
Create a Customer
object when your customer creates an account with your business. You can retrieve and use a customer’s stored payment method details later, if you associate the ID of the Customer
object with your own internal representation of the customer.
Set up future payments
This guide builds on the foundational set up future payments Checkout integration and describes how to enable iDEAL—it shows the differences between setting up future payments for cards and using iDEAL.
Enable iDEAL as a payment method
When creating a new Checkout Session, you need to add ideal
to the list of payment_
.
Charge the SEPA Direct Debit PaymentMethod laterServer-side
When you need to charge your customer again, create a new PaymentIntent. Find the ID of the SEPA Direct Debit payment method by retrieving the SetupIntent and expanding the latest_
field where you will find the generated_
ID inside of payment_
.
Create a PaymentIntent with the SEPA Direct Debit and Customer IDs.
Test your integration
Using your test API keys, select any bank from the list. After confirming, you’re redirected to a test page with options to authorize or fail the payment method setup.
- Click Authorize test payment to test the case when the setup is successful.
- Click Fail test payment to test the case when the customer fails to authenticate.