This post continues from part 1 where I outlined what I did to prepare Loco for the not-so-new EU regulations. Again – I’m not a lawyer, or an accountant, and this is not a rant :)
Once my system was processing payments from EU customers I was fairly happy I was compliant, but the devil’s in the detail. With real data coming in I had cause to investigate some odd cases and the learning experience continued.
Here are some extra things to consider from the beginning, or at least be prepared to deal with when they crop up. As with most of this legislation, it all boils down to location.
Location, location, location
The first problem you’ll encounter will probably emerge pretty quickly: People won’t always make a purchase from the country where they live. (crazy). This is where the whole concept of taxing in the place of supply over the Internet falls on its face. See my previous post about establishing place of supply.
Depending on the information you have access to, you might – if you hate money – decide to simply reject sales when the evidence of location is contradictory. Personally, I opted for the old “deal with it later” strategy, and as it turned out I’ve had to deal with quite a few of these cases.
Whether you defer the problem or not, you’ll have to decide at some point which of the possible locations to use for charging taxes. Many people will tell you that the country of the credit card is the definitive place of supply. Now – I am not a lawyer – but all the official documents I’ve read refer to the location of the person consuming the service, not the person paying for it. (perhaps they are implicitly the same in the case of consumers). If you speak Legalese have a go at interpreting “effective use and enjoyment” in the VAT Directive and please put me straight in the comments.
Legal correctness aside, you may not know the country of the credit card until too late anyway (like after the payment is complete). Depending on your payment provider you may have to proceed with the sale based purely on the customers apparent location.
Let’s assume we’ve solved all these problems and taken the billing country over the contradicting IP address. We need to be sure we still have two “non-contradictory” pieces of evidence so we don’t fail an audit. This is extremely grey indeed. According to HMRC and the EU explanatory notes, ‘billing address’ and ‘bank details’ count as two separate pieces of evidence. So does the country of the credit card count as bank details? (shrugs) If it does, we can use it to back up the billing address and we have two pieces of evidence. If not, see you in prison. Don’t forget that none of these published guidelines are actually law. I suspect we’ll only get solid answers to these questions once people start getting fined.
The advice I offer here is to store as much data as you feel comfortable with, in case you end up discarding one or more pieces. (HMRC suggest asking for a phone number with international dialling code, because that could only be genuine). Also make sure your payment provider validates customer billing addresses and make sure you either store the address yourself or have access to it for 10 years. (yep, 10 years).
VAT area inclusions
I was initially looking up all VAT rates just by the 28 EU state country codes. Not good enough. Check the EU VAT area and make sure you know the country code of all taxable regions that apply to you, and under which ‘parent’ country they are included.
Be aware that Monaco (“MC”) although not an EU state is included in France for VAT. Likewise the Isle of Man (“IM”) falls under the UK. As far as I can tell these are the only exceptions that have their own ISO-3166-1 country code (at last the only ones that apply to us in the UK). Don’t take my word for it though. Check for yourself and correct me if I’m wrong.
Special rates
Be aware also that some regions within countries have their own VAT rates. That’s right, the town of Büsingen, Germany is part of the Swiss customs zone so no VAT applies. Several Greek islands have special rates too. Some military bases are on UK soil abroad, but pay local VAT. You get the picture, it’s complicated.
The library I use for VAT rates includes (hopefully all) of these exceptions, but looking them up at the point of sale seems impractical. And again, you’ll have the same problem of finding out too late that you charged the wrong tax.
These regional exceptions tend to be special rates which are lower than the rest of their country. For this reason the danger of false positives dissuaded me from handling these cases automatically (using postcodes, geo-coordinates,etc..). Would you rather over-charge someone in a low tax zone and give them their money back, or under-charge them by accident and ask them for more money?
There’s also the massive amount of extra work to consider if you want to handle special VAT rates at checkout. This really is getting into the territory of Enterprise accounting systems.
Local invoicing rules
Since implementing my invoicing system according to HMRC’s guidelines I became aware of certain EU regulations that override the UK rules. These include the requirement to display VAT amounts in the customer’s local currency when that currency is not the Euro. If you’re in the UK, you’re probably already doing this for GBP, but there are eight other EU states not in the Euro.
If you’re looking for where it says this, it seems to be buried in the VAT Directive under Article 230, but despite being a major detail it’s curiously absent from the various summaries you might find. Perhaps a friendly tax lawyer can leave a comment explaining whether this always applies. Doing live currency conversion is going to complicate your software and I think many people are going to be keen to avoid this one way or the other.
There are specialist services that will deal with compliant invoicing for you, but they come at a cost and will probably require more integration work on your part, especially if you’ve already built your system. Have a look at Taxamo and Quaderno. (I’m still evaluating, so these aren’t recommendations).
I’m going to dig deeper into this and I’ll share anything I learn in my following posts.