19 Sep

Changes to our billing system

Today I’m here to announce that we’re going to be sun-setting our existing credit card processing system via 2Checkout and have integrated our platform with Stripe to handle our billing needs going forward. This is something we’ve been looking forward to and working towards for some time, but since we’re talking about payment processing, the handling of credit card information, and a core business process for us, I wanted to take a moment and talk a bit about the why, the benefits, and the security aspects of this change.

First of all, this move is in no way a poor reflection on 2Checkout or the service they’ve provided over the years. We’ve been happy 2CO customers since our earliest days. Over the years we’ve had the normal ups and downs of any business relationship, but they’ve always done right by us in the end. When Stripe first came out on the credit card processing scene, their rates were a good bit lower than what we were paying 2CO at the time, and the integration options with Stripe, well, they blew us away to be honest. But that old custom home-brewed management platform that we only just recently moved off of? It would have needed quite a bit of work in order to move our processes from 2CO to Stripe. Work that, at the time, we weren’t willing to commit to on a platform we didn’t have faith would be the long term future for us. So we reached out to 2CO and expressed our concerns over the pricing gap versus Stripe. They were willing to adjust our pricing to match what Stripe offered and we back-burner-ed worrying about billing again for a while.

But even with the new pricing, we really wanted the flexibility of the Stripe API and what it could do for us.

With 2CO, you would place your order with us, and then be passed over to 2CO’s site to enter your credit card information. This meant re-entering things such as your name, address, etc a second time, and when the process was finished our system would be notified that a billing order was created (much like a PayPal subscription).

However, much like a PayPal subscription, once created, a billing order can not be altered in anyway. If your account, start a second account, order a domain, change your hosting plan, have a monthly bandwidth overage, or anything else of that sort, a whole new billing order is required. This was always a pain point for us. Customers with multiple accounts would end up with multiple billing dates each month, and every upgrade/downgrade would require a very manual process to get everything straight. Not only was this extra work for us, but it was overly complicated from the client’s perspective as well.

In short, in the interest of credit card security (and PCI compliance!) there was a very hard and fast border between the data we could see/touch/change, and things that required 2CO to change things on their end (or be performed manually via their site), and so the integration options available to us, and thus, to our clients, via the client portal, were very limited.

Even something as simple as updating the card on file for an order (if say, your card expired), we could provide a link to the 2CO site, but you would need to provide the billing order number, plus other pieces of identifying information (last 4 digits, billing zip code, etc) to confirm your identity with 2CO. There was no authenticated way for us to say “This is Bob, please let Bob update his card that you have on file!”.

With Stripe however, we get flexibility in all these things. When you enter your card info on our check out page, it is handed off to Stripe’s API, and what they return to us, and what we store on file for your account, is a unique identifier. That identifier lets us make subsequent API calls to Stripe later, to then take other actions related to that card without needing to know the full card information, and without us having to store the full credit card number/etc on our systems.

In short, armed with our own API keys, and a previously generated for us by Stripe token, we can do things like allow clients to update their own credit card on file directly via the client portal. We can do things likes upgrades, downgrades, services additions, etc all automatically and without a convoluted process requiring multiple steps on both your end and ours. We can even work towards every customer having a single monthly invoice and billing date (and thus, payment!), doing away with our multiple-account clients from being bombarded with various charges scattered throughout the month!

In short, life can be glorious.

Now, to get to this promised land of billing simplicity, we’re not willing to up-end everyone’s day. We’ve simply added Stripe based Credit Card processing to our ordering platform, and disabled the 2Checkout based option for new orders. PayPal remains untouched for those folks who prefer it.

New clients will have all their credit card billing handed via Stripe going forward.

For existing clients, if you currently pay for your hosting via 2Checkout, that won’t immediately change. If something comes up that would require a new 2Checkout order to be started (for instance, if you sign up for a new account, or upgrade your existing plan), that will be done via Stripe instead. Our billing team will help guide you through the process as needed, but by and large the process is going to be “log into the client portal, click to update your credit card on file, and you are done”.

The goal is that over time we’ll gain the benefits and flexibility of Stripe, without disrupting operations or requiring all clients to rush to the portal and enter their card information before their next billing date. We’ll monitor the gradual migration to Stripe, and may revisit the topic at some point if there’s some compelling reason to accelerate the process, but for now, this gets us on the path to a better place.