Stripe migrates Stripe Subscriptions users to more expensive Stripe Billing
stripe.com
stripe.com
Hi folks -- as Edwin points out elsewhere in the thread, the article title isn't accurate. (I'll update or delete my comment if it's fixed.)
[Update: it was changed. It used to read "Stripe is now charging 0.5% more for recurring charges."]
You can happily make recurring charges yourself and no additional fees are incurred. Lots of Stripe customers do this and we don't charge anything extra for it.
If you decide to use Stripe Billing, which is a separate product, we charge for that. Stripe Billing's pricing hasn't changed in a few years. What's changing is that we're ending the several-year grace period where we didn't charge anything for Stripe Billing for businesses who started to use this functionality before 2018.
Charging for Billing helps us fund a lot more investment in it -- we've gone from very basic cron-like functionality to a pretty full-featured subscriptions management tool. (You can read more at https://stripe.com/billing.) Billing is now sophisticated enough that companies like Slack and Atlassian are using and paying for it. We've built things like "Smart Dunning" (which improves revenue recovery for failed charges by about 14%), better analytics, international payment method and invoicing support, and a whole host of other features. There are now more than 30 people working on improving Billing.
Importantly, Stripe Billing is (and will remain) significantly cheaper than most of the other competitors in the space.
I'm curious how Patrick does it though as his attention isn't exactly cheap
[1] In Stripe's API, the subscriptions section is nested under "Billing"
[2] https://www.stripe.com/billing is all about handling subscriptions through Stripe
Those are reference customers and should be treated with much greater privilege. They are early adopters and could very easily become early the next group of vocal detractors. I can't help but wonder about the poor client advocate Stripe fired before they made this move.
But lots of us have been using Stripe for a lot longer than that, and don't necessarily want or need all the extra things you're now putting under the "Billing" brand.
We haven't received any notification of a change from Stripe, but from the HN discussion, it looks like the option to just have a simple, automated recurring charge -- the key feature that attracted businesses like mine to Stripe in the first place -- is being removed. If that is the case then we'll naturally view the change as a 0.5% increase in Stripe's fees, pure and simple.
Your account has been upgraded to Stripe Billing for free. No matter how much revenue you process on Stripe, you’ll get unlimited use of Billing’s Starter plan included in the price you currently pay for payments. All new features are available in your account now, no API version upgrade necessary.
If Stripe pushed ahead forcing an additional 0.5% with no new features adopted, that's pretty predatory and the kind of rent seeking that will leave a bad taste in a lot of people's mouth which then when starting new projects won't be looking to adopt Stripe with the same passion they did years ago.
> I'm sorry that it feels that way.
It's not just that it feels this way. It is this way. I'm still on the Subscriptions API and haven't seen anything in Billing compelling enough to rewrite my code to implement.
I'm not saying any other payment processor is better. They may not be. It's just that while I deeply respect some of your broader ethical stands, this kind of behavior is dismaying.
I think it is that way, and this is an attempt to make it feel a different way.
"As a user of Stripe Subscriptions, you will get all the functionality of Stripe Billing's starter plan with no change in price. You can continue using it free of charge on your existing Stripe pricing, even beyond the $1M free threshold. This will be automatically applied to your account. Contact support@stripe.come with any pricing questions"
As far as I can see, the Billing Starter plan has not changed and still applies. Not only that, it claims we get "all the functionality of Stripe Billing.." when this hasn't been the case for a few months. New features have been gated recently, ie. the new customer portal.
You have every right to change your pricing how you see fit. However, if this message was worded as it being a grace period, we would have taken steps two years ago to consider other tools or building something in-house.
(Our actual thinking was that we'd iterate on the product for a few years until we were confident it was good and worth paying for -- with both large and small companies using and paying for it -- and then revisit.)
And the original message, when I read it for the first time today, implies that it is for life because it's "beyond $1M" and there's no qualifier.
I'm not using Subscriptions so I have nothing invested. But that's what your message says.
I should have known something was up when Stripe sent out the email survey two days ago about subscription pricing. Very strange that you only sat on those results for a day before pulling the trigger on this. Interestingly, some of the survey answers included concepts of a free tier.
To me, the percentage makes little sense. You could be running 1,000,000 $10/mo subs, or 1,000 $1,000/mo subs and the cost is the same. This pricing model hits high value subscription companies significantly harder, even though Stripe's costs are lower.
While this is true on some level, the challenge is that we'd have to set pricing at an inefficient point (i.e. we'd end up charging more than some businesses can afford to pay and less than others are willing to pay). If we charged $1/sub/mo (say), $5/mo subscriptions would be prohibitively expensive. At the other extreme, if we charged $0.02/sub/mo per month, it just wouldn't make sense to invest as much in improving the product, which would indirectly hurt businesses by depriving them of a counterfactual product that they'd like to be able to buy. Pricing is obviously always an exercise in trying to find a reasonable trade-off between simplicity / optimality and this is our best effort.
In the survey, there were a lot of options for dual pricing models. It must have been something you were considering. I'd be curious to hear why this was decided against?
To be honest, none of the new Billing features are relevant to us. We'd much rather have new features gated, like customer portal is, than paying 0.5% for features we never intend to use.
I'm actually not sure. I'll check with the team. (The timing of the survey was coincidental, though -- we've been working on making our Billing pricing consistent since the start of the year.)
> To be honest, none of the new Billing features are relevant to us. We'd much rather have new features gated, like customer portal is, than paying 0.5% for features we never intend to use.
We seriously considered that. It gets pretty complicated (and error prone), though, with the number of different code paths that have to be maintained. The fact that such a large fraction of customers we reached out to directly were willing to pay for a more full-featured Billing (mostly on the basis of competitors being significantly more expensive) made us eventually conclude that it wasn't worth the complexity of having two adjacent versions of the product.
This seems a little unlikely. Unless the billing side of things was too complex? :)
https://en.wikipedia.org/wiki/Durbin_amendment
https://usa.visa.com/dam/VCOM/download/merchants/visa-usa-in...
Bingo. This is like your cell phone company telling you that the tethering feature you have always had access to is now part of their Pro plan, for which you won't be charged extra. Then they turn around and start charging for the Pro plan on the grounds that it has a bunch of features you don't care about — and one feature that was previously available outside the Pro plan.
Unless I'm misunderstanding what's happening here, this seems really lousy. I became a Stripe customer because of the simplicity and transparency. It seems that both of those benefits are disappearing.
With a structure like that, I'd want to use Stripe Billing for every customer, rather than considering any kind of special arrangements for high-value customers.
Once you tell someone they can continue using it as is forever, you cannot later say ‘actually, we meant just a few years’.
I did this when moving from a First Data ISO to Vantiv to ensure we could avoid collecting card data from clients again.
btw there's a small bug on the storage part of the pricing plan calculation. It shows 5,525 GB units but then the calculation is for 10,100 units.
We'd be totally happy keeping the old functionality of Stripe subscriptions and not getting any of the new hotness. I think Stripe has done a great job supporting old versions of the API, seems like we should just be able to stay on our old pricing / subscriptions functionality as well.
Saying that we can build the infra ourselves to do reoccurring kind of goes against what we purchased Stripe for initially. I know technically you can change your pricing/billing however you want but this is more of "let's capture more revenue from old customers" than it is "we launched a bunch of stuff thats new so pay for the new stuff".
There's obviously heterogeneity, though, and we'll be as reasonable as possible. If this would be really disruptive for your business, or if you need more time to plan a migration (if you don't think Billing makes sense for you), or something like that, I'd be happy to connect you with the team -- we could extend your current pricing through the end of 2021.
There have been comments elsewhere in the discussion that for folks with higher volume, we should be negotiating our fees. At what volume would you recommend companies reach out to your team to do so?
So maybe but not as good of one?
Then presumably you'll follow alooPotato's suggestion and allow folks to not pay extra for stuff we never wanted and never signed up for?
Presumably you can see how many of your customers (myself included) have never even looked at some of these new features you've added to Billing. I'm literally finding out about these features in this thread. If people were not aware of these features, you can figure they are not interested in paying extra for them.
This feels like New Coke.
I'm ok with paying for services like this that provide loads of value. I expect there's increasing diversity in terms of Stripe's customer base and how they use the product, and trying to pick a single percentage price point that works across all of them is no longer feasible.
That said, I'm quite unhappy with Stripe's pricing as an AU customer. We're paying exorbitant rates to convert USD to AUD (think retail bank rates despite transacting multiple millions a year, ~3x what we'd pay Transferwise). There's no option to settle in USD, and a lot of our expenses are in USD, so we then pay another currency conversion fee when we spend.
It's problematic to the extent that we're considering whether the ongoing costs and hassle of setting up a US entity, dealing with international tax, compliance, parent companies etc. would be worthwhile.
If not, I would set up a US checking account and settle some portion stripe transactions there. Take that revenue and pay your US vendors. No currency conversions.
Braintree have offered it for years so this might be the final motivation to switch over.
It's been around 7 or 8 years with Stripe now and it just seems like they are prioritising heavily increasing their average revenue per user at all costs.
I could sell Stripe to my developer friends (and did, a lot!) in a single sentence: "You can add credit card charging to your site in about 15 minutes for 2.9% + 30¢ per transaction." I can't do that anymore. Stripe is no longer a single-sentence sell.
Stripe still does good work. But the air is getting murkier. I'll point to some objective changes, but mostly Stripe is just starting to feel different.
- Several years ago, when I saw announcements that Stripe started supporting ACH payments (and later international payments), I thought, "Great! This is Stripe! I'll just be able to flick a switch and turn those on." Not so. I understand that it's complicated from their end. It's just not the same "Stripe is so easy" experience. "Stripe is supposed to abstract away the complexity, not expose it to me."
- The pricing page is a big sign of the added complexity. There used to just be one or two numbers on that page [1]. Compare that with the current pricing page [2]
My suggestion to you, pc: Start a little company within Stripe to disrupt Stripe (i.e. re-simplify) in the same way Stripe disrupted the industry 10 years ago. Or keep getting bigger and become just as complex as the things Stripe replaced.
[1] https://web.archive.org/web/20111216054911/https://stripe.co...
If you want more users, double down on marketing to existing users instead of pissing them off. Although it's really hard to measure, happy users do the marketing for you and bring in more customers.
First they started charging for international cards (with the "grandfathering" for years excuse), now this. I've already migrated off of Stripe and now actively recommend people think twice about going with them. Instead, I'm recommending Braintree... aka Paypal. It seems we've come full circle already.
If I add all their percentages up I’m paying 10% per transaction.
[1] https://web.archive.org/web/20111216054911/https://stripe.co...
[2] https://stripe.com/pricing#pricing-details
reply
would second this VERY strongly
I think Stripe does a lot of things right, but your comments back in 2018 certainly indicated that Billing could be used in perpetuity:
"- For existing customers, there's no pricing change. You just get more functionality than before for free. This is what we generally try to do: we want Stripe to continually become better value for you over time, as you get more functionality for the same price."
https://news.ycombinator.com/item?id=16766846
I specifically reached out to Stripe support back then to verify this would be the case and they confirmed. If you've since changed your mind, I think you should come out and say that's the case as opposed to saying this is a communications issue.
While you are here:
Any update on when Stripe will be available in South Africa ? We really need some alternatives to PayPal.
For some reason your designers have decided that your website should pick a language based on the ip address.
Stop guessing a language :)
... What I'm not so happy about is: * we have asked Stripe to sign a contract for years (something requested by our institutional investors but have always been just pointed to an online MSA URL * we are now being asked to sign a contract suddenly w/new line-item charges and no ramp-up or notice period
Most companies (especially those that are PE backed) have already done year end planning + budgetting.
Happy to provide the details of our timeline but so far at a high-level: * contacted by a new account rep 11-days ago about signing a contract * still have not received the proposed rates for billing, processing, rev rec, sigma etc ... * ... but have been told that Billing charging needs to kick off 1/1/2021 (which is essentially 45-days away)
Thanks, JE
Stripe Billing has had this pricing for a few years. For some longtime users of Subscriptions, we originally didn’t change their pricing but are doing so now. We think charging a separate fee for our Billing product is fair, given comparable products in the market (say, Recurly or Chargebee) charge something similar. (Generally more!)
We’ve been investing a ton in making Stripe Billing better. For example, from talking to users we learned people needed it be significantly easier to get up and running with subscriptions. So in the last year we built the Customer Portal[0]. (We’ve also listened to you and improved the analytics[1].) Payments is a low-margin business and our customers are (quite reasonably) very price sensitive. So to be able to make Billing a great product, we realized it was going to have to charge a fee commensurate with the product scope.
[0] https://stripe.com/docs/billing/subscriptions/customer-porta...
[1] https://support.stripe.com/questions/billing-analytics-dashb...
I genuinely don't even know: am I going to be seeing this price increase? Would have liked getting an email about something like this, rather than finding out on HN, and now having to dig into things to figure out if I'm actually affected (which I presume I am).
To give you a comparison: if my bank or credit card company increased their rate, I'd expect to be (and am) notified of that.
My two cents :)
That can be a lot of money for some people, and in general, I'm a bit disappointed that I found out about the Billing product increase through HN. I would have expected to get an email from Stripe, maybe a month ago, saying "Hey: our rates are going up on 12 November"
What bothered me the most was earlier this year when they stopped refunding fees when issuing refunds. They rolled out a feature during the early days of the pandemic, and in the same week they started charging older accounts for refunds https://news.ycombinator.com/item?id=22371330
> If a refund takes place, you will also be refunded the following transaction fees:
> - The domestic processing fee (for example, the 2.9% fee)
> - The cross-border processing fee (for example, the 3.9% fee)
> Note that the Authorization fee and Disputed chargeback fee are non-refundable.
So it looks like Amazon Payments holds onto the 30 cents but refunds the variable part. It's obviously not zero, but for a $100 domestic charge Amazon's 30 cents is much less than the $29.30 that Stripe pockets.
Is this true?
God I hope the decimal is just in the wrong place there
Maybe some of those economies of scale are only 80% realized if you’re a financial institution. And rightfully so.
Don’t have a horse in the game here re: Stripe, just hoping the damn kids will go on someone else’s lawn.
At least this was true last time I looked into this.
Thanks for tackling a low margin business!
I always look at people like they have two heads when they pitch something like that.
Mod thread on title change here: https://news.ycombinator.com/item?id=25073970
Hopefully this triggers more competition.
Copying what other people in the market are doing is the antithesis of what made Stripe so important when it first launched.
I understand existing banking structures already work on the percentage model (so there's probably downstream percentage-based charges Stripe must pay), but why can't this entire banking structure be disrupted to transfer that value back to society?
I’m not a fan of Stripe’s price increase for recurring plans either, and I think they could’ve communicated it better, but their pricing is far from unreasonable given the amount of research and engineering effort they put into the product that I don’t have to do myself.
Anyone else at scale and have an old integration? How are you handling the fee increase?
My company went through negotiations with Stripe earlier this year. We were more than 1.5% + $0.10 away from our current processor, and they wouldn't budge to even match our existing rates. They kept saying they are a better value, and offer more things for the price - except most of the "value-adds" we didn't care about (their only interesting things was the Stripe Checkout with Fraud detection - which requires you to use their hosted checkout page... which is a complete non-starter for a serious eCommerce operation).
Perhaps not a good fit - but paying a ton more per year in CC processing fees just because Stripe uses "AI!!!!" wasn't something we could swallow.
People don't switch processors often, so building out an integration once every 10 years isn't a big deal if you design your integration correctly.
That, and I assure you, your customers don't give a darn about which processor you use.
Does it? In my experience you can just use their Hosted Fields which are actually really great.
Even "hosted fields" is absurd (and by that I assume you mean an iFrame you embed), and would require redesigning significant portions of the checkout process.
That, coupled with their refusal to even match our existing rates, was really off-putting. The sales people made little effort to understand our business and pain points - they just wanted to talk about how great Stripe is and all the AI stuff they do.
Users of eCommerce platforms generally will be SAQ-A since they are not the ones controlling the system which handles CHD. This covers platforms like Shopify, BigCommerce, 3dCart, Volusion, etc, where the platform itself must be PCI compliant on their own, separate from whatever PCI level you are compliant with.
If you self-host, such as Magento, XenCart or some custom implementation - then yes you will be SAQ-D.
Your sales team walked away from the negotiations after a while because we weren't willing to pay significantly more just to have the brand "Stripe" be part of our business. It really was a "but, but, we're Stripe! AI! Why don't you just agree to the terms? AI!!! Did we tell you about the AI!?!?!".
I suppose it was Stripe's loss in the end... and I imagine we're not the only company that had this experience.
I have the impression Stripe's "bread and butter" are small-time shops (partnered with Shopify where 99% of sites generate < $1MM annual), hobbyists, and similar smaller operations that either can't negotiate better rates due to low volume, or don't know they can negotiate better rates due to high volume. Nothing is wrong with that - it just means Stripe isn't a good fit for companies with significant volume.
I believe they've changed the name now, but we're using what used to be call PayPal Payments Pro, which is just a processor (customers stay on your checkout page, you build the checkout form, no PayPal account necessary for the customer, etc). We were using CyberSource when PayPal approached us for negotiations - they ultimately made an offer we couldn't refuse (based on volume) and made the switch. This CC Processor product from PayPal has none of the baggage or horror stories you hear from people using PayPal Express Checkout - it's almost like you're dealing with a completely different company.
Data portability is a solved problem in this space - so there isn't a material risk of churn due to a migration like this.
We recently went through the process and it was very easy.
[1] - https://stripe.com/docs/security/data-migrations/exports
Here's my anecdote of a different situation but with some similarities, where we couldn't get the data portability we wanted.
A few years ago I asked our Direct Debit provider if we could migrate customer subscriptions from our old business entity to our newly incorporated company version of the exact same business.
The old business entity was to be wound up as a complete transfer to the new one, the trading name was identical (transferred along with trademarks), and we were happy to keep the same DD provider.
The answer we got was no, each customer would have to enter their bank details and agree to the same terms again. From the customer's point of view, they probably wouldn't even notice it was a different business, because in a real sense it wasn't.
We decided this would lead to significant churn in customer subscriptions, and we couldn't afford it. It would be cheaper to maintain and administer the old business entity, for no business purpose whatsoever, just the sole purpose of continuing to receive the DD subscriptions, and pay them immediately in full to the new business entity.
We're planning to migrate away from Stripe after this latest in a line of price increases.
We wanted to move ~300 credit card details from SagePay to Stripe. SagePay had a minimum admin fee of 2000GBP in order to do this, and no amount of negotiation could shift it.
If anyone's had a better deal from SagePay - let me know.
- increased fees for non-US payments (3.9% + 30 cents)
- did not refund fees when you refund customers
If there was a compelling alternative that isn't PayPal we'd jump in a heartbeat
Stuck with nowhere to go.
Not against improving margins, but customers that have walked hand in hand with Stripe for so long and seen them thru their early growing pains should definitely be grandfathered.
Grandfathering would be the cool thing to do.
> would be the cool thing to do.
I understand they are still using the same functionality they had at signup time, and are still on the same API version, so not taking advantage of new direct functionality.
Yes, of course there is a bunch of indirect functionality or magic behind the scenes, but from a company lifetime perspective, when you enter into an agreement with a service provider, you would expect a relatively constant delivery of services, at the agreed prices, especially if your needs have not changed.
There are many companies that upon adding new functionality or services, decide to grandfather. New direct functionality comes at new prices, even if you are inherently benefitting from the new stuff.
Three I can think of, Zendesk, Customer.io and Geckoboard grandfathered our plans.
When it is easy to switch providers, grandfathering is not that important, but if you're tightly integrated, which pretty much everyone doing volume on stripe is, then you're screwed. You can't leave.
Even if you negotiate custom pricing, there is a knock on the door one day saying, "new pricing in place. Take it or leave"
You're literally moving millions of dollars a year through your billing platform. That's not a little bit of money. That's a lot. Own it.
You're not a hostage. You're deeply integrated through nobody's fault but your own.
Nobody said it was a little bit of money? Where is this comment coming from?
I have no idea if it's a good point or not.
Yet everyone did before stripe.
Saying you are "held hostage" might be a bit of a dramatic way to phrase it, but for some companies a change like this actually makes a difference. Such is the life of relying on any third-party services though.
Also, pointing out "faults" is not helpful. It's unproductive conversation. Many companies are built upon third-party services that they are (probably falsely) under the impression will not change. It's not your "fault" if you decide to use AWS services and become deeply integrated and they increase their prices by 10% and you can no longer afford their services... It's no one's fault. It's just unfortunate and all you can do is try to work around it, or close the company.
This is the real problem.
From the sidelines, it's easy to dismiss an additional 0.5% overhead as trivial. After all, that's less than 1%, right?
But it's not so simple. That 0.5% comes out of the profit margin. If a company has 50% profit margins, losing that extra 0.5% isn't a big deal. However, if a company is operating on 10% margins, that 0.5% suddenly becomes an extra 5% overhead.
It's your fault if you chose lockin. If you don't want to talk about fault, fine, but then don't go on to talk about fault :)
You have to start somewhere. Unless you have been handed a substantial amount of starting money and baked "we need to be provider agnostic" into your company beliefs from the beginning, it's rarely an early priority. Becoming profitable is usually what comes first. Securing a stronger foundation for your platform comes over time.
> If you don't want to talk about fault, fine, but then don't go on to talk about fault :)
What is the point of saying this?
> What is the point of saying this?
Whatever criteria you used to justify asking this question probably also apply to it.
Exactly this. We started being Stripe customers after they bought some third party several years ago. While Stripe maintained the deal it was good for our business but recently they decided to end the deal we had (I don't blame them, it was a very sweet deal for us). Fortunately my startup always have had more than one provider and now we can calculate a "least cost routing" process, which will definitely move a lot of our volume outside of Stripe.
But it is just that, business. You should not trust any one provider with your business, not even AWS (i.e. not even at that level).
The day you decided to go with Stripe you started being hostage of them, but this is not a bad thing, this is business, you choose a partner, they are allowed to change the terms if the contract permit it.
People on HN always think they deserve to be treated better than others
I have noticed a significant attitude of, "I originally signed up for this product with 'x' cost and 'x' features, and you have zero right to change anything about that."
It seems like a basic contract negotiation process would ferret that out - I thought that was a business thing to do. I work in higher ed, and we absolutely have to have contracts for all third-party vendors; any changes are negotiated with the start of new contracts. If we can figure it out, surely startups can - we're not really all that good at efficiency.
1. Stripe
2. Braintree
3. Coinbase Commerce
4. GitHub Marketplace
I think a lot of those problems related to us being a European business and Stripe not quite being there yet in regards to Tax and Invoicing but now we have switched it's really shocking to me how steep of a price Stripe is placing on a somewhat lacking billing system here. I always assumed their Billing product was there to lock people in to the payment gateway and make it harder to have Interchange++ pricing negotiations.
What's particularly sad is that I have fond memories of the early days of Stripe when I was genuinely excited to use their recurring charge product because the developer experience was so nice.
Today with VAT MOSS, SCA and a larger team the Billing product is neither easy nor powerful for us.
One saving grace for anyone else who finds themselves with an expensive / insufficient Stripe integration is that they make migration out very easy. We were able to get the whole process done with no downtime or missed billing - so it's definitely possible even when dealing with complex billing arrangements.
Is there reason for us to be scoffing at the new price? This is still a fraction even of processing the credit card.
But for full disclosure, my latest project just bit the bullet and accepted the extra 0.5%. Wanted to see how it goes. Could always switch if I found the need.
So my fee for every subscription charge is increasing to a an even more ridiculous A0.30 + 5.4%.
Our users have been asking for PayPal for years, and I had always put off integrating because of how frustrating their API was. But it feels like the Stripe developer dream is over. Fine, I’m adding PayPal support. :(
I have spoken to a few small businesses that are going down the path of opening up a US based subsidiary to avoid these charges.
Do you have any indication from these small businesses what the setup and compliance costs are like?
For example checking upcoming card expirations is running a DB query on a daily background / cron job that returns cards where the expiration date <= some threshold that makes sense for your app (maybe 2 months). It's like 3 lines of code with most popular web frameworks. Typically you'd be storing a card's last4, card type, exp date and an association to a user in your system so this info is handy.
It doesn't take much more effort to send emails out as warnings for that. I've done it in a few systems before Stripe had this email feature.
The smart retries is interesting but this feels like another thing where Stripe is happy to collect our data but then re-sell it to us at a premium once they've gathered enough data. Similar to having to pay a lot more money per transaction to get fraud protection rules (Radar). Basically we pay Stripe to train their system and then they double dip and charge us extra to use these features.
We doing DB/cron queries now with "web frameworks" ? :O
It depends on what web framework you use, but yes.
If you had a Flask, Django, Rails, Phoenix or Laravel app it's a matter of writing a DB query in your ORM / data mapper of choice and having that execute on a scheduled job using Celery, Sidekiq or Oban (a couple of different popular job processing tools).
So yes in those cases I would treat that as something my web app handles. Going into the implementation details of ORMs and background job processing strategies didn't seem important for the sake of that post. The takeaway is it's possible to solve that problem with very little code in a typical web app.
The big time waster these days, at least for those of us around Europe, is the tax and regulatory hassles. But Stripe and other payment services following similar models offer limited help with a lot of that stuff anyway.
I think a much better move would have been to add a new billing plan for the few new features that have been added, but leave people with the basic functionality that they grew used to.
And c'mon, narrow margins my ass. We are not talking about a small startup here, we are talking about Stripe, a billion dollar company! They should be able to afford having a developer or two working on those long neglected features and not compare themselves with chargebee. It's just sad.
Is there a cost-based rationale for doing a percentage-based pricing model, or is it really "because they can"?
I could brainstorm and say "fraud" or "defense against lawsuits involving large transactions" but those both feel weak.
It’s definitely because they can.
There is no rule that pricing must be cost based.
Companies like Stripe shield you from the intricacies of interchange pricing but if you operate on interchange + (meaning, the merchant account provider is charging you interchange + X %), you see that processing corporate rewards cards are the biggest killers, because you are essentially covering their 2% cashback programs. Additionally, some of that cost is insurance. If you have a fraudulent charge on your card processors work with your banks to cover some of that money, which they make from the overall % of total volume.
Not saying any of that is right, or an ideal situation, that's just the why.
If you have mostly EU customers, then it would make sense to switch the acquirer and probalby get an Interchange++ rate.
If you have customers from all over the world, using mostly business cards or cards from Amex, then the Stripe rate might be okay.
Liability scales with transaction size.
The majority of the current payment cost (2%+) happens when paying by card. But as you say a payment right now is just moving bits. The main reason why cards charge so much is due to Risk. If you read about "interchange fees" you will see how Visa, Mastercard, AmEx, etc. classify different cards into different levels and charge a different exchange rate for each of them.
But the thing is, this system and networks were created last century (around 1960) and nowadays there is better technology to assess risk and to perform the transactions.
Percentage of revenue based pricing is very common in enterprise software and not without reason.
How angry is a customer over a $10 payment not going through vs a $10,000 payment not being processed correctly? We're likely talking the difference between the inconvenience of not having Netflix for a few minutes vs you've just cost me $35,000 in lost sales because my subscription failed and you can't find out why on time.
I want the company who made $50 on that transaction helping me, not the company who charged $1.40 flat rate and needs to budget their offering by limiting development and support.
The simplest way to fairly charge everyone an appropriate amount for the risk that Stripe takes on by processing their transactions is as a percentage of the transaction.
We don't need to be held hostage - but probably will if we're not careful.
> As an early user of Stripe, you have had free access to Stripe’s machine learning based fraud protection tools, Stripe Radar and Radar for Fraud Teams.
Not affiliated to CB - just a happy customer!
This is likely worsened when you consider transactions between parties in different countries.
PayPal has this management console where a customer can see all recurring charges and instantly cancel any of them with one click: https://imgur.com/a/lLE3iAt
IMO, this should be standard across all payment cards. I detest businesses that make it hard to cancel recurring charges and I think payment card providers need to stop that from happening (I get Stripe is not quite a consumer card provider...yet).
I have no idea if my subscriptions are on Stripe Billing. So confusing.
If anyone can suggest a better title—that is, accurate and neutral, and preferably with less clunk—we can change it again.
The submitted title implied that Stripe is raising its prices on all recurring charges. As I understand it, that's not true; therefore that title was misleading and needed to be changed. (Site guideline on this: "Please use the original title, unless it is misleading or linkbait; don't editorialize." - https://news.ycombinator.com/newsguidelines.html)
If there's another title that is even less misleading, we can change it again. Btw, as a rule, the best way to complain about a bad title is to propose a better one. We can't come up with all of them and often adopt community suggestions (a few examples: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...).
Stripe is indeed stating they'll start charging me 0.5% more for a service they said would be free for me when I signed up. They've done this by renaming the service from subscriptions to billing and adding features to it that I've never used. According to others in this thread, the message they sent out two years ago was:
> "Your account has been upgraded to Stripe Billing for free. No matter how much revenue you process on Stripe, you’ll get unlimited use of Billing’s Starter plan included in the price you currently pay for payments. All new features are available in your account now, no API version upgrade necessary."
This is what I remember as well.
I'd say a good title would be, "YC-funded Stripe moves Subscription customers to Billing, increases their fees and breaks earlier promises". The original title isn't as nuanced but is still more accurate than the current one, IMO.
- Stripe tutorial: https://docs.killbill.io/latest/stripe_plugin.html
(I'm a Kill Bill cofounder)
This is a win-win and I'll be moving my startup over to Stripe Billing in the near future.
Look at it this way: If you're serving big customers on annual plans you can always include text on your invoice about how they can pay via SWIFT / SEPA wire transfer. Of course you're still eating the currency conversion and bank handling fees for accepting those payments.
For us the pain of the 2.9% + 0.5% percent is not big enough to warrant even researching cheaper alternatives. If someone has hot tips for something that allows me to charge via Credit Card, accept payments in various currencies, and has an invoicing and subscription product built in I'm all ears!
If you want subscriptions/recurring payments, stored payment methods and all the "fancy" stuff contemporary payment processors offer, you pay for it. If you just want to move money from A to B, it should be easy and it should be free.
The only way for that to happen is for it to be socially provided service.
Will this infrastructure handle chargebacks? Fraud? Stolen credit cards? Forex?
If yes, it can't be zero-cost.
If no, it won't be usable until the middle-men build all of these systems on top of it.
Neither you (the sender) nor the recipient pay anything for this service.
You may have noticed that banks/financial services companies make bucketloads of cash. Why should the cost of running the system always be pushed back to consumers? The EU/UK example points to a different direction entirely.
The problem you described is far, far simpler than the problem Stripe solves.
On that score, using a direct payment scheme, such as Direct Debit here in the UK, beats charging cards using a service like Stripe on every important point. Lower fees. Much lower involuntary churn due to charge failures. Outside the scope of SCA and all the complexity that introduces. Even for international payments using similar direct payment schemes in other places that have them, if we compare GoCardless for those with Stripe for charging cards, the currency conversion is much cheaper via GoCardless as well because they now work with Transferwise.
It's 2020. Unreliable, overcomplicated, fundamentally insecure, expensive methods to collect some money from a customer and give it to a merchant should have gone extinct a long time ago.
There's also no obvious reason why Stripe and all other payment processors and credit card issuers and banks and financial services should not be carrying the cost of all the things you've mentioned, rather than them being part of the costs passed on to customers and merchants.
(edited) typo
The title used to read something like 'Stripe charges 0.5% more for subscriptions'.
edit: I would understand if this was actually the title of the page. But it isn't either.
2.9% + 30c for a card payment sure, but it's less clear whether making an invoice through their dashboard counts as "Invoicing" as described under stripe Billing. It looks like it does.
That's a bitter pill to swallow when all you're doing is creating the odd (large) manual invoice and have zero need for all that other jazz.
Time to go shave another yak and write a tiny stupid abstraction for this. Useless economic activity for the gdp win!!
Starts slowly, then add in dark patterns for FX currency conversion, withdrawals, etc. etc.
But... it adds up.
For example, just looking at the last $39 USD transaction in my Stripe dashboard which gets converted to $53.72 AUD (I charge in USD but receive AUD)
Stripe currency conversion fee: $0.88 Stripe processing fees: $1.69 Total: $2.57
That's 4.78% fee. Now add this new 0.5% and we are over 5% fee on transaction processing.
Is this expensive enough for me to consider alternatives? No.
Stripe billing competes with Recurly and Chargebee. Anyone using those products that has had similar price increases? How were they handled?
The intention is to have a front page with accurate and neutral titles. Call that censorship if you want to (as far as I can tell, that word is just a pejorative for editing that someone doesn't like) but it seems a bit weird to speak of "censoring" titles for being misleading.
As I said elsewhere in the thread (https://news.ycombinator.com/item?id=25074261), if anyone can suggest a better title (i.e. more accurate and neutral) we'd be happy to change it again.
This thread is newsworthy for a lot of folks because they are learning that a feature that they thought they were paying for through the standard fees is now only available if they pay extra for a bundle of other stuff (which they never signed up for).
So not mentioning the effective price increase in the title comes across like the someone is hiding the ball, especially because of the YC connection.
e.g. 2.6%+ per transaction? Jesus christ.
I worked for a payment processing co. It was all about financial institution connections (uncompetitive). And the costs my company incurred to process payments were negligible.
Instead, view your payment processor as just another PaymentProcessor enum. Own the recurring subscriptions yourself, or be willing to pay for someone to do it for you.
For instance, a person pays for Feb 15 to Mar 14, the card expires March 1, then the person requests a cancellation Mar 7 and wants a refund.
Its not impossible, it just takes a lot of time and effort to weasel out all of these end cases.
For all the end cases, you manually handle them until they happen with enough frequency to require automation. A simple recurring billing system is absolutely fine for most businesses, and as you scale you can add more bells and whistles to it.
This is a huge understatement! Its very painful. It sounds easy, but there are so many end cases with the calendar alone! Let along discounts, prorating, cancelations, etc.
It sucks to become dependent on providers for this service, but it also sucks to have crappy recurring billing.
It's not. Sure it's a problem and it requires thought and engineering skills. But overall it is not one of the complicated problems and quite standard work for an engineer.
Sometimes I feel that people have become so used to have a third party API for everything so that they are scared of doing actual engineering work... ;)
That said, of course weighing the cost of dev and maintenance in-house versus paying a surcharge is a very valid consideration. At the same time one should not underestimate the risk/cost of getting tied to a provider for anything critical (and payments are obviously critical).
If you reduce it to "Charge them again after X period" then sure. If you want to comply with worldwide payment laws and tax requirements, then I'd disagree it's "not one of the complicated problems".
Edit: And dunning. And pro-rata'd subscription changes. And pro-rata'd refunds.
We pay Paddle 5% of every subscription transaction for a reason.
Handling of tax has to happen on any payment and is not an issue specific to recurring billing/payments. It obviously brings in its own set of issues, the biggest of which is the multiplication of requirements if you want to comply with the rules of many countries, as you point out.
It's also not something that a service like Stripe will handle for you to a useful degree.
Edit: And dunning.
Which, AFAIK, you still can't actually test properly with Stripe's system before making it live. I'm not even sure it's fully documented yet, and if it is, that's a relatively recent development.
And pro-rata'd subscription changes. And pro-rata'd refunds.
You can literally write the code to do things like this in a few minutes, including all conceivable edge cases. Many of us have. It's basic arithmetic combined with some almost-but-not-quite-trivial logic around dates.
We pay Paddle 5% of every subscription transaction for a reason.
But Paddle's model is a merchant-of-record, which also takes care of things like the tax reporting and remittance headaches that a service with Stripe's model doesn't. It's not a fair comparison.
And yet it is a key part of the engineering problem that has to be solved, which moves it away from "not one of the complicated problems" and being "quite standard work" (the original post I was replying to, disagreeing with the thrust of their post).
Which, AFAIK, you still can't actually test properly with Stripe's system before making it live. I'm not even sure it's fully documented yet, and if it is, that's a relatively recent development.
We've discussed testing payments before (GoCardless last time) and are in agreement that it can be improved. I've seen no way to test Stripe's dunning.
You can literally write the code to do things like this in a few minutes, including all conceivable edge cases. Many of us have. It's basic arithmetic combined with some almost-but-not-quite-trivial logic around dates.
And yet last month I worked with a SaaS which implemented recurring billing a few years ago, and can't get it right. They overlooked pro-rata entirely (which at least prevented edge cases) and dunning didn't work. They aren't the first either.
Which is why, when I see the mess people have made of it, I disagree with the original assertion.
But Paddle's model is a merchant-of-record, which also takes care of things like the tax reporting and remittance headaches that a service with Stripe's model doesn't. It's not a fair comparison.
It is an accurate comparison when answering "[Managing recurring billing] is not one of the complicated problems". We have merchant of records, we have profitable subscription companies like Recurly, Chargify and Chargebee. If it (and keeping up with a changing landscape) wasn't a significant problem for businesses then more would roll their own rather than outsource (and of those that have, get it right).
Reading your other comments on this page, we agree on many more things than we disagree. Here we likely disagree on semantics: what's an engineer's role; what's simple vs complicated? Great to correspond again.
I don't think this stuff is particularly difficult to get right, having essentially done it myself in the past. Indeed, I've never actually worked anywhere that directly integrated with a single payment service without at least some degree of isolation/abstraction. (This is also why features like Stripe's recent customer portal are of little interest to us. Directing a customer there to update their details means they can only change them to something else we use Stripe for, but we don't want to be locked into Stripe like that, we want to offer each customer the full range of payment options we support wherever they are.)
The harder things to implement these days, at least in our experience at my own businesses, are the mechanical integration with all the different payment schemes, where you really do need a specialist service that provides the required access, and the tax and compliance issues, where the ever-changing landscape makes outsourcing this aspect of the setup more and more attractive. But you can get the first of those with many different services and you need something like a merchant of record or one of the dedicated tax management services for the second.
Presumably for some types of business fraud prevention is also a big deal, but again you'd get the basic checks with many services that let you charge a card or the like, and I'm sceptical about how much these fancy AI-based big-data-crunching models are really improving performance. In any case, for those of us in more niche markets, there is little scope for someone to defraud us significantly anyway and the risk of anything bad happening has been very low over the years.
So in the end, with the way the industry seems to be moving, I can see an argument for just outsourcing basic payment processing and then handling the automation and tax/regulatory stuff in-house (for example, if you already have a dev team to implement what you need and you're already set up in some other way on the tax/regulatory side). I can also see an argument for outsourcing just about everything to a merchant of record service. But I think the case for the middle ground model that most of the payment services we've been using over the past decade or so operate is getting weaker all the time. And since they all keep forcing us to do major integration work just to keep the same functionality we already had from breaking and putting up their prices, I can't honestly say we've been feeling a lot of loyalty to any of them lately, hence our ongoing investigations of possible alternatives that I mentioned in other comments.
I remember DHH from Basecamp mentioning this once a few years ago. I forgot if I asked him on Twitter or if someone else did, but it came down to asking why Basecamp doesn't use Stripe's subscription API.
He said it didn't exist at the time but he also said it wasn't a ton of work to get it all working using the basic single charge API. Details are spotty since it was a random tweet from a while ago but the overall feeling of it was it's very doable.
I feel like the topic came up in one of those YouTube videos where DHH walked through real life code in Basecamp.
Even today it might be worth it. I mean if you try to integrate an abstraction on top let's say Stripe and Braintree, there's quite a lot of differences between the 2 for subscriptions. How much more work would it be to write your own subscription logic once and use it anywhere vs writing a really good abstraction.