26 comments

[ 2.5 ms ] story [ 66.7 ms ] thread
TL;DR: We run multiple SaaS products on Stripe. Even with clear renewal reminders, invoices and easy cancellations, some users skip refunds and go straight to chargebacks.

A $10 payment ended up costing us $43.95 recently. Banks almost always side with the cardholder, and the only reliable “win” I’ve seen is when the customer withdraws the dispute themselves.

So here’s my question to the community:

What’s really going on here? Why do banks completely ignore the terms customers agreed to when they subscribed, or even in cases where the claims are obviously false? And why aren’t customers required to provide any proof at all?

What actually prevents someone from using a SaaS product, filing chargebacks every time they cancel, and essentially getting refunded for the last several months of usage?

Would love to hear your thoughts.

My niche SaaS (monthly subs, no annual) gets about 1 or 2 chargebacks a year.

I give instant refunds, we are very lenient with our terms, and I've made the unsubscribe flow 2 clicks from email or dashboard (want to cancel? click. Are you sure? click. Done. Confirmation email). Every subscription email also includes short instructions on cancellation.

Even with a very customer friendly posture, the chargebacks fall into three categories:

- bad experiences with other companies, so instant chargeback instead of emailing or calling - miscommunication between customer departments (accounting doesn't know about the subscription and chargeback) - fraud or lying about usage

We've won about 50% of the chargebacks disputes. I recently added an admin interface that has a chargeback defense function that compiles evidence into a handy package I can upload to Stripe to dispute.

I got an Ad for a company that aims to reduce your chargebacks, I wont say who it was. Who knows if it works.
They're mostly just typical UI/UX or business consultancies trying to fit their way in the niche by offering vague advice and "data-driven analytics" services. I don't have a great deal of confidence that the average business analyst couldn't do better, but some companies don't trust their staff and need to pay someone to tell them otherwise.
We have very few chargebacks, not even 10 in 10 years and we consider us lucky. Stolen credit card happens more often than chargeback. I don't attribute it to better messaging or easier cancellation options, we do the same as many others, I guess it's just the type of product of customer.

Even in HN comments I've seen people saying they use temporary card numbers (valid for one transaction only) or click a button to dispute instead of a single email. That button in the banking interface might be "block future payments" or such. They must've bad experience with companies in the past?

Actively emailing with the customer sometimes helps. It worked for us. Sometimes it didn't. For example if it's a company credit card and the employee left the company. Their accounting team simply doesn't know what our service is for.

At this point the fees are part of "cost of doing business".

https://news.ycombinator.com/item?id=44382686 is an example where a customer was unhappy about merchant charges and seems to contact the banks only, not the merchant.

I am curious if Apple Pay has the same chargeback issues for merchants.
This is something good about the Apple AppStore, they handle the chargebacks and no ridiculous fees incurs(When a refund request is initiated, they will send you a consumption info request over API to ask for your opinion but ultimately its their decision and its handled by them). That's why I don't have a problem with Apple's cut as they handle something that's actually quite complicated and annoying. Their control over the content(what's allowed) is another story though, of course.
You can't exactly charge back the AppStore because you risk losing your entire account. I'd much prefer every app be billed separately because then I CAN request a charge back, without fear of literally losing my entire phone, house access, etc.

Your definition of good, is my definition of a prison.

> What I don’t understand is why some people can’t just reach out and request it — instead of going straight to a chargeback.

Customers don't want to "reach out" if it means hunting deep in their account settings to find the cancel button, or calling a number which may or may not lead them through an endless phone tree to waste 5 minutes talking with someone on the retention team reading from a script.

People don't remember they signed up.

They can't remember how to log in from a different device to cancel.

It's easier to use their credit card app to dispute the charge.

The company name is different than the product name - even a slight difference may indicate a scam, like all of these highway toll scams using a slightly different domain name.

A worker or family member signed up using someone else's card, and that person has no idea what the charge is for.

People expected one thing from your SaaS product, and got something else that they are not willing to pay for.

They rarely check or read their email.

Your account reminders are going straight to spam.

The communications around the product, pricing, or requirements was lacking.

I very rarely refund anything, but when I do, I send a single email that I want a refund and if it isn't done promptly I will chargeback. It's usually the best customer service I get. No security questions, no Indian call centres, no "are you sure" questions. I don't blame people for just hitting the dispute button though. Years of piss poor customer service has conditioned it.
Add a warning email 24 hours before the transaction. In the subject put "You'll be charged $10 for renewal in 24 hours".

> we also provide a simple, self-service way to cancel the subscription

It's hard to comment without seeing screenshots and description of the process. When people are cancelling under a perceived threat (will be charged otherwise), any inconvenience will become an extreme one.

"Banks almost always side with the cardholder, even when we provide clear logs and evidence."

-- sigh unfortunately it's the opposite in 3rd world countries like Indonesia. I've had my cards physically stolen on the airplane. Despite having all the evidence and common sense ("I'm in city X airport and the disputed transactions happened in city Y, you're saying I went there immediately after landing and return to the airport just to queue for immigration, all in an hour?"), none of the banks accepted my chargebacks that I filed few hours after incident.

The banks are Bank Mega (national, private), BNI (state-owned) and DBS.

Perhaps this is a question you should be asking yourself. Is your cancellation system working? There was a billing session created the day after the initial charge, are you sure there wasn't an attempt to cancel the that the system failed to register and log due to an error? If I try to cancel and it doesn't work, I'm not gonna waste time trying to figure out how to work around it or filing a bug report. I'm gonna go straight to the charge back.

Is your cancellation mechanism consumer friendly? You don't do proration when people cancel and say you only "meet them halfway" when they go through the effort of requesting a refund in response to this user hostile policy.

There are a lot of very user unfriendly policies and implementations. Sometimes companies that legitimately try to do the right thing get caught in the blowback, but more commonly, companies aren't as user friendly as they like to pretend and have adopted at least some of the pervasive dark patterns.

>Perhaps this is a question you should be asking yourself. Is your cancellation system working? There was a billing session created the day after the initial charge, are you sure there wasn't an attempt to cancel the that the system failed to register and log due to an error?

This happened to me once with a meal planning app (Eat This Much). I did validly cancel and get a cancellation email, but Stripe had errored out (I didn't realize this) and I ended up disputing the charge with my credit card because I couldn't get a hold of them (they had just done some UI changes that unfortunately broke their in-app contact function).

In the exit survey, I mentioned I was disappointed that they chose not to honor my cancellation request. Their support person reached out to me to let me know that they couldn't refund me without me dropping my dispute, but my dispute was already marked as resolved by my bank. I guess they issued a courtesy credit and didn't want to deal with the back-and-forth internally.

I sent them the cancellation email that I had received proving my cancellation. I'm pretty sure if I hadn't received that email, they would've cursed me up and down as one of these "anti-social chargebackers", because it confused them enough that their CEO personally emailed me to apologize; they found the Stripe error in their logs, it had only happened one other time in recent history, and they wouldn't appeal my dispute as a result. They did offer me a free month, but I really did want to cancel - it just wasn't working for me, but at least they were nice about it.

I'm sure without that added context, the story would've been the same as this post - yet another person charging back and not reaching out first to explain. I was pretty angry about the situation at first (having no knowledge it errored out or that they would be more willing to refund me than deal with my chargeback), but they were a small team, they were nice about it, and I dropped my interest in posting a public complaint about it.

I just created an account, and the subscription page in the app shows a $50 charge, while the public pricing page shows $10 with 'Minimum 5 seats' in small letters.

Your post says about $10 charge, I am not sure how it happened with current flow.

Be very direct about the pricing, and please use your own product so customers are not confused.

https://beeimg.com/view/d3295639248/

It boggles my mind that this is a surprise. Let's start with this:

> What’s really going on here?

Reality. You need to prove something: that the card holder made the purchase to the standard the banks set and you can't. It's as simple as that.

> Why do banks completely ignore the terms customers agreed to when they subscribed or in cases where they’re clearly making false claims?

Because your agreement with the customer is not the only agreement in play. You accepted these chargebacks and that process when you accepted credit cards.

> And why aren’t customers required to provide any proof at all?

You can't prove a negative. I can't prove I didn't authorize payment. And, because it's online, you can't prove I did. "logs, screens, terms, full context" are not proof. None of that is useful or proof in any way that the card holder made the purchase.

> What actually prevents someone from using a SaaS product, filing chargebacks every time they cancel their subscription, and essentially getting refunded for the last several months of usage?

Credit card number limitations. Why would you accept a payment from the same credit card number again? Also, repeat offenders can be blocked by payment providers. This is the way a lot of online stores work.

> Would love to hear your thoughts.

A few more points...

> "The Madness of SaaS Chargebacks"

It's not SaaS chargebacks. It's just chargebacks.

> The worst part is that it doesn’t matter whether you win or lose a dispute — the very fact that it was filed still counts against your account.

Yes. The reason it counts is because you are problematic, or at least attract problematic customers. This ends up costing the banks money. I'm sorry, but if you had a problematic customer that cost more money than you made from them, you'd probably stop working with them, too.

> Still, we always submit evidence.

Not the evidence that matters. You need evidence that the card holder authorized the payment. I promise you, nothing you submitted proves that.

> Inside the product, we also provide a simple, self-service way to cancel the subscription without any questions asked.

Do you ask for the username and password? Right... and if I didn't sign up for the service to begin with, I didn't agree to the TOS.

Let's also address one more thing:

Facts:

> Charge was processed August 12 (regular billing cycle). > Subscription canceled August 18 (6 days later). > Dispute created August 19. > The claim is false.

Nope. The problem is when the person requested the subscription be cancelled. Not when your system recognized it.

> the customer doesn’t have to prove anything

The problem is when a customer requests you cancel their subscription, and you say you will, and you don't do it until 6 days later.=

The problem is when a customer goes to request to have their subscription cancelled, and your service is broken and doesn't recognize the cancellation and they don't realize it never cancelled until 6 days later.

I can keep going.

Let's try this: prove to me the customer didn't submit a request to cancel the subscription when they said they did.

That's right, you can't prove a negative.

I can keep going on, but you can find lots of information on this and why it is the way it is. If you don't want to deal with this, there are other options that eliminate or reduce the chance of chargebacks. But you won't find those as popular. Because they aren't customer friendly.

This is essentially why everyone is willing to refund these type of payments when customers reach out.
I'm probably missing something but I never got the Merchant being on the hook for the chargeback. It should be the Credit Card Processor's liability for fraudulent charges (unless the merchant is actually at fault). If a stolen card is used to make a purchase, why is the merchant on the hook for this?
I was angry at first as a small software provider. Then you understand there is nothing to be done and you budget it so it becomes the cost of doing business.

The most common charge back case is when a customer loses its card and the bank charges back all the transactions of the past X days no matter what. It is stupid but a lot of banks do it instead of asking the customer which transactions are legitimate.

Please make sure to set up Radar rules in your Stripe account.
Controversial take here. Sue your customer. No really.

Banks operate on risk, make chargebacks risky.

Some of these chargebacks sound like straight up fraud. Three months of usage and using their bank to reverse a payment.

Make Fraud Spicy Again

I’ve been recently hit with my first chargeback. The first thing I learned, you pay the chargeback fee no matter what.

The second thing I learned, you pay a fee if you intend to respond.

Basically, from what I understood, a chargeback is a lose-lose situations for the business. If the cost of the transaction is less than the two fees, it’s better to let chargeback settle in customers favor. Otherwise, you risk losing both fees, as the chance for winning a chargeback is very small (from what I learned).

I had a customer who used a “wrong credit card” (read: a corporate card that they had access to). I reached out to the customer asking them why they filed a chargeback, they told me “sorry, used the wrong card, the owner filed for chargeback”.

I didn’t bother to file the counter argument. Just blocked the customer, and ate the fee.

Enable 3D secure, this _might_ help with chargeback protection. And as someone said, enable Radar, it costs extra. There are also service that automatically refund the customer when they “intend” to file. Basically, stripe sends you a webhook when chargeback is about to arrive, so you can refund, this avoiding the chargeback fee.

I run a business that handles food festival entry/payments and I loathe chargebacks. It's not even my money, it's the festival that loses out but I hate them with a fiery passion. It's not even that much money, we are talking less than 0.05% of total payments (if not lower) but it makes my blood boil.

Why? Because it's 100% fraud. I've personally reviewed every case most of them are filed under "duplicate charge". When I review their account I see something like this:

- Loaded $10 on account

- Spent $3

- Spent $5

- Loaded $10 more

- Spent $6

- Spent $6

And they decide to dispute the second $10. Even when I can show exact timestamps of all their purchases/reloads the banks don't care. They don't care they they got the product and are scamming the festival. They just don't care.

And before "I can see how someone can make that mistake when they see 2x$10" sure... but then why not reach out to support (buttons are on every page to reach out directly to me through a form and I respond in <1hr normally)? People suck and so do the banks (all of them) that allow this fraud to continue.

As shown here, when someone charges back on a $10 you _immediately_ lose $15. No matter what, $15 is gone, so now you are $25 in the hole (plus Stripe fees) before you even get started. At _best_ you can recoup $10 but history has shown that the chances of winning are next to 0 and at best you end the day with -$5.

But wait! There's more! Stripe added _another_ fee of $15 if you try and counter which you will get back only if you win the dispute (which you won't).

So, if you charge someone $10 and they do a chargeback that you fight and lose you are out $40+ ("+" because of the Stripe fees on the original payment). It's just absurd. If you don't fight it you are out $25+ and if you fight it and win you _only_ lose $5.

Winning never felt so shitty...

Does stripe not block users that have done charge backs?
It's a symptom of a service problem.
Merchants can use FraudLabs Pro to screen orders and assess their fraud risk. To combat friendly fraud, merchants can blacklist customers to block them from making future purchases.