If you want a good foundation of understand for VATMOSS, then I highly recommend reading [Rachel Andrew’s posts](http://rachelandrew.co.uk/archives/tag/vat).
That said, having read as much as I can around the web, I still don’t feel like I have a good handle on this thing, but I’m posting this, partly to flesh out my thoughts, help others in the same situation, and probably rant.
We have to be VATMOSS ready by 1-Jan 2015. That’s just over 2 weeks away.
[](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
[READER DISCOUNTSave $50 on terminal.training](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
[I’ve published 38 videos for new developers, designers, UX, UI, product owners and anyone who needs to conquer the command line today.](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
[$49 - only from this link](https://training.leftlogic.com/buy/terminal/cli2?coupon=BLOG\&utm_source=blog\&utm_medium=banner\&utm_campaign=remysharp-discount)
Please note: this is barely edited, and feels a bit 'scare-monger-y' (sorry) and I would strongly encourage comments, corrections, updates, etc in the comments.
What is VATMOSS[](#what-is-vatmoss)
In my own words, and my layman understanding:
Being in the UK and VAT registered, today I need to charge 20% VAT to all non VAT registered EU customers. Outside the EU, there’s no VAT applied. If the customer is VAT registered, then I don’t apply VAT.
This changes with VATMOSS, but only for those EU customers. Instead of charging UK 20% VAT, I must charge the individual their local VAT. So if the customer is German, I charge them 19% VAT.
This logic will apply to all businesses running in the EU.
Technical considerations[](#technical-considerations)
There’s a list of important technical items I need to check off to make sure I’m compliant:
-
Collect two pieces of non-conflicting information that proves which EU member state the customer is in. This can be IP address (with country lookup), or bank country, or address, and so on. I believe Stripe has all this information for me and I don’t need to collect anything extra.
-
I need an up to date list of all the VAT rates for EU states. http://jsonvat.com is a good example of what I need, but it’s maintained by an individual so I intend to use a copy of the file, and try, somehow, to manually stay on top of live updates via [VAT live](http://www.vatlive.com/vat-rates/european-vat-rates/eu-vat-rates/). Far from ideal.
-
Since I have users that are subscribed to a subscription model, I need to shift them all off the existing 20% fixed VAT subscription and move them to the new system of dynamic VAT rates (and I’ll email all those individuals to attempt to explain).
-
I’m using [Stripe](https://stripe.com) for payment processing, so we’re having to upgrade with the following logic:
-
Add an addition invoice item to their initial subscription that adds VAT.
-
When the
invoice.created
webhook comes in, only if thedata.paid
isfalse
then add the VAT as an addition invoice item.
-
Issues[](#issues)
-
I don’t see any way to retrospectively ask my existing subscriptions for more information about their sign up. It’s technically possibly that I capture their IP address in our application logs, and manually add them to our Stripe customers, but that’s a messy process.
-
I read that the invoices have to adhere to the county’s regulations. I’ve no idea what that is for all the countries. It was hard enough finding a list of the rates, let alone the invoice requirements.
-
We don’t currently send out any emails from JS Bin on subscription renewal - I suspect that’s a weak spot and we’ll need to implement that.
-
A way to report for the EU MOSS return…sigh.
My biggest issue, and the one that’s actually killing business in the UK, is the admin overhead of this change outweighs the benefits.
I’ve considered blocking EU members from subscribing (and therefore unsubscribing existing EU customers), but some "legislation (eg anti discrimination) may apply".
I’ve considered just killing the business side of JS Bin because this whole process is so disheartening.
I’ve joked about charging a flat 27% VAT (as this is the highest) and intentionally reporting the wrong TAX to the VAT office. Historically if they owe you money, the VAT office is horrible to work with (whereas if you owe them money, they’re particularly efficient), so maybe this is a clean simple "solution".
I’ve looked at [Quaderno](http://quaderno.io) and [Taxamo](http://www.taxamo.com/), but the technical implementation isn’t our issue - it’s the business admin. I’m also wary of changing our existing UX for the upgrade process, asking for a tonne more information seems overkill and unnecessary, and only required to satisfy these over the top legislations.
In closing[](#in-closing)
VATMOSS is a total mess. It’s even more concerning that the details haven’t [even been fleshed](https://www.enterprisenation.com/blog/posts/exclusive-hmrc-update-on-vat-moss) out yet with 2 weeks to go (notice the post says they’re going to post detailed guidance…).
I’m reviewing Quaderno right now, but the more I look the more I feel like our bespoke solution is the right way to go.
However, this does leave a very sour taste in my mouth for running more business online, and it’s further support that the UK government does not care anywhere near as much as it should, about entrepreneurship in the UK.
This legislation is killing business in the UK.
Published 16-Dec 2014 under #business. [Edit this post](https://github.com/remy/remysharp.com/blob/main/public/blog/vatmoss.md)
Comments
Lock Thread
Login
Add Comment[M ↓ Markdown]()
[Upvotes]()[Newest]()[Oldest]()

Caspar Hübinger
0 points
9 years ago
\> This logic will apply to all businesses running in the EU.
It actually will apply to all businesses worldwide selling certain digital products and services to EU consumers. It really does not matter where your business is based, but all depends on the billing address of the consumer who buys your product or service.

rem
0 points
9 years ago
I did actually think that in the first place and considered dropping Chris Coyier (of codepen) a courtesy email (since jsbin is a similar product with a similar subscription model), but I really wasn’t 100% sure if that was right.

Caspar Hübinger
0 points
9 years ago
EU definition of electronic goods and services in this document (text search for heading “ANNEX II”): [http://eur-lex.europa.eu/le…;](http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32006L0112)

Caspar Hübinger
0 points
9 years ago
From the official EU docs: “NON-EU BUSINESSES supplying Consumer in the EU (telecoms, broadcasting or electronic services): Must charge VAT in the EU country where the customer belongs.”\ Source: [http://ec.europa.eu/taxatio…;](http://ec.europa.eu/taxation_customs/taxation/vat/how_vat_works/telecom/index_en.htm#new_rules)

Rachel Andrew
0 points
9 years ago
I had a conversation with VATlive on Twitter and they were suggesting they have an API in development for rates. I’ve offered us as beta testers so I’ll let you know if anything comes of that. Until then at Perch we’re just maintaining our own data.

Adam van den Hoven
0 points
9 years ago
You could also move to a jurisdiction with a far less onerous tax regime. Canada for example. Even, I might venture to add, Vancouver, BC. :)
Ok that’s not necessarily a feasible answer, but I’m curious at what point do small and medium businesses get the idea that maybe their governments really don’t want them around? It seems to me that all these regulations are great for big, slow companies and killer for small, agile innovators. Invoicing requirements are not consistent, why? Well that multiplies the amount of work each company has to do, and thus increases the cost of doing business. And why not post all those different requirements, and VAT rates in a single easy to consume resource? Again because it increases the cost of doing business. Its not a big deal for a company of thousands of employees to dedicate half on one person’s time to this sort of busy work.
Greetings from the colonies.

Caspar Hübinger
0 points
9 years ago
\> You could also move to a jurisdiction with a far less onerous tax regime.
In theory you could not, see my comment here: [https://remysharp.com/2014/…;](https://remysharp.com/2014/12/16/vatmoss#comment-1752739675)\ How this is going to be enforced in different countries, may be another discussion.

wojtha
0 points
9 years ago
We are using Stripe at https://inlinemanual.com and I’ve spend a month trying to figure out how to implement VAT correctly. Webhooks and metadata seems nice and easy at first, but be warned that there is one exception when webhook invoice.created is useless - when the user is subscribing for the first time, at this point Stripe is not working asynchronously and it tries to respond with true/false if the subscription was paid in realtime so the webhook invoice.created is called, but it is already closed so you can’t modify the invoice. In case you are collecting credit card information during the subscription like us, you have to
-
create the stripe customer,
-
create the invoice item upfront with VAT,
-
subscribe the user to the plan.
Upcoming recurring invoices will work with invoice.created webhook, but the first don’t.
Now you need to add check if the credit card country of origin and billing address is same and if not, cancel the the transaction including the VAT item I suppose.
Welcome to hell :( Stripe isn’t quite handy when you start dealing with VAT. I’ve burn a lot of time on it already, just because of the first invoice being closed instantly.

rem
0 points
9 years ago
Yeah, that’s where we’re up to with our process too: [https://github.com/jsbin/js…;](https://github.com/jsbin/jsbin/pull/2205) - we do have the added hassle that our existing subscriptions need to be jumbled about, but that’s useful to share the point about the first subscription being done and dusted at that point (which is why on the invoice.created
we check data.paid
as it’ll be true
for the first, but not the subsequent).
We’re also going to add IP (and probably do a country search against the IP) to check against the card as we don’t capture the the customer address…which might be prone to error…

Nick Jackson
0 points
9 years ago
I think VATMOSS isn’t to blame, but the changes to EU VAT are.
VATMOSS is a UK government service that allows businesses to submit a quarterly return and VAT payment to HMRC, who then send the appropriate information and payment to each country on your behalf.
Although its a UK government tool, it acts as an entry point for businesses outside the EU as well as UK businesses. However, for some reason its not available to businesses within the EU.

Alan Mendelevich
0 points
9 years ago
We are contemplating temporarily (until we figure out the details) refusing to sell to EU customers with no VAT number. I don’t know if that can be considered "discriminatory", it’s just a statement that we are B2B.\ In your case, wouldn’t Stripe collect/provide you all the same country data on subscription renewal as on the initial subscription?

marcwilson
0 points
9 years ago
As I understand it, you can only be cited for "refusal to supply" if you are a "dominant" player in your particular market- e.g. someone like Ford cannot block parallel imports by refusing to sell a UK citizen a car that’s cheaper in another market.
If you’re small enough to worry about this, by definition you’re not "dominant",

Atarii
0 points
9 years ago
There’s also a requirement to register as a data controller with the ICO, charged at £35/year: [https://www.gov.uk/governme…;](https://www.gov.uk/government/publications/revenue-and-customs-brief-46-2014-vat-rule-change-and-the-vat-mini-one-stop-shop-additional-guidance/revenue-and-customs-brief-46-2014-vat-rule-change-and-the-vat-mini-one-stop-shop-additional-guidance) (search for "What about Data Protection?" on that page)
[Commento](https://commento.io)