plugin-icon

vatnode – EU VAT Validation and Reverse Charge

Validate EU VAT numbers against VIES at checkout, apply the reverse charge, and keep WooCommerce tax rates in step with the European Commission.
Version
1.1.5
Zuletzt aktualisiert
Aug 13, 2026
vatnode – EU VAT Validation and Reverse Charge

WooCommerce collects a VAT number if you add a field for it, but it does not check the number and it does not know when a sale is zero-rated. This plugin does both, and keeps the EU VAT rate table current while it is at it.

Neither job needs any configuration to get started.

1. Your tax table stays correct. The plugin pulls standard VAT rates for every EU member state from the European Commission’s Taxes in Europe Database (TEDB) and writes them into the WooCommerce tax table. It re-checks daily, so a rate change lands in your store within 24 hours instead of whenever you happen to read about it.

2. Your B2B buyers can pay without VAT. The plugin adds a VAT number field at checkout. The number is checked against its country format offline, stored on the order, and — once you add a vatnode API key — verified live against the official VIES service. When a buyer’s VAT number is valid and they are in another EU country, VAT is removed and the reverse charge applies.

What is free

  • Daily rate sync from the European Commission TEDB for the EU-27 plus XI
  • Manual „Sync now“ whenever you want it
  • VAT number field on both the classic and block checkout
  • Offline format checking against the country pattern
  • VAT number stored on the order and shown in the admin

What needs a vatnode API key

  • Live VIES verification of the VAT number
  • Automatic reverse charge for verified EU business buyers
  • Company name from the official register stored with the order
  • VIES consultation number stored as audit evidence, when your vatnode account has a requester VAT configured

Get a key at vatnode.dev/woocommerce — the free plan includes a monthly request quota. Paste it into WooCommerce EU VAT Rates and save. Nothing else changes.

OSS and the €10,000 threshold

If your store is registered for the One Stop Shop, consumers in other EU countries are charged the rate of their own country. That is the default. If you are not registered, untick the OSS box: every EU buyer is then charged your own country’s rate, which is what applies while cross-border sales stay under the EU-wide €10,000 threshold.

How the reverse charge decision is made

  1. Empty field nothing happens, VAT is charged
  2. Wrong format for the country, or a VAT country that does not match the billing country the shopper is asked to fix it
  3. Same country as your store domestic sale, VAT is charged
  4. Another EU country and VIES confirms the number VAT removed, reverse charge applied
  5. VIES says the number does not exist the shopper is asked to correct it or remove it

If the check cannot be made — no key, quota spent, VIES down — the order still goes through with VAT charged, and the reason is written to the order notes. A checkout is never blocked by an upstream service.

Data source

Rates come from the European Commission TEDB. The dataset is open source and also published on GitHub, npm, PyPI, Packagist and RubyGems. A full copy ships inside the plugin, so nothing has to be downloaded for it to work — the daily refresh exists because rates change by law between plugin releases.

External services

The plugin ships with a full copy of the rate dataset and works without contacting anything. Two external services are used on top of that.

1. eu-vat-rates-data (rate refresh) — keeps the bundled rates current

VAT rates are set by law and change during the life of a plugin release, so the plugin refreshes its bundled dataset from https://raw.githubusercontent.com/vatnode/eu-vat-rates-data/main/data/eu-vat-rates-data.json, hosted by GitHub. This happens once a day and when you click „Sync now“. Nothing is downloaded during a page load or a checkout, and if the refresh fails the bundled dataset is used, so the store keeps working. The request sends no personal data: only your site URL as part of the user agent, which GitHub logs as it does for any file download.

GitHub terms: https://docs.github.com/site-policy/github-terms/github-terms-of-service — privacy: https://docs.github.com/site-policy/privacy-policies/github-privacy-statement

2. vatnode API (VAT number validation) — only if you add an API key

When you configure a vatnode API key and enable validation, the plugin sends the VAT number entered at checkout to https://api.vatnode.dev, which queries the EU Commission’s VIES service and returns the result. The request contains the VAT number, your API key and the plugin user agent. It does not contain the customer’s name, email, address or order contents. The answer is cached in your site for 24 hours, so entering a VAT number costs one request no matter how often the checkout refreshes.

No requests are made to vatnode until you enter an API key.

vatnode terms: https://vatnode.dev/legal/terms — privacy: https://vatnode.dev/legal/privacy

Kostenlosmit kostenpflichtigen Tarifen
Mit deiner Installation stimmst du den Geschäftsbedingungen von WordPress.com sowie den Bedingungen für Drittanbieter-Plugins zu.
Getestet bis
WordPress 7.0.4
Dieses Plugin steht für deine -Website zum Download zur Verfügung.