Categories
#DEV Software

Lessons Learnt from Heavy Loss Due to Fraudulent Transactions

We have lost $1,000s from Credit Card Disputes arising from fraudulent transactions within a year of trading from just one of our software products. Crazy, right? We thought so too. So here’s what we’ve learned from this experience on protecting our businesses from fraudulent transactions. For business owners, seeing disputes come through could be probably the worst nightmare. As online service providers, we experience this more than offline retailers. In the simplest of terms, I think, it all comes down to having adequate proof in delivering your service and the lack of credit card being present when the funds are deducted.

Our credit card payment processor Stripe is a game changer in this industry. They process billions of dollars worth of transactions in any given time frame. Before them, I think, companies have relied heavily on PayPal to transact from their potential customers. PayPal had a competitive advantage because most of the transactions required users to have a PayPal account before he/she could purchase anything online. Over time, as with any business, without continuous innovation, newer products are highly likely to take your place in the industry. I think this is what happened with PayPal and Stripe. Stripe came along pleasing the right crowd (developers) to get on board with them. They made it extremely simple for developers to implement payment solutions within their code.

They won us over. We started with them a couple of years ago. They treated us well but their customer service sucks. They don’t have phone support and you are better off solving your code-related issues than emailing them for help. It is really that bad. With that said, they do make an effort in preventing issues from occurring in the first place – Thanks to their detailed documentation. I love companies that follow the quote – prevention is better than cure. Try to address business issues before they become one. We’ve found people making these transactions seem to target services that they could benefit from instantly – like our email verification service. Since our entire system is automated, once they make use of our service, there is no way we can stop them from getting what they “supposedly” paid for. With that said, here is a list of things that we found useful in reducing our rate of fraudulent transactions.

Be upfront with your customers – I think honesty is the best policy. Tell them exactly what they are going to be charged and when they will be charged again. I’ve seen a lot of businesses trying to sneakily charge their customers with hidden charges or ongoing subscriptions. This gets them by surprise and chances are very high for them to launch a fraudulent dispute against you although they were the very ones who’ve used their credit card for making that purchase. As a seller, you have no way of proving to the banks (mostly because they don’t care about what you have to say) that the transaction was a valid one. We used to send a single email receipt from our system for successful payments. Now all of our customers receive two emails – one from our credit card processor (Stripe) and the second one from our system telling them exactly what they have been charged and who they can contact regarding these charges if something doesn’t look right.

Make sure what you are offering is valuable to your customers – This again comes back to point one where customers will launch a dispute if they don’t find value in what they just bought. I am guilty of the times when I launched a dispute due to this reason. It was when a business talked about these great product features but when I went ahead with the purchase, I realised it was nothing like what they said it would be like. So, offer a service or product that you know is honestly priced and deliver what you have promised. If it didn’t add value, the best thing to do is to give out refunds. Remember that saying, the customer is always right? It’s true. You rather not have a customer who is disappointed in what you offered – trust me, they can do real bad things to your business. A good example is bad reviews. You can serve 1000 customers who are all happy but get 1 customer who is not happy, they will search the internet for all the review sites that they could write about the bad experience they had dealing with your company. One dissatisfied customer is enough to threaten your hard earned reputation over the years.

Communication is crucial – Think of it like real life relationships. The reason two people won’t get along is because of communication issues. They both aren’t in the same place together – one is thinking something completely different to what the other has on their mind. Add actions into the mix and you end up having people form opinions as to what’s happening. The same analogy applies to your business and customers. You have to sort it out before it becomes an issue. Keep things simple – communicate and sort things out with your customers. Be there for them when they need you – live chat, phone, and email support are just some of the way you can do this. In our early days of launching our product, our team was so focused on making our software better than we neglected our customers. We have learnt the hard way and we probably could have prevented a lot of miscommunication and lost customers. Be honest with your customers – I have seen so many companies hide and deny any bugs that have caused disruptions. This is what annoys a lot of customers. If you are wrong, admit it! I have apologised to many customers in the past for bugs that we had in our system. In fact, I credited their account for pointing it out although we knew it was there already. Take care of them as they are the ones who are going to help you grow as a business. Think of them as your pillar of strength.

Just emailing doesn’t cut it. This goes back to point #3. You cannot rely just on emailing your customers. Being in the email industry for 5 years, we understand a bit about the complex infrastructure that is needed to get your email deliverability up. Spam filters, blacklists, whitelists, suppressed emails, soft bounces – these are just some of the things that could affect your email deliverability. This is why we moved into multi-channel communication. The aim is to reach your customer and address his/her needs before they reach you. Some of the best companies in the world succeed on a grand scale because they communicate with their customers through multiple channels. From our experience, in-app notification works amazingly well. There is something about “Seen” status in Viber that gets me going. I am so happy each time I see that word “Seen”. These days I seem to see that a lot more than getting a reply back but this is what you need for your business. You want to know if the customer has seen your message and that he/she understands what’s going on. They love being informed so make sure you reach them in any way you can to avoid miscommunication and frustration from their end.

Get as much detail about your customer as possible. These days nearly all SaaS apps are racing towards making sign ups as seamless as possible. While this is great for your customers, it is not good for your payment providers or for checking fraudulent activity. Till recently, we have asked only the most basic information from our customers – their email address and their credit card details. We thought if we made this billing process as simple as possible, we would have fewer headaches to deal with. It worked out quite the opposite for us. We had a lot more headaches because we knew so little about our customers. Less information collection is great during the initial sign up stage but when it comes to billing, you need to know more details. We realised that although Stripe doesn’t make it mandatory anymore to collect shipping/billing addresses, it can take in this information variables and pass it to the issuing bank. Using their new service to prevent fraudulent transactions – “Radar“, we can now decline charges that fail address verification. An email is automatically sent to the customer asking them to use the same address that they have with their credit card provider. This has cut down our fraudulent transaction rate significantly.

Hopefully, this information would come useful to those starting off their SaaS business. All the very best!

Categories
#DEV Tutorials Useful & Productive

Magento Slow Backend but A Fast Frontend

Past two days has been a nightmare. We recently migrated all of our websites to Amazon Web Services (AWS), and the speed has been good. We love it. The infrastructure is excellent and so is the service we’re getting. I wouldn’t have a lot to say about their support, though. Unless you are a reasonably big enterprise which is spending a lot of dollars, you can’t afford their support packages. What I suggest from my personal experience is to subscribe to their developer support. If you get into issues relating to operating websites on their servers, they usually point you in the right direction. You will get a response generally within 24 hours which is ok.

The reason why I am writing this post is not to address that. It’s actually due to our experience with Magento. Over the past two days, I have learned so much about Magento E-Commerce Platform. One of our client who runs one of the biggest online pharmacies in New Zealand – YourChemist.co.nz hosts with us. The database is big, and so are the files. Migrating to AWS took a while, but we got there eventually. Since this website was so busy all through the day, the only time we could migrate had to be at midnight when it has the least amount of site traffic.

After migrating, we started noticing a significant problem. The speed of Magento’s backend or as some would address it as admin panel was terrible. So I did my little research on tackling this issue.