I'm posting this only because I keep losing this simple VATMOSS logic, and my blog doubles as my online memory bank. It's also important for me to say VATMOSS does not rule, it's terrible.
Anyway, this is the logic that states when VAT should be applied to which kinds of customers.
UK EVENTAttend ffconf.org 2024
The conference for people who are passionate about the web. 8 amazing speakers with real human interaction and content you can't just read in a blog post or watch on a tiktok!
£249+VAT - reserve your place today
What to capture
- COUNTRY
- VAT (optional and validated though all kinds of silly methods)
Logic
This is from the perspective of being in the UK.
IF country IS "GB"
ADD_VAT
IF country IS IN (eu) AND vat IS EMPTY
ADD_VAT
IF country IS IN (eu) AND vat IS NOT EMPTY
DO_NOT_ADD_VAT
ELSE
DO_NOT_ADD_VAT
Data
List of EU countries and ISO codes (from GOV.UK):
Austria AT
, Belgium BE
, Bulgaria BG
, Croatia HR
, Republic of Cyprus CY
, Czech Republic CZ
, Denmark DK
, Estonia EE
, Finland FI
, France FR
, Germany DE
, Greece EL
, Hungary HU
, Ireland IE
, Italy IT
, Latvia LV
, Lithuania LT
, Luxembourg LU
, Malta MT
, Netherlands NL
, Poland PL
, Portugal PT
, Romania RO
, Slovakia SK
, Slovenia SI
, Spain ES
, Sweden SE
and the UK GB
.
var EU = ['AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'EL', 'ES', 'FI', 'FR', 'GB', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK'];
Where to get latest EU VAT rates: http://jsonvat.com
Usual caveat's apply: this not consistute as financial advice, if you copy and paste this and it's wrong, you're responsible!