Menu Close

Get Support From ShopWired Close

All systems operational

Subscribe To Updates
Prefer To Live Chat? Chat directly with ShopWired support Available 9.30am to 5.30pm Monday to Friday (extended hours coming soon) Quickest response time
Send A Message
Response within 24 hours

Menu Close


Not charging VAT to businesses within the EU

If a customer is a business that resides within the European Union, you may not want that customer to pay VAT on their order if they supply a valid VAT number.

Our platform is connected to a third party API that can check the validity of a VAT number entered by a user and if valid, you can place code on your website to remove VAT from the order under this circumstance. This implementation will remove VAT from all products in the order (including the delivery charge).

In the example above, the visitor has selected their delivery country as France and so an 'enter your VAT number' form is displayed. Clicking the 'validate' button checks the inputted number against the API and removes VAT from the order.

In order to achieve this functionality, you will need to install the 'vat features' extension in your ShopWired account and make coding changes to your theme's files. To activate the extension, select 'apps & extensions' from the menu and then 'available extensions', find and click to activate the 'vat features' extension.

The instructions below describe the coding changes that need to be made, if you prefer we can make these changes for you - please contact us for a quote.


First, you'll need to add a VAT number field, similar to the example above, to the checkout/basket page of your website. You'll likely only want this field to appear if a customer selects an appropriate delivery zone (for example any country within the EU excluding your own). This can be achieved by identifying the ID of the country selected by the user as their delivery zone.

Here's a list of countries within the EU and their ID:

Austria 14
Belgium 21
Bulgaria 33
Croatia 53
Cyprus 55
Czech Republic 56
Denmark 57
Estonia 67
Finland 72
France 73
Germany 81
Greece 84
Hungary 97
Ireland 103
Italy 105
Latvia 117
Lithuania 123
Luxembourg 124
Malta 132
Netherlands 150
Poland 170
Portugal 171
Romania 175
Slovakia 189
Slovenia 190
Spain 195
Sweden 203
United Kingdom 222

The VAT number entered can be validated against the API through a post request to /checkout/basket/set-vat-number. The post request expects a vat_number field.

The endpoint will return a JSON response with a single property of valid which will return as either true or false , e.g.

    "valid": true

VAT will be automatically removed from the order if the VAT number was validated and the VAT number country prefix, e.g. 'GB' for United Kingdom, matches against the list of qualifying countries that you've entered on the extension settings within your account (described below).

You'll probably want to record the VAT number supplied by the customer onto the details about the order. The VAT number entered is available on the checkout/address page in a twig variable checkout.vat_number so this can be referenced and placed in the order comments, e.g.

<input type="hidden" name="comments" value="VAT Number: {{ checkout.vat_number }}">

You may already have a comments field on your checkout page. If you do you'll need to adjust the existing comments field and the one above so that you can have both fields operating at the same time. You can find out more about this here.

Configuring the extension

On the extension page in your account you'll need to configure two settings to make the above work correctly.

First, you'll need to tick the tick box 'remove VAT from orders'. This enables the 'VAT removal' system.

Secondly, you'll need to enter the VAT number country prefixes, separating them with a comma, for the countries that you want VAT to be removed from the order for.

For example, if you're in the UK then you might want to use the country codes for all countries within the EU VAT zone, except for the UK. So you'd enter:


Save your changes when you're done.