Stripe issues and import/export

I hit a ‘fun’ mess today. Self-hosting client had somehow messed up the stripe integration, no webhooks were being accepted, so members weren’t getting marked paid. Thought: Unlinking and re-linking Stripe would probably fix this. To unlink Stripe, there can’t be any paying members. So I need to delete the paying members. The client has multiple tiers and multiple newsletters. So I need to capture who is subscribed for what, which isn’t in the export. Then I need to re-import these members, with their stripe IDs (which I’m going to have to cross-match from the Stripe export). But that won’t get them on the right tier unless I turn on developer experiments. And then I’m going to have to update their newsletters.

I can actually do all of that, but if the client had comments (thankfully it doesn’t look like it), then “just delete the paying members and reimport” wouldn’t be an option either.

There’s got to be a better way. What am I missing?

Update for the curious (yeah, no one?) - The problem was that Stripe allows a maximum of three API versions for webhooks. The client had several other services set up for webhooks, and Ghost specifies an old one.

We had to make a new Stripe account, migrate the customers, remake the pricing plans, export and re-import the subscriptions (which is stupidly complicated since the export and import file formats are not the same), and once those subscriptions go live tomorrow (there’s a lag on migrations), re-import to Ghost and fix all the newsletter sign-ups.

Moral of story: Do NOT make Ghost share the same Stripe account with other systems. Should you choose to ignore this, do not make Ghost share the Stripe account with a LOT of payment systems, each with a different API version preference. UGH.

4 Likes