EU VAT Fun. Taken from the Quaderno Blog (click image for their post about VAT)
You’d think that in this day and age running a Software-as-a-Service company in more than one currency would be a pretty simple thing to do. You might also be forgiven for thinking that Stripe, current darling of the startups’ payments space, would take care of multi-currency out-of-the-box. You’d be wrong.
Having recently spent some time getting our payments system for Satago to work properly, and at the same time abide by the EU’s VATMOSS rules, I thought it might be useful to highlight some of the issues we found.
Stripe isgreat if you only need to do things in one currency. You can use Stripe to control your free trials – we give everyone who tries Satago a 30-day free trial. However, if you want to charge in more than one currency you are going to run in to a major problem: once you have created a customer in Stripe, youcannot change the currency you charge them. Of course you don’t want to ask your new sign-up what currency theymight want to pay you with in 30 days time. So typically we create a new customer with a GBP free trial and if they then want to later pay in EUR or AUD – well they just can’t.
Of course we know people prefer to pay in their own currency. It means they actually know what they will be charged every month, while the software company takes the FX risk. US users, in particular, dislike paying in anything other than USD.
The answer is that if you want to have free trials, and then charge your customers in different currencies, you can’t use Stripe to handle your trial, which is a shame since apart from the currency issues, they do it pretty well. We’ve decided for the time being just to charge everyone in GBP since the majority of our paying users are in the UK, so we still use Stripe for managing our free trials.
That then leads us to the fun that is the EU VAT laws. When we charge someone in the UK, regardless of whether they are a business or an individual, we have to charge them the UK VAT rate, which is 20%. If they are from outside the EU, we charge them the base rate, which is what you see advertised on our Pricing Page. If they sign up from one of the other 26 EU countries, we have to charge them their local VAT rate – and if they are VAT registered we have to charge them without VAT under the EU’s reverse charging mechanism. Argh!
Luckily we found a really great tool called Quaderno that takes care of the EU VAT nightmare and does nice invoicing (and a bunch of other stuff for us) via direct integration with Stripe.
The most important thing is that you force your customer to select their county before processing the transaction. When they select their country Quaderno will update their transaction with the correct VAT rate for their locality. Then, if the customer inputs their VAT number, the VAT rate will be taken back down to 0. Of course if they are not-VAT registered then we will charge them their local VAT rate.
One of the really clever bits for me is that Quaderno actually validates the VAT number to make sure it is valid before reducing the VAT rate to 0. If they are a non-VAT registered individual, Quaderno takes care of all the validation for their locality to make sure you are charging them the correct VAT rate and have all the evidence necessary (although almost all our customers are VAT-registered wherever they are we do have quite a few freelancers using us).
I need to be able to report Satago’s metrics easily to our investors. I started off trying to use Christoph Janz’s pretty comprehensive SaaS KPI spreadsheet. The only problems are that you have to update it manually, and if you have a pricing structure different form the structure in the spreadsheet it’s pretty difficult to update.
Someone once said that anything that is done regularly in a spreadsheet is a business opportunity (lots of our users tell us they used to use spreadsheets to work out which customer to chase for payment before using Satago!). Taking that to heart is a company called Baremetrics that I use, again via direct integration with Stripe, to produce all our KPIs automatically. Their “Demo” lets you see their own metrics, which is pretty neat, Check it out:https://demo.baremetrics.com/dashboard
(Not Satago’s MRR!)
Their one limitation, for me, is that they use the gross number that you charge your customers, including sales tax (VAT), which makes our revenue in their metrics look ~20% too high. Since Stripe now allows us to charge a tax_percentage instead of lumping the tax in to the base price, I’m hoping that Baremetrics will strip out the tax from its calculations (they may have already done this since we don’t yet separate tax from base price for UK customers).
It’s worth mentioning that we looked at implementing a few of the popular subscription tools that can sit on top of Stripe (and other payment gateways) to manage this for us, but nothing seemed as simple as just bolting Quaderno on to our Stripe.
If you are about to implement your payment system then I wish you good luck! Ifyou are in the US it is probably relatively simple, but if you are in the EU you need to be aware of all the above.