1. Cases in which the problem is to do with VAT exemption or lack of VAT exemption
This means, that you expected the customer to be VAT-exempt – but VAT was charged on the order; or, you expected the customer to not be VAT exempt, but no VAT was charged, and the order details (please look in the WooCommerce order details to confirm that) state that the customer was exempted.
Whether VAT exemption applies depends upon several of your settings, and the customer’s taxable address. It can also depend upon other plugins – for example, there are some “wholesale” plugins that will automatically set all customers with a “business” role to be VAT-exempt. Firstly, you should look for such plugins, de-activate them, and run through the same purchase procedure, and see if the problem still exists or not. Unfortunately, there is no mechanism to indicate automatically which plugin informed WooCommerce that a customer should be VAT-exempt, or not – it’s only possible to record (which the plugin does) the fact itself.
The next thing to do is to work systematically through the order details, together with your settings. Firstly, check the taxable country on the order (in the WooCommerce order details). Note which VAT zone (e.g. EU, UK) this country is in. Check what your WooCommerce base country is. Check the settings in the plugin for VAT exemption, and include in your checks those settings which result in a different result for the base country.
Note also that the delivery method can be involved. For example, for a “local pick-up” delivery method, the taxable country will be the country where the order is collected, not the country where the customer was ordering from, or their billing country.
If comparing your settings with the results does not reveal where the issue lies, then for testing purposes you should temporarily de-activate all other plugins (you may wish to do this on the staging version of your site, or create one with a tool like UpdraftClone), except for WooCommerce, and attempt to reproduce the issue. If the issue no longer exists, then re-enable them all, and then attempt to reproduce.
If this procedure does not reveal the cause of the problems, then please contact support. When you do so, please provide a list of relevant settings (including relevant tax tables), a copy of all the VAT audit information for the affected order, plus the steps to reproduce the problem (e.g. 1) Visit this product page, http://example.com/product/something, and put a quantity of 2 in your cart. (Remember to tell us which product tax class this product is in). 2) Follow the link to the checkout page, and set your billing country as X, and your shipping country as Y, ….. 3) Enter this VAT number, Z, …., etc.) If you do not supply this information then our first response will likely be to request this information from you – the number of combinations of things that can happen (settings, billing country, shipping country, taxation country, business/consumer/etc.) is so high that without it, it is hard to give any useful practical help, so please be as detailed (but relevant) as possible.
2. Other VAT calculation issues (not when the problem is VAT exemption or lack of VAT exemption)
All tax calculations in WooCommerce are carried out by WooCommerce core, according to the tax rate tables you have configured in the WooCommerce settings. They are not altered by this plugin – because it does not need to (WooCommerce core already has complete features in this area). The only way that this plugin gets involved is by setting a flag for an order to be exempted from tax, if a valid VAT number has been entered. Otherwise, all taxes are calculated according to your tax rate tables, which you can find in your dashboard in WooCommerce -> Settings -> Taxes -> (Tax Rate Tables). For official documentation on taxes in WooCommerce, go here. The things you will want to look at most closely are the tax class that your product is in, the tax table for that product class, and the taxation country for your customer. If the order has been placed, then you can look on the WordPress dashboard order screen for the order to see all the details that are relevant (the plugin helps you with this by recording some of those details for audit, including some that are not recorded by default by WooCommerce at the time the order is placed: i.e. WooCommerce makes calculations, but does not record all the details at the time that were used as the inputs for those calculations, but the plugin adds those records to help with post-order investigations). If you are looking at a product page, then you can add this to your wp-config.php file …
… and then view the HTML source of the page in your web-browser (the option to do so is usually in the “Developer” or “Tools” menu of your browser), search in the HTML source for the word “debug”, and then see what country WooCommerce is using for the visitor’s taxation country. Note that if you are using caching/minifying tools on your HTML output, then this comment may have been removed by those tools, so you may need to disable those first to see the relevant HTML comment.
You should make sure that you keep your tax rates up to date; so, you should make sure that you are aware of changes to VAT rates across the EU and/or UK (e.g. by following news on a website like VAT Live). To help you keep your rates up to date, the plugin provides two facilities which you can use:
1) In your dashboard, in WooCommerce -> VAT Compliance -> Readiness Report, the plugin will report on whether it believes your VAT rates are up to date.
2) In WooCommerce -> Settings -> Taxes -> (Tax Rate Tables), there is a button to press that can update your current tax rate table entries to match a full set of current VAT rates (at either standard, or reduced rate).
Posted in: WooCommerce EU/UK VAT Compliance