StripeAPI limited to Card, while API works with other payment methods

Fill out the following bug report template with as much detail as possible!

Are you sure this is a bug? If you just need help, post in the developer help category. If it’s a feature request, head to the ideas category.


Issue Summary

  • Explain roughly what’s wrong:
    Currently only Cards are available as payment method in Ghost.
    This seems to be limited in Ghost/ghost/stripe/lib/StripeAPI.js on line Line 461 and Line 555:

payment_method_types: [‘card’]

Steps to Reproduce

  1. Have a Ghost install connected to Stripe with a paid plan.
  2. In your Stripe account go to enable other payment and select at platform ‘Ghost’
  3. Message:

Ghost is managing payment methods for you

Ghost has not enabled you to manage payment methods from the dashboard.

The following steps show that the API will work correct with other payment methods.

  1. Select platform ‘No Platform’ and enable methods like iDeal, SEPA, Paypal, etc. (+follow verification steps if needed)
  2. In Stripe go to product catalog and select one of your product (aka subscriptions)
  3. At pricing select one of them and create a payment link.
  4. Now use the payment link and subscribe.
  5. you will be added through the API to the Ghost memberships.

A last additions, it could be that the simplified API from Stripe is the way to fix this:


Setup information

Ghost Version
latest

Node.js Version
latest

How did you install Ghost?
Though Caprover

Provide details of your host & operating system
not relevant.

Database type
*MySQL 8 *

Relevant forum posts

1 Like

Thanks for the well-written report — You’re right, we’ve said this works and it currently doesn’t. There have been a few different PRs to fix it, but they’ve all gotten stuck at various points.

Taking another look now

3 Likes

Great report Frank, thanks. Hope this issue can be solved asap, John. Glad you are picking it up. iDeal is by far the most-used payment method in the Netherlands, see iDEAL payments for businesses | Stripe. Okay, NL does not have the size of China or the US, it is the 20th largest market for eCommerce with a predicted revenue of US$25,153.3 million by 2024, placing it ahead of Argentina.

Update — we dug into this today and spent some time testing a change to enable support for additional payment methods. It all seems to work without issue.

However, we want some real world testing before we roll this out for everyone, so we’re going to start by shipping this as a beta which can be enabled from Ghost → Settings → Labs

This will be released tomorrow in Ghost 5.82.0, and rolled out to Ghost(Pro) next week.

Docs here:

3 Likes

I can confirm SEPA is working, but have trouble enabling recurring for Bancontact/iDeal in the Ghost configuration of Stripe.


Hmm.

2 Likes

Same here. No sign of iDeal…

1 Like

We looked into this and it appears that the iDEAL “recurring payments” switch (in the screenshot above) cannot be enabled in Stripe unless your premium tiers are set to currency: EUR.

Once they are, this seems to be working ok in our testing.

We’ve updated the docs to reflect this, too

Hopefully this works - but let us know if not!

1 Like

Thanks for the effort and update @John. Haven’t been able to test a lot last weeks.
Yes, for iDeal and probably Bancontact you need to set Tiers to Euro. That’s done.

Still somehow in the Ghost configuration of Stripe, you can flip the switch for recurring, while it is possible in the default configuration.
image

Using a custom page or payment link from Stripe with the Ghost Tiers do result in a page with iDeal/Bancontact.

Ghost payment page wth same subscription for refference

So it seems somewhere in the API ghost<->stripe the recurring is being blocked?

Simular report: Additional payment methods beta - can't enable iDEAL recurring payments

1 Like

To add context: in the docs it suggests as SEPA is the same as iDeal: “and customers will see SEPA as the payment method during checkout.”

It is not. Those are two different experiences. As added by @mulderfrank, iDeal should be a separate payment option.

Thanks for the extra details - really appreciate it! :)

We’ve reached out to Stripe to ask for some input, because we can’t tell what the issue is atm.

3 Likes

Hi @John ,

Did Stripe provide any feedback/suggestions? Let me know if I can do some more testing.

1 Like

Still waiting for a response from them :( but I’ve just sent another followup

2 Likes

Posted as reminder to our friends at Stripe. ;-)

Having a new website layout waiting for the moment this is fixed. Would be great.

Hi, in another thread @hdrs did a suggestion and I noticed in this file that the STRIPE API Version is set to 2020-08-27, while the latest is 2024-04-10, could this make something incompatible?

Edit; link to Stripe API changelog Changelog | Stripe Documentation

That’s a good find! I’m not sure if related but I’m following up again now and including that note

Quick update - I’m still working on this and following up regularly. Stripe have confirmed that there is a bug on there side, and confirmed that they’re “working on it” - but that’s as far as I’ve gotten so far.

I will keep sharing news as soon as we have any - sorry it’s so slow :(

4 Likes

Thanks for the update!

Update for this week is they say they’re hoping to have the bug resolved by next week.
(Let’s see)

1 Like

Apparently the fix has been rolled out, so now you should be able to enable “Recurring payments” under the iDEAL settings for the “Ghost” payment method policy.

I’ve just tested and I can now turn on the switch here: https://dashboard.stripe.com/settings/payment_methods

However, when I test on a Ghost site with a VPN to The Netherlands, and Euro based tier - I still don’t see iDEAL coming up as an option at checkout.

Forgot to enable the labs flag (whoops) - now I’ve done that, this is working for me.

How about you?

2 Likes

Just checked and it seems to be fixed! Awesome. Will be doing some more tests in a few hours.

The same error consists with Bancontact, popular in Belgium, where recurring payments cannot be selected as well. Maybe Stripe can do the same fix there?

Will be checking in after tests shortly.