EU VAT Compliance Assistant for WooCommerce | David Anderson | eu vat

EU VAT Compliance Assistant for WooCommerce | David Anderson | eu vat,iva,moss,vat compliance,woocommerce


The EU VAT (IVA) law

Since January 1st 2015, all digital goods (including electronic, telecommunications, software, ebook and broadcast services) sold across EU borders have been liable under EU law to EU VAT (a.k.a. IVA) charged in the country of purchase, at the VAT rate in that country (background information: This applies even if the seller is not based in the EU, and there is no minimum threshold.

How this plugin can take away the pain

This WooCommerce plugin provides features to assist with EU VAT law compliance. Currently, those features include:

  • Identify your customers’ locations: this plugin will record evidence of your customer’s location, using their billing or shipping address, and their IP address (via a GeoIP lookup).

  • Evidence is recorded, ready for audit: full information that was used to calculate VAT and customer location is displayed in the WooCommerce order screen in the back-end.

  • Display prices including correct VAT from the first page: GeoIP information is also used to show the correct VAT from the first time a customer sees a product. A widget and shortcode are also provided allowing the customer to set their own country.

  • Currency conversions: Most users (if not everyone) will be required to report VAT information in a specific currency. This may be a different currency from their shop currency. This feature causes conversion rate information to be stored together with the order, at order time. Currently, four official sources of exchange rates are available: the European Central Bank (ECB), the Danish National Bank, the Central Bank of the Russian Federation, and HM Revenue & Customs (UK).

  • Entering and maintaining each country’s VAT rates: this plugin assists with entering EU VAT rates accurately by supplying a single button to press in your WooCommerce tax rates settings, to add or update rates for all countries (standard or reduced) with one click.

  • Reporting: Advanced reporting capabilities, allowing you to see all the information needed to make a MOSS (mini one-stop shop) VAT report. The report is sortable and broken down by country, VAT rate, VAT type (traditional/variable) and order status, and can be exported as a CSV.

  • Forbid EU sales if any goods have VAT chargeable – for shop owners for whom EU VAT compliance is too burdensome, this feature will allow you to forbid EU customers to check-out if they have selected any goods which are subject to EU VAT (whilst still allowing purchase of other goods, unlike the built-in WooCommerce feature which allows you to forbid check-out from some countries entirely).

  • Central control: brings all settings, reports and other information into a single centralised location, so that you don’t have to deal with items spread all over the WordPress dashboard.

  • Mixed shops: You can sell goods subject to EU VAT under the 2015 digital goods regulations and other physical goods which are (until 2016) subject to traditional base-country-based VAT regulations. The plugin supports this via allowing you to identify which tax classes in your WooCommerce configuration are used for 2015 digital goods items. Products which you place in other tax classes are not included in calculations/reports made by this plugin for per-country tax liabilities, even if VAT was charged upon them. (For such goods, you will calculate how much you owe your local tax-man by using WooCommerce’s built-in tax reports).

  • Distinguish VAT from other taxes: if you are in a jurisdiction where you have to apply other taxes also, then this plugin can handle that: it knows which taxes are EU VAT, and which are not.

  • Add line to invoices: If VAT was paid on the order, then an extra, configurable line can be added to the footer of the PDF invoice (when using the the free WooCommerce PDF invoices and packing slips plugin).

  • Refund support: includes information on refunded VAT, on relevant orders.

  • Same prices: Not strictly an EU VAT compliance issue (different pricing per-country is perfectly legal), but this plugin adds an option to enable WooCommerce’s hidden support for adjusting pre-tax prices to enable the same post-tax (net) price to apply in all customer locations.

A Premium version is on sale at this link, and currently has these additional features ready:

  • VAT-registered buyers can be exempted, and their numbers validated: a VAT number can be entered at the check-out, and it will be validated (via VIES). Qualifying customers can then be exempted from VAT on their purchase, and their information recorded. The VAT number is stored in the same format as the old official WooCommerce “EU VAT Number” extension, so any tools you had which rely on the stored format will be unaffected. The customer’s VAT number will be appended to the billing address where shown (e.g. order summary email, PDF invoices). An extra, configurable line specific to this situation can be added to the footer of the PDF invoice (when using the the free WooCommerce PDF invoices and packing slips plugin).

  • Optionally allow B2B sales only – for shop owners who wish to only make sales that are VAT-exempt (i.e. B2B sales only), you can require that any EU customers (optionally including or excluding those in your country) enter a valid EU VAT number at the check-out.

  • CSV download: A CSV containing comprehensive information on all orders with EU VAT data can be downloaded (including full compliance information). Manipulate in your spreadsheet program to make arbitrary calculations.

  • Non-contradictory evidences: require two non-contradictory evidences of location (if the customer address and GeoIP lookup contradict, then the customer will be asked to self-certify his location, by choosing between them).

  • Show multiple currencies for VAT taxes on PDF invoices produced by the free WooCommerce PDF invoices and packing slips plugin.

  • Support for the official WooCommerce subscriptions extension, and for Subscriptio (a RightPress/CodeCanyon alternative)

Read more about the Premium version of this plugin at this link.

It is believed (but not legally guaranteed), that armed with the above capabilities, a WooCommerce shop owner will be in a position to fulfil all the requirements of the EU VAT law: identifying the customer’s location and collecting multiple pieces of evidence, applying the correct VAT rate, validating VAT numbers for B2B transactions, and having the data needed to create returns. (If in the EU, then you will also need to make sure that you are issuing your customers with VAT invoices containing the information required in your jurisdiction, via a suitable WooCommerce invoice plugin).

Footnotes and legalese

This plugin is supported on, and information in this document is for, WooCommerce 3.4 up to 4.X (i.e. the latest 4.X series release; you can still download older versions supporting previous WooCommerce release series if you wish). It fetches data on current VAT rates from Amazon S3 (using SSL if possible); or, upon failure to connect to Amazon S3, from If your server’s firewall does not permit this, then it will use static data contained in the plugin.

Geographical IP lookups are performed via WooCommerce’s built-in geo-location features; or, alternatively, if you use CloudFlare, then you can activate the CloudFlare feature for sending geographical information.

Please make sure that you review this plugin’s installation instructions and have not missed any important information there.

Please note that, just as with WordPress and its plugins generally (including WooCommerce), this plugin comes with no warranty of any kind and you deploy it entirely at your own risk. Furthermore, nothing in this plugin (including its documentation) constitutes legal or financial or any other kind of advice of any sort. In particular, you remain completely and solely liable for your own compliance with all taxation laws and regulations at all times, including research into what you must comply with. Installing any version of this plugin does not absolve you of any legal liabilities, or transfer any liabilities of any kind to us, and we provide no guarantee that use of this plugin will cover everything that your store needs to be able to do.

Whether you think the EU’s treaties with other jurisdictions will lead to success in enforcing the collection of taxes in other jurisdictions is a question for lawyers and potential tax-payers, not for software developers!

Many thanks to Diego Zanella, for various ideas we have swapped whilst working on these issues. Thanks to Dietrich Ayala and other authors, whose NuSOAP library is included under the LGPLv2 licence.

Other information


This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA


Standard WordPress installation; either:

  • Go to the Plugins -> Add New screen in your dashboard and search for this plugin; then install and activate it.


  • Upload this plugin’s zip file into Plugins -> Add New -> Upload in your dashboard; then activate it.

After installation, you will want to configure this plugin, as follows:

1) If you are selling goods for which the VAT rate should depend upon the buyer’s country, then go to WooCommerce -> Settings -> Tax -> Standard Rates, and press the “Add / Update EU Digital VAT Rates”, making sure that “Standard” is selected in the rates drop-down.

2) If you have products that are liable for VAT at a reduced rate, then also go to WooCommerce -> Settings -> Tax -> Reduced Rate Rates, and press the “Add / Update EU Digital VAT Rates”, making sure that “Reduced” is selected in the rates drop-down.

You must remember, of course, to make sure that a) your WooCommerce installation is set up to apply taxes to your sales (WooCommerce -> Settings -> Tax) and b) that your products are placed in the correct tax class (choose “Products” from the WordPress dashboard menu).

Plugin author

David Anderson

Plugin official website address
If you encounter problems in using the EU VAT Compliance Assistant for WooCommerce plugin, you can comment below, and I will try my best to help you solve the problem

Leave a Comment

Your email address will not be published.