W System / Blog / Shopware 6 EU VAT ID check with VIES (free plugin)
Shopware 6 EU VAT ID check with VIES: free plugin, tax-free company prices only for real VAT IDs
In short: Shopware 6 can show business customers prices without VAT when you enable Tax-free for companies on a country, but out of the box it only checks the format of the VAT ID. A mistyped or deregistered number still gets the tax-free price. This page explains what a proper check needs (live VIES, prefix vs billing country, a rule for VIES outages, evidence on the order) and a free GPL plugin for Shopware 6.6 and 6.7 that does it. Not tax advice.
Why a format check is not enough
- Format is not registration. A VAT ID can be well formed and still not exist, or be deregistered. Only VIES, the European Commission's VAT number service, says whether a member state has it registered.
- The prefix must match the billing country (EL for Greece, XI for Northern Ireland goods).
- Keep proof. For intra-EU supplies of goods, a valid VAT number of the buyer is a condition for the exemption since the 2020 "quick fixes" (Directive 2018/1910). A record of the VIES result, ideally with the consultation number, is what your accountant will ask for.
- Plan for outages. VIES answers MS_UNAVAILABLE or times out for some member states several times a week, so the shop needs a rule for that case.
The free plugin: EU VAT check (VIES) for Shopware 6
Disclosure: W System, which publishes this page, makes this plugin and the API it calls. It hooks into Shopware's own VAT ID field at registration and profile update and checks the number live in VIES through the W System API. Invalid numbers are rejected with a clear message (configurable), numbers whose country does not match the billing country are rejected, and VIES outages are accepted by default (configurable). When the customer orders, the VIES status, consultation number, name in VIES, check date and whether the order was tax-free are saved in the order's custom fields. The tax-free price itself comes from Shopware's Tax-free for companies setting, so nothing about your prices or invoices changes.
Download v0.1.0 (zip) · source and readme on GitHub (GPL-3.0-or-later) · all releases
Install in a few minutes
- Download the zip above.
- In the Shopware admin open Extensions, My extensions, Upload extension, and upload the zip. Then install and activate "EU VAT check (VIES) by W System".
- Open the plugin's Configure screen. Optionally enter your own VAT ID to get VIES consultation numbers, and choose what happens for invalid numbers and VIES outages.
- Under Settings, Countries, enable Tax-free for companies for the countries where you sell B2B without VAT (your accountant decides which).
- Register a test business customer with a known valid VAT ID from another EU country, place an order and look at the order's custom fields.
Developers can also install from the GitHub repository with Composer; the readme has the commands.
What the check returns
The plugin calls GET https://api.wsystem.dev/verify?vat=…. Shortened response from the live API on 28 October 2026 for Siemens AG's published VAT ID:
{
"vat": "DE811569869",
"country_code": "DE",
"status": "valid",
"valid": true,
"consultation_number": "WAPI…",
"source": "VIES (European Commission)"
}
Building your own integration or using another shop system? See the VAT validation API, how to handle VIES outages, or the WooCommerce plugin.
Questions and answers
Do I need an account or API key?
No. The plugin works without one: the W System API free tier allows 20 VIES checks per day per server IP address. An optional key only raises that daily quota.
Which Shopware versions does it support?
Shopware 6.6 and 6.7. Every change is tested in CI on Shopware 6.6.10.9 and 6.7.15.1: the plugin is installed and activated, unit tests run, and a Store API registration test checks that an invalid VAT ID is rejected, a valid one is accepted and a country mismatch is rejected.
Does the plugin calculate the tax-free price itself?
No, on purpose. Shopware already removes VAT for business customers when you enable Tax-free for companies on a country. The plugin makes sure only VAT IDs that VIES confirms get there, so prices, documents and invoices keep working the way Shopware does them.
What happens when VIES is down?
By default the VAT ID is accepted, so an EU outage does not block registration, and the order records that VIES was unavailable. You can switch this to reject and ask the customer to try again.
Is it in the Shopware Store?
Not yet. Version 0.1.0 is published on GitHub as a release zip you upload under Extensions, My extensions. The code is GPL-3.0-or-later.
Which data leaves my shop?
Only the VAT ID the customer entered, your own VAT ID if you set it (so VIES returns a consultation number), and the API key if you set one. No names, addresses, emails or order contents are sent.
Sources
- Council Directive 2006/112/EC (EU VAT Directive), EUR-Lex
- Council Directive (EU) 2018/1910 ("quick fixes"), EUR-Lex
- European Commission: VIES VAT number validation
- Plugin source, readme and CI on GitHub
Related
- EU VAT validation guide
- WooCommerce EU VAT number validation (free plugin)
- EU VAT number validation API
Plugin v0.1.0 released 28 October 2026. Not tax advice; not affiliated with shopware AG or the European Commission.
Facts checked 2026-10-28. W System is the maker of this product. Not affiliated with the European Commission. Not legal or tax advice.