Subscriptions: Support for iDEAL

ow can i add Ideal payment to the subscriptions page ?
And are the prices incl. or excl. vat that we enter in the plugin ?

1 Like

Can you clarify what this means?

This will be up to you as this plugin serves only as an interface with Stripe, not a full on product billing service.

1 Like

iDeal is a common Dutch payment method.


Thanks for clarifying @RGJ.

@PatrickH unfortunately this plugin only supports Stripe and it’s not on the roadmap to support any other payment processor in the future.

1 Like

Ok, but Stripe supports Ideal.
So how can i make this work ?

1 Like

Sheesh - my apologies. I didn’t look carefully enough. Let me take a look.

EDIT: It looks like we’d have to add some extra handling for this in the plugin. Adding this is not currently on the roadmap, but if there was enough support (or a PR for it), I’d be happy to add it.


@justin if you give me some basic pointers where to look then I can take a shot at a PR.


On initial look at iDEAL, it looks similar to how 3DS is set up. Have a look at this commit on where those changes were made.

The trick is going to be handling both one-time payments and subscriptions. Both do things a little differently with PaymentIntents so there may be some special handling needed.


@RGJ Since you’re hands on, check if it would be possible to add Multibanco and Klarna. :wink: (I think they support single-payments only but still)


So I have spent some time on figuring out how to add iDeal payments. In fact, this is not about iDeal but about SEPA Direct Debit. This is an European-wide standard that can automatically and periodically charge from a debit account.

The SEPA Direct Debit flow requires a mandate, which basically is the IBAN (bank account number).

So the flow goes like this (Set up a subscription with SEPA Direct Debit in the EU)

  • client chooses “SEPA Direct Debit” as payment method

  • an IBAN Stripe Element is shown and the client enters their bank account number

  • In order to validate this, the customer must make a successful payment with this bank account.
    This is typically the charge for the first period in the subscription, or € 0.01.
    In the Netherlands, iDeal is used for this step. (Recurring iDEAL payments with Sources). If iDeal is being used, the client chooses their bank from a drop down list and is redirected to the website of that bank. They use a 2FA mechanism (mostly a QR code with an app on their smart phone, or a hardware token) to authorize the payment. Then, they are optionally redirected back to the originating website while the payment is confirmed by a direct webhook (not via the browser but directly between the payment processor and the website).
    It looks like this is in beta and the current method of accepting SEPA payments with Stripe does not require this validation step anyway (?)

  • the client accepts the standard authorization text

  • a SetupIntent object is created.

From here on, the process proceeds similar to the credit card flow.

Given the complexity of the plugin and the complexity of this process, I am unable (as in: not skillful enough) to create a PR for this. I am willing to help and provide test capacity.

Having SEPA would be a big step for the European market, where credit cards are still pretty uncommon for a large part of the consumer market (I think only 15% of the online payments is done by credit card).