Consensus and VATMOSS

With time ticking away before the January 1st deadline for the change in place of supply for EU VAT there are worryingly few third parties coming forward with ways to help people implement the changes. I’ve detailed those I have found on my GitHub site and would appreciate any further additions.

During conversations with various people who work for e-commerce providers I have come to believe that the lack of clarity on the “proof of location” issue is the big sticking point. It’s a problem for people like me, trying to implement a solution for our own business. It is even more of a problem for anyone who wants to develop a solution they will allow other people to use. In that situation you need to be confident that what you are doing is correct and wouldn’t inadvertently cause your customers a problem.

It would of course be helpful if the EU would rubber stamp a certain workflow in terms of proving location to be acceptable. It would be helpful if the guidance understood what is possible for smaller businesses who typically outsource card processing, if not their entire checkout. It would be helpful if there was staged levels of proof required, depending on size of business, in a similar way to the Levels of compliance with the PCI DSS for example.

We’re not getting any help. We have to implement something.

Consensus does appear to be emerging, based on what we can feasibly collect when reliant on third party payment providers and their APIs. Whether you are Taxamo or a small business like mine, if you are integrating with an API from Stripe or PayPal, you have access to the same data. So here is what I can see that people are doing so far.

What “evidence” are we collecting

  • Billing/Account address including country – as entered by the customer
  • IP Address – detected and a gecoding service used to determine location
  • BIN, Country of Credit Card – from the PSP during the payment process

These are realistically the only three pieces of evidence available to most sellers and third parties who interface with Stripe, PayPal or other PSPs.

Providers who have stated that they are using this set of information

Taxamo are also implementing an SMS validation option.

Which proof do we rely on to charge the correct VAT in the first place?

I would suggest that a customer knows where they live, and that most people are not going to lie about their location. It is more likely that their IP Address is “incorrect” because they are currently on holiday, or away on business. In terms of applying VAT if you assume the billing address is correct, once you get to payment that hopefully will match against the bank address.

All the providers listed are using billing or account address provided by the customer as the Primary information.

What happens when there is a mismatch?

If we assume the billing address is correct and this matches with the IP address or bank address, everything is fine. In edge cases where we cannot gather three pieces of information we either need to halt the transaction or allow it and account for the VAT retrospectively.

SendOwl state,

“The bank and the address match but this is different to the country the buyer selected during checkout. This is a tricky case. We charged the amount of VAT of the country your buyer selected, as the location of their bank wasn’t available at the time of checkout. This means we may have charged the wrong amount of VAT. So, we compare the rate that should have been paid based on the bank location/IP country with that which your buyer actually paid. If the amount due is the same or less then we have the evidence required and the amount of tax paid is correct. Phew! If the amount due is greater than what was paid though, you can email the buyer and ask for more evidence that they are based where they claim to be. This fourth piece of evidence is acceptable and means the amount of VAT charged is correct. Or you can ask them to pay the difference.”


“All the bits of evidence are different. In which case, we’ll assume the buyer is based in the country they selected during checkout. We’ll then email you to let you know that you’ll need to get hold of another piece of evidence to placate the EU VAT people.”

Recurly deal with subscription billing so they also have to help you clean up your existing subscriber lists by running location validation on them.

“If the account is invalid, the merchant will need to work with the invalid customer to update their evidence options before subscription renewal, otherwise the subscription will cancel at renewal. Use the activity event in the Activities section of the customer’s account to show you which pieces of evidence were wrong, as well as your options of what can be updated. Remember, the invoice address is the master address, so you need to check whether that was the Billing Info Address or the Account Info Address and match against that. Finding a match between two pieces of evidence that do not include the invoice address will not result in a valid account.”

For Perch we intend to do a similar thing, our customers all have a Perch Account to manage their licenses. We are going to turn on validation systems and ask customers to make sure their accounts are up to date. If we detect address issues we’ll try and sort those out so that next time they need to buy a license from us, we know their location. If we end up charging an incorrect VAT rate to someone then we will have to pay the extra VAT ourselves, and make sure that the customer updates their record for the next time.

Good reporting is key

The important thing is that your VAT MOSS return, submitted quarterly is correct. If you locate someone in the wrong country at the point of sale, you have until you submit your report to make sure you work out where they are and report them against the right country in your MOSS return. Therefore whatever you do in your systems you need to make sure it flags up any customer who does not have the required two pieces of evidence.

For people selling mainly to consumers you probably will need to standardize your prices, as Amazon have done, and then work out how much VAT to pay from each sale after the event. In this case you don’t lose out by making an incorrect choice (although you may need to reissue a VAT invoice).

For people like us who sell mainly to businesses but as some of them don’t have a VAT number they are treated as consumers, we do add VAT on top at the correct rate. We might lose out if we apply the wrong rate and have to pay the difference, but as with most digital products these are relatively low value sales. I’d rather take the risk of having to pay some extra VAT than throw people out of the checkout process. Your mileage may vary and I believe that Taxamo will give you the option of terminating a checkout process until you have proof.

Provision for trading history

There is provision in the EU Guidance for trading history. Hopefully this means that with a known customer who keeps tripping up the system for a reason that you understand, you could – should you have the ability – set them to always pass.

Update 11th December

HMRC has issued updated guidance which is somewhat clearer. Importantly it tells us that,

“However, if the information does not tally, you do not need to cancel the sale, but you must contact the customer and ask them to reconcile the discrepancy between the two sources of information. “

A final thought

We are all able to prove where we live, run businesses and “use and enjoy” the products we buy online. The real issue is whether we want every small store on the net to hold that information about us. We need to figure out these issues. We need people with a proper grasp of the technical landscape for startups and small businesses to advise governments. It is patently obvious in the last few weeks that for all their talk, our government are utterly clueless about what really happens in the world of online business.


Tim Thornton December 9, 2014 Reply

Hi Rachel,
Thanks for your info on the EU VAT changes – very few people seem to recognise the problem, including those I have spoken to at HMRC.
FYI I’ve found that my payment provider, RomanCart, have said that they don’t see it as an issue and don’t intend to change anything.
What I propose to do as a workaround is for non-UK customers to send out a CD or memory stick of our software, so it falls outside of the new regulations.
As at present, a trial of the software can be downloaded and then unlocked on purchase, but now the purchase will be for the software on the physical media.
For the relatively low volume of sales we have, I reckon this is more cost effective than setting up new systems and the extra burden of operating them, even if in all other senses it is a retrograde step!

Mike Scott December 9, 2014 Reply

If a customer is on holiday, their IP address isn’t the one that’s incorrect, because VAT should be charged based on where the customer is at the time the order is placed, not where they live or where they bank. I’m afraid there’s no reliable evidence at all that you can get on where your customers actually are, as IP addresses can easily be spoofed by VPN or proxy services.

Rachel Andrew December 9, 2014 Reply

Hi Mike, The EU explanatory notes are clear on the fact that VAT should be charged according to the usual residence of the consumer. There is an example of a consumer buying MP3s while on holiday in Spain, in this case it’s classed as an “over the top service” and so UK VAT is charged. You can take a look on page 56 if interested. So in that case then yes, the IP address is “incorrect”. This makes sense as if I happen to buy an MP3 while in Spain, I don’t delete it from my phone as I re-enter UK airspace.

And yes, IP addresses can be spoofed but this post is about the information that we do have, of which an IP address is one, and the consensus that implementers are coming to in terms of dealing with this crazy legislation.

tim pushman December 9, 2014 Reply

Thank very much for bringing to all our attention. A little googling and I can see there is a bit of a storm brewing over this.
IPSE are meeting about this on Friday ( and it will be good if they take it on.
There is also an online petition to Mr Cable himself at (here: which is worth signing to see if we can get some things changed.

Rachel Andrew December 9, 2014 Reply

Hi Tim, yes I signed the petition when it was first launched. I’ve been writing about the issue since mid October, there are several other posts on this blog.

Ian Sharp December 16, 2014 Reply

Hi Rachel,

Thanks for all your great work on this, some of the best and practical advice I’ve read anywhere on the topic.

On my website, I’ve decided to capture the country code (only) on check out and use this to calculate the correct VAT rate and also serve as my first piece of evidence. Then, arrange for the PSP provider to transmit the country of the bank card and the country of the billing address. This should be enough. Might possibly also capture the IP address (just in case) as for the reasons stated above, the IP can be none too reliable. I’m hoping this lot should keep me out of jail. 🙂

Slowly getting something in place but its not easy when the target is still moving..

Thanks again

Complicated Guy March 5, 2015 Reply

I’m a complicated situation, because I live in the US, but my banks forbid having a US billing address.

Credit Card is issued in Canada.
Billing Address is UK (I don’t live in Canada, and they wanted an non-CA, non-US address; as there’s no physical mailings they said it didn’t mater where it is, or even if it exists. Many customers change it regularly to buy items from other locations that require a “local” billing address, so they just facilitated that process; I buy a lot of EU items, and places like only accepting an EU billing address so, UK address it is.)

IP Address is US.
Mobile Number is DE or US (have two SIM cards I use)

I’m sure I’ll be having issues when my subscriptions from EU providers start to renew later this month, but as I’m also setting up in an online marketplace, I would liket o know how to even capture myself in this regards for the “two pieces of info” when I can’t even figure it out for myself 😐

Leave a Reply