Could Not Create Stripe Checkout Session on Member Payment

Hi All,

Requesting some help trying to get paid membership set up!
I’ve seen another post with a similar title but seemed to not have any explicit resolution. I have membership set up with Mailgun as my bulk mail sending provider and Stripe connected. but for whatever reason i am not able to get the checkout flow to work after getting subscriptions. Some more details below:


Browsers: I’ve reproduced this on Chrome, Brave, and Safari

Ghost Version: 3.39.0
Ghost-CLI version: 1.15.2
Theme: Lyra (1.0.0)
node -v: v12.18.3
Databse: mysql

Installed using ghost-cli on Digital Ocean Ubuntu 16.04

Members Setting
Allow For Free Member Signup: Enabled
Default Post Access: Free
Subscription Pricing: $4/mo or $40/yr

Ghost Logs

[2020-12-06 20:48:09] INFO "GET /members/api/session" 200 8ms

[2020-12-06 20:48:09] INFO "POST /members/api/create-stripe-checkout-session/" 400 509ms
Console Output

The API response from stripe:
You must opt-in to incomplete subscriptions to specify customer. Learn more at

Just disconnected and re-connected Stripe but no luck getting this to work. Would love some guidance if anyone has run into something similar in the past.


1 Like

Adding that I’ve configured newsletter to send via Mailgun SMTP and included the Private api key in the Members admin panel in case that helps

Today i got this message from Stripe which seems related to the issue described above. has anyone had the same in relation to Ghost Membership payments?

We’re contacting you because we’ve had some trouble sending requests to a webhook endpoint associated with your account in live mode. Webhooks are used to notify your server about events that happen in your Stripe account, such as a payout completing or an invoice being created. The failing webhook endpoint is

You or someone on your team has added that endpoint in your Stripe webhook settings, which you can view and edit here:

Please note that in most cases a failing webhook does not impact your payments or payouts. However, if you use subscriptions we rely on your webhook endpoint to notify you of new invoices. These invoices may be delayed for up to three days if your webhook is unable to successfully receive them. If you use Checkout, you may be handling the checkout.session.completed event as part of your purchase fulfillment process as described here: If you do, failure to handle these events may interfere with purchase fulfillment.

We’ve attempted to notify the endpoint 22 times since December 6, 2020 at 11:24PM. If this endpoint is important to your application, please try and fix the issue. If you do not need the webhook endpoint you can delete it from your Stripe webhook settings. We will stop sending notifications to your webhook by December 15, 2020 around 11:24PM.

Here is the summary of errors we have received when sending you webhooks:

  • 22 requests had other errors while sending the webhook.

You need to return anything between a HTTP 200 to 299 for the webhook to be considered successfully delivered.
For more details on the errors, you can find your events page here:

You can also always review the history of webhooks and failed request logs right from your dashboard:

For more in depth information about how to use webhooks, we recommend taking a look at our documentation: