I began accepting payment for my SaaS product in August of 2016, and at the time, I chose Stripe because it seemed to be what every SaaS platform was using. Back then, I didn’t care about pricing, as I suspect was true of most new non-venture-backed SaaS platforms. The priority during a launch to get users, and to see if those users will pay. Whether you’re paying 2.5%, 2.9%, or 3.2% in credit card processing fees doesn’t matter at that point. Getting users to pay you, and to pay you anything, is the priority.
Three years later, my product is earning enough revenue that it has become my primary source of income, and so understanding and negotiating my Stripe fees is far more important than it was at launch time. When I signed up for Stripe initially, the standard across-the-board pricing was 30 cents plus 2.9% of every transaction. That was the industry standard, as even Braintree was using that identical fee structure. Stripe, however, has gone through some almost unnoticeable pricing changes in the last three years. They have done so in a sneaky manner, however, to the point where most companies don’t even notice. In fact, if you try Googling for stories on Stripe’s price increases, you won’t find much substance.
The biggest increase came when Stripe announced their new “Billing” product in May 2018, which was the product specifically meant for subscription-based companies that need recurring billing. But the thing is, Stripe had always supported recurring subscription billing, so the “new” product they announced was confusing to me. After “Billing” was launched, Stripe’s actual fee structure became 30 cents plus 3.3% (instead of 2.9%), but the way it was stated on their pricing page was intentionally confusing. I was so shocked at this dramatic price increase that I inquired with Stripe’s support, assuming I was delusional and misinterpreting something. But Stripe’s support team confirmed my worries — that they had, in fact, increased their rate by an additional 0.4%, which sounds inconsequential but is actually a 12% rate hike. Fortunately, I would be grandfathered into the 2.9% rate since I had been on the platform before this announcement.
I tweeted to @Stripe about this issue, and they responded by putting me in touch with a product manager.
I'm finding @stripe is becoming increasingly confusing and deceptive. See their new, higher pricing. Of course, they hide the biggest portion of the pricing behind a ? mark you have to hover over. WTF. pic.twitter.com/hM5XiaZ6Uy
— Ajay Goel (@PartTimeSnob) May 21, 2018
The conversation was then taken to email, and this email conversation is where I first mentioned a request for a discounted fee structure based on my charge volume.
And the email chain continues…
There’s a long list of things that bug me about this email thread. While the support reps are perfectly nice and professional, the situation requires a deeper look into what Stripe is doing.
My Gripes about Stripe
- This conversation is from mid-2018, yet their pricing page, even today, remains deceptive. If you’re a small SaaS platform and you go to their Pricing page, you’ll see this:
- You’ll probably think that you’re going to be charged 30 cents plus 2.9%. You’d be wrong. Because if you scroll further down, you’ll see a “What’s Included” section with nine items, and then a “More” section, which I interpret as “even more is included.” What that really means is, “requires ‘more’ of your money.” There you will see the “Billing” product which mentions “recurring subscriptions,” and if you’re operating a SaaS platform, of course you’ll need that. But to see that there’s an extra charge associated with it, you have to CLICK that, and when you do, you see this:
What, only 0.4%? So I could charge $100,000 in a month and only pay $400? Of course not, silly. It’s actually 2.9% plus 0.4% on top of that for the recurring billing feature. Why Stripe won’t just come out and say “We’re charging 3.3%” is a mystery I’ve spent more than a year trying to uncloak. I may never solve it.
- This next point is unrelated to fees and negotiation, but I hate it when generally smart companies suck at naming their products. Stripe offers a litany of confusing product names: “Integrated,” “Billing,” “Sigma,” “Radar,” and “Payments.” WTF?! Isn’t Stripe’s core product about helping businesses charge their customers’ credit cards? So is that “payments?” Or is that “billing?” Either would be a suitable name. And what is “Integrated?” Hi, my name’s Ajay. I have a product called “Integrated” I want to sell you. Want to buy it? No, of course you don’t. Product names should easily indicate what the product does. If I told you I had an email marketing product called “Promotions,” would you know what it helps you do? Hopefully. Or how about a product called “SMTP Tester” or “Link Checker?” Here’s what Stripe should be naming their products:
Payments –> Core
Radar –> Fraud Prevention
Sigma –> SQL Reporting
Billing–> Recurring Billing
Why I started negotiating Stripe fees in the first place
The pricing of my SaaS product ranges from about $9/month to about $20/month. We also have annual pricing, but most of our users are on regular monthly pricing. Let’s use $9/month as an example. With the 30 cents plus 2.9% fee structure, that $9 charge nets me only $8.44, because it costs 30 cents plus 26 cents to process the payment. So, the 30 cents is actually the greater of the two costs in this transaction, and therein lies the problem. Because GMass is a low-cost monthly service, the 30-cent transaction fee takes a big bite out of our revenue. When a $9 charge is turned into an $8.44 net, we’re effectively paying a 6.2% credit card processing rate.
One way I could address this is simply by pushing our users toward purchasing annual subscriptions. Then there would only be one single 30-cent transaction fee for a customer every year. However, I prefer monthly subscriptions over annual fees, and my company is a reflection of my own values. So, I’d rather eat the extra cost and let users subscribe monthly, which is what they also prefer. Additionally, I find that a lot of SaaS platforms offer annual subscriptions in an absolutely sleazy way, by disguising the annual fee as a monthly fee.
For example, a pricing page might say “$10/month” in prominent type, and then in super-fine print at the bottom, say “*billed annually.” So you’re actually paying $120/year as one upfront payment, not $10/month over 12 months. I’ve argued with people on Reddit about this issue, and while most of them disagreed with my hardcore stance on the subject, I remain resolute in my thinking.
My first attempt at negotiating fees
I sent this email into Stripe’s support address:
I received this response, indicating I need to be at $100,000/month consistently to be considered for a rate reduction.
Fair enough. I figured I’d wait until I exceeded the $100,000/month target for processing and then ask again.
In reality, I ended up waiting long after we surpassed this threshold. I don’t know why. I thought about contacting Stripe almost every day, but it often got pushed to the back-burner in favor of other top-line growth initiatives. Plus, I just had a feeling that I wouldn’t get very far.
My second attempt at negotiating fees
In August 2019, I finally sent this email to Stripe asking for a rate reduction, after far exceeding the previously-stated $100,000/month minimum:
I received this response:
So what I’m being told is, if Stripe gives me a break on that 2.9% fee, then the following will also happen:
- I’ll have to pay fees on refunds.
- I’ll have to pay an extra 1% on international transactions. (It turns out about 35% of GMass’s business comes from international users.)
- And, now, the most significant change — and this is mentioned last, when it should have been first — is that I would now become un-grandfathered, meaning whatever that 2.9% is negotiated down to, I would also have to pay the additional 0.4% for “Stripe Billing.” So basically, if the rate is negotiated down to 2.8%, then I would pay more under my new plan (2.8% + 0.4%). The base rate would have to be under 2.5% for this to make even a remotely sensible option.
After two video chats with a Stripe rep, one where she wanted to learn more about my business, and the other, after she had gone to her “Deal Desk” supposedly to advocate on my behalf, this is the plan I was offered:
- 2.2% instead of 2.9%
- 30 cents/transaction remains
- 0.4% surcharge for “Stripe Billing” since I’m a recurring billing SaaS company
- 36-month contract requiring me to bill through Stripe exclusively
- Pay fees associated with refunds that I don’t have to pay now
- Pay an extra 1% for international transactions
So, the core of it is that I’d now be paying 2.6% instead of 2.9%, but I’d also be locked in for three years, have to pay an additional 1% on 35% of my customers (the international ones), and pay new fees associated with refunds. The only thing that matters in this whole negotiation is whether this new fee structure would actually save my money based on what we are billing right now and, unfortunately, the Stripe rep — shockingly — could not tell me that.
Not wanting to spend the time to do the analysis myself, and knowing that if I switched, I’d only be saving a few hundred bucks/month and be locked in for three years, I’ve decided to reject the offer and remain on my existing grandfathered pricing plan. Of course, there’s no guarantee that the grandfathered pricing will remain in effect forever.
Final Thoughts on Stripe
While it may seem that I dislike Stripe, the platform has plenty of redeeming qualities, including a great UI and an even better API. It’s likely the easiest platform to integrate with and start billing customers, although I can’t be certain because, for my product, I’ve only used Stripe. Kudos to the brothers who built Stripe. (If you are reading this, please don’t kick me off your platform.) I just wish that the issues I have explained above could be addressed better.
Here’s a Quora question about Stripe negotiation.
The story of Gun.io’s Stripe negotiation.
Here’s another Reddit thread I started a while back: