When should you give customers refunds?

I have a pretty simple refund policy for my downloadable self hosted web app. If a customer contacts support (me) and I’m unable to resolve the issue, I will give them a refund. However some customers request refunds for reasons that don’t have anything to do with the actual app. The most common reason is that a customer assumes the app is capable of something that it isn’t, even though the app is very thoroughly described on the website and it provides a fully functional demo that they can test before they purchase the app. Should I provide refunds in these cases?

I know that “no questions asked” refund policies are pretty popular these days, but when people buy my app they are downloading the complete unencrypted source code. There is no way for it to be returned and there is no way for me to prohibit them from using it if I do provide a refund.

Most people are reasonable and completely understand my refund policy but every once in a while (like today) I get a very angry customer that makes threats and personal insults. Today, the person is threatening to post negative reviews of my app on youtube to tell everyone that I’m a ‘crook’. Should I grant this person a refund?

1 Like

And now the conversation has somehow devolved into physical threats I think. His latest message says

you will give me the money or choke on it before i take it - one way or another - 20 fold… 1000 fold.

i will throw shit at you left right and center, http://www.bbb.org/, loads of time to play… you on twitter?

I’m tempted to refund the money just so I don’t have to see his name in my inbox anymore…

Unless you are selling the app for $100k and want to fight it in court then just give the refund and get on with more important things.


Agreed. That’s what I ended up doing. He sent a barrage of emails, each more ridiculous than the last, and it just wasn’t worth the time.

If it isn’t already then make sure your refund policy is detailed clearly on the purchase page and in your T&Cs. We have never offered refunds for Perch - for exactly the same reason, it is distributed as unencrypted PHP. Also, most times someone gets in touch asking for a refund, when we ask them what the problem is they have an issue they just hadn’t taken into support. We help them, they buy more licenses. So having a refund policy I think sometimes just causes people to give up quickly. For the second reason if we did start having a refund policy it won’t ever be no questions asked, as we’d lose the chance to help these people get started.

I love how these people always invoke the BBB. That usually elicits a “very good, dear” response from me. I just don’t argue with them and let them rant.

We’ve had very few issues in just over 5 years of this, never had a chargeback for this reason and the couple of times someone tried to get PayPal to refund the money PayPal sided with us. The key is having this very clearly stated at payment time.

1 Like

Yes, you should.

That’s how you’d like to be treated, right? If you made a mistake and realized that the just bought application doesn’t fit your purposes, you’d like to get your money back. You’ve made a honest mistake, and it is only fair you shouldn’t be penalized for it.

1 Like


I always give the refund when somebody asks for it. Just like you it’s almost always due to people skipping the free trial and buying based on their own assumptions on what the software will do for them.

Sure, it’s disheartening (money I thought I had made…) and costly (I lose the merchant transaction fees) but it’s just part of the cost of doing business. I try to swallow my pride and wish them well as I hand them their money back. Sometimes they express gratitude at my attempt to solve their problem even if I didn’t succeed.

Question: how long did you spend dealing with these toxic emails? It bothered you enough to come here and post. Was it worth it?

Besides, since anybody who buys your software already has your code, how does upsetting them help you in any way? They’ll feel more justified in screwing you over if they perceive you as the enemy.

I probably should highlight the refund policy better on my pricing page. Right now I just have it described in the terms and conditions, which is only linked to in the footer, which means there’s no way to find it if you’re not looking for it. I’ll take a look at what you’ve done with Perch. Thanks :smile:

Perhaps I should be more flexible, but I think there’s a fundamental difference between providing a refund for a downloadable product and providing a refund for a SaaS product, especially since the source is being distributed.

I didn’t spend long on the emails, but they were frustrating and distracting. I didn’t do a good job of explaining the situation that led to me posting, but I was really just looking for some guidance around when to issue refunds in general. As far as this specific refund request is concerned, I can assure you my intent wasn’t to upset him. The details of his request would be too much for one post, but his overall theme was “The app doesn’t work”. I asked him at least 5 times to let me help him resolve his issue. He refused. This case isn’t the norm, but I’m not comfortable granting refunds to someone who won’t even give me a chance to resolve the issue that they claim to have.

It sounds like you’re describing a “no questions asked” refund policy. I still don’t think that’s a good idea. I suppose I could be more lenient with the customers who make a genuine mistake but that’s not the case with every refund request. Just last week I had someone request a refund 2 minutes after completing the purchase. His reason - the app doesn’t work. It would have been impossible for him to determine that in 2 minutes. It’s rare, but some people who request a refund are being dishonest and I don’t think I should reward that behavior with a free product…

Actually I’m not. My approach is to always ask questions, followed by always giving the refund. I agree it’s very important to find out why someone wants their money back (at least their version of it.) In fact, I think the best way to handle refunds is over the phone. That way you can get a real sense of whether someone actually tried using the product or not, even if you will give the refund anyways. But at least it gives you a chance to save the customer, or at worse keep stats on how many people are abusing your business, which leads to my next point:

Here’s the thing: what percentage of people who paid asked for a refund that was not legitimate?

  • Is it a small number? Then issue the refunds and move on. As far as being uncomfortable rewarding that behavior, I’d say get over it. You’re running a business not a first grade class room. If your code is distributed unencrypted you can be certain it’s already been posted on script sites all over the net. I’d worry about making sure your actual legit customers are happy instead.

  • Is it an unacceptably large number that may cause your business to suffer considerably? You aren’t going to stem the tide of abuse by resisting refunds. There will always be more idiots out there. There is a vast supply. So consider changing your business model? Maybe create a higher-level service where you only sell the code to larger businesses and require an in-person consultation before they get to see the code? Or open source the code and sell support. Or something.

Just my 0.02.

He refused, you refused, the perfect customer relationship is born.

What are you trying to do, force him to use your product? He won’t. Instead, he will hate you and your product with all his guts.

It makes sense to try to help once, but if the customer doesn’t want to be helped, he’s already made a decision. Just move on.

As another note on this, if we were to change our policy we’d first be making sure that giving a refund was a “one click” operation at our end. So clicking refund in our system would terminate the license, use the Stripe or PayPal API to refund the customer and fire a credit note and refund over to Xero using the API etc.

If you are offering a refund policy the last thing you need is that customer actually costing you more money because of all the bookwork you need to do to log it!

How often do people misunderstand what the app is capable of? Do they tend to assume similar things? My advice to you is to look for patterns in such requests. You might need to rework or simplify your copy. Also, you might take notes about how your customers refer to the particular features of your software and use their expressions in the copy. It’s not about making it sound professional, it’s about speaking your audience’s language. :wink:

What I do the first time I receive a refund request is: Empathize & Offer to help. If they don’t want my help and still want a refund, I issue it. This works, because as @rachelandrew said, sometimes people haven’t reached support at all before asking for their money back. Showing them great support is your chance to turn their disappointment around and even turn them into fans. I know it’s hard not to mirror someone’s aggressive behavior. I rewrite my letters 2-3 times before answering an angry person. But the only way to handle such a situation is to sound as calm and understanding as possible.

I’m in the same boat, so I completely understand why this isn’t a viable solution. At this point, we offer refunds when we can’t solve the problem, like you do. We’re currently rolling out a 30-day money back guarantee, though. I will let you know how this works out.

I often receive refund requests that seem unreasonable to me. Once a customer claimed a refund because I didn’t reply to the 5 letters they sent within 1 hour, although we’ve clearly stated what our support hours are. (I suppose some people expect at least a 200-people company to be behind a piece of software on the internet.) These cases are less than 1% for us, so it’s not a big deal. If your refund percentage is also low, there is nothing to worry about. There will always be refunds and, if someone wants to steal your unencrypted PHP code, they will. However, you’re trying to sell to the people who don’t have the time to steal your code and have the money to buy it.

As @Oliver mentioned, the time and energy that you’ll spend chasing toxic customers isn’t worth it.

1 Like

You’ve described exactly our situation when it comes to refunds. We distribute unencrypted GPL-licensed PHP code and have a 60-day refund policy. Like yours, our refund policy requires the customer to first ask us for help before we refund their purchase. And we also get people requesting a refund because they misunderstood what our WP plugin does. And we always refund these. Ultimately we don’t want customers who aren’t happy, aren’t using the software, and aren’t going to renew next year. That might be the difference here: we have a recurring business model.

For the past year our refund rate is around 1%. So we’ll be adopting a “no-risk no questions asked” policy in the next couple of weeks to see how that goes. The goal is to encourage more people to buy and try. So more refunds but also more sales. Ideally I’d like to have a free trial, but the nature of the open source software makes this a bit more risky. Might be something we experiment with in the future though.

Is a “60-day refund policy” like “60-day money back guarantee”? If so, you’re the proof that this works as expected even with server-side software. I’m even more excited to see the results of our experiment.

And we also get people requesting a refund because they misunderstood what our WP plugin does. And we always refund these. Ultimately we don’t want customers who aren’t happy, aren’t using the software, and aren’t going to renew next year.

Can’t agree more. Even with a non-recurring business model, you don’t want to force people to use your software, if they don’t need it. I personally think this is immoral. We also refund these.

Ideally I’d like to have a free trial, but the nature of the open source software makes this a bit more risky. Might be something we experiment with in the future though.

We have a free downloadable demo, as well as a demo hosted by us, and this configuration has been working great. Some people are happy with just browsing the hosted demo and getting a feel of the product. Some download the free demo and install it on their servers and then they come back and buy.

The downloadable demo is a very limited version of the actual software. It’s actually one-fifth of the product and the rest of the code is just missing, so there is no risk for us. It serves as a great marketing tool and allows the potential customers to experience the product. This ultimately increases their desire to buy(if it’s something that they need). And it also reduces the “I thought it was something else” complaints.

I see a lot of Wordpress developers are going the “free demo, paid pro” way, so I guess it might be good to give this a try.

I really like your website, by the way. I was particularly impressed by the FAQ section copy. If I ever need a migration plugin, I will definitely buy yours.

@sansmagicc Thanks! I’m actually in the process of redesigning the site and rewriting most of the copy. The product has changed quite a lot since we started (for example, there were no addons when we launched) and those new features needs to be reflected on the site.

We do have a free version of the product on WordPress.org with less features baked in, but that doesn’t let them try the Pro features. Like you said, a live demo is another good idea to weigh against a trial. For our product though, they’re going to want to try it in their own environment to see if it fits into their workflow.


Do you have any sources of inspiration for the redesign and rewriting? e.g. podcasts, blogs, and so on. We’re currently doing that, too.

We do have a free version of the product on WordPress.org with less features baked in, but that doesn’t let them try the Pro features.

Same here. I do get the occasional “But I want to test the full version on my website, how do I know if it works for me?” to which I reply something like: “Try out the free demo. Visit the live demo here to get a better idea of the full version features (mainly the extended back-end admin panel). The plugin also comes with free support for installation and integration. If you have any issues installing it, or you find any bugs, they will be fixed free of charge.” This usually removes their doubts.

The live demo works for us, because we have settings and features to showcase. However, the nature of your plugin is quite different and you are right that it might not be suitable for you. Doesn’t your free demo prove that it works fine on their setup? Looking at your wordpress.org page, the free plugin looks like a proper sample of your paid version. The video looks great, too. It shows how easy it is to migrate. You offer money back guarantee, support, even support for the free demo. Do you have any conversion rates for “upgraded to pro/installed free demo”? If they are really low, you might want to change something, but otherwise, it looks great.

Interesting thread. While HelpSpot isn’t open for the most part, we do have a very liberal refund policy. To me the downsides of negative commentary aren’t worth holding strong on the refund. That said we only have a few refunds a year and I think it’s very dependent on your product.

Most HelpSpot purchases are $1,000 or more for initial licenses. Generally people have tried a lot of other tools first, have run our trial for 45 days, etc. So if they’re at the point where they want a refund they generally have a valid reason (though I always check of course).

I could see with impulse purchase type products or ones that have no trial that you’ll get a lot more people who buy and then want their money back because they didn’t really find out what the product did to begin with or put the time in to set it up, etc.

Still, it could be something interesting to test, especially if your product has no trial. Putting a big obviously refund policy up on the site and checkout. It could be you’d make more from people who are happy to know they can get their money back then you lose on refunds.

We’ve attracted plenty of poisonous customers by putting too much emphasis on our generous refunds policy (and yes, it resulted in high refund rate). You have no use of people who buy your product “just to try it”, having no idea what it is. These end up as support headache and often ask for refund because it’s not what they expected (and of course they didn’t bother to check demos, tours, and feature lists). These kind of aggressive refund policies probably work if you sell something very simple or info-product like e-book, because there is no support burden. Remove the doubts and sell - some will ask refund but you may make more at the end. But if you are selling complicated software, I’d suggest to be less aggressive about advertising refunds.

Things seem to be better now as we moved the “60 days money back guarantee” slightly to the bottom of the pages and removed the big text from 1-2 places. We still give refunds, just avoid shouting that much about it.

1 Like

I really like the idea of a downloadable demo. I’m already offering a live demo on the site, but I can see some clear benefits of allowing potential customers to install a limited version on their servers before they make a purchase.

How do you end the demo after 45 days? Are you using something like ioncube? If so does it complicate the installation process?