[The Hub] Billing: Choose whether to sync with Stripe

1

It seems like every time an idea for the billing system gets floated it’s usually followed by back-and-forth about whether Stripe allows it. For example, Stripe is the reason we can’t change product pricing, adjust plans, etc. Correct me if I’m wrong but Stripe won’t be the only payment processor available here forever, will it?

It’s cool that it syncs what it can but I don’t actually need it to. I would like my clients and their payment info synced, but I personally don’t really care if my products, invoices, and subscriptions are synced, because I already have that info here. I don’t need duplicates of all my invoices and products there too, I just need it to process the payment.

Would it not be possible to offer a choice between syncing only clients and syncing everything? A lot of people here, myself included, go on and on about how much more capable and flexible WHMCS is, but the reason it’s able to do that is because it manages everything and only uses Stripe to run the payment. WHMCS does not create Stripe products or invoices, only clients, so WHMCS can do whatever it wants and just trigger the payment on-demand — using any payment processor.

If Stripe is such a hindrance to the features those of us coming from WHMCS are used to, and if that will eventually be further complicated by trying to support PayPal or other processors, then it seems like it would be helpful to be able to disable it, as I wouldn’t imagine there’ll ever be a shortage of people here transitioning from WHMCS, Plesk, or other systems, and those people will be used to not having invoices in Stripe anyway.

So, WPMUDEV’s invoicing could do the same: create, schedule, and allow us to adjust anything with unlimited flexibility and just use Stripe to run the payment.

Then, if someone does want to sync everything with Stripe, and since that integration is already built and presumably would be for other processors as well, they could simply enable that in the settings. The billing features could then be tailored to the processor and enabled/disabled depending on what the connected processor supports, with clear communication about the differences available to help make the choice.

Or, since it’d obviously /ideal/ to sync as much as possible for the sake of other integrations like accounting software, perhaps it could just be some kind of “enable advanced billing features” option that would allow everything and provide a warning about what bits won’t be synced as a result of the processor’s API.

It seems like this would also allow the processor to be changed. If a customer’s subscription is managed here instead of Stripe, even if it’s currently syncing with Stripe, the payment processor could be changed without losing the subscription, as it could then just cancel the Stripe subscription and set up a new one with the new processor automatically to avoid any break in payment. The customer wouldn’t even have to know anything had changed.

I don’t know if this is feasible at all given however it was built, but it seems like the billing system here will never be best in class if it’s constantly at the mercy of Stripe’s limited API, nevermind the APIs of processors that service parts of the world Stripe doesn’t.

Food for thought.