EU VIES + UK HMRC VAT validation that actually works in 2026.
Free, MIT-licensed Magento 2 module. EU VIES (REST, not deprecated SOAP) + UK HMRC + Swiss UID-Register VAT number validation, with three-way customer-group mapping (domestic-valid / intra-EU-valid / invalid), checkout-time revalidation, and a DACH-compliant §147 AO audit log. Lead-magnet for Byte8 Ledger (Sage / Xero / FreeAgent sync).
Shipping
Review & Payments
Shipping Address
Country*
United Kingdom
Company
Motor China Motor Ltd
VAT Number
GB094531337168
Validate VAT Number
Valid
GB094531337168
· HMRC
Motor China Motor Ltd.
7 Buff Avenue, WD00 1VL, GB
Reference: WLM–CJW–UXD
Shipping
Review & Payments
Shipping Address
Country*
United Kingdom
Company
Motor China Motor Ltd
VAT Number
GB094531337
Validate VAT Number
Invalid
GB094531337
· HMRC
HMRC: VAT number not found
Validates at checkout · both outcomes
EU + UK + Swiss — modern HTTP, no Magento SOAP
Validates against the current EC VIES REST endpoint (all 27 member states + Northern Ireland), HMRC's OAuth-protected GB lookup post-Brexit, and the Swiss UID-Register. No Magento SOAP wrapper, no ext-soap dependency, no merchant OAuth registration ceremony — just a single REST call from your storefront, server-side.
One module · three upstreams
Modern HTTP
Customer enters
DE123456789
/rest/V1/byte8-vat-validator/validate
🇪🇺
VIES
REST
ec.europa.eu/.../check-vat-number
DE / FR / IT / NL …
Valid
🇬🇧
HMRC
REST + OAuth
api.service.hmrc.gov.uk/.../lookup
GB
Valid
🇨🇭
UID-Register
SOAP
uid-wse.admin.ch/V5.0/PublicServices.svc
CHE
Invalid
Country prefix routes the call · no Magento SOAP, no ext-soap dependency
Three-Way Customer Group Mapping
Native Magento has one 'valid' bucket. We split into Domestic-Valid (still pays VAT), Intra-EU/UK-Valid (zero-rated / reverse charge), and Invalid — wired to your existing tax rules. Validation runs at customer save AND quote save, so a logged-in B2B customer can't change country at checkout and pay the wrong tax.
Configuration
Save Config
General
Catalog
Customers
Sales
BYTE8
VAT Validator
PingBell
Pulsar
Validation Sources
⊝
Yes
EU VIES
Yes
UK HMRC
Yes
Swiss UID
Customer Group Mapping
⊝
When a VAT number is validated, the customer is moved into one of these groups. Assign each group a tax class to produce the “Zero Tax” outcome.
Auto-Assign Customer Group
[website]
Yes
Group for Domestic Valid VAT
[website]
B2B — Domestic
▾
Same country as store · domestic VAT still applies.
Group for Intra-EU / UK Valid VAT
[website]
B2B — Intra-EU (Zero Tax)
▾
Cross-border VIES / HMRC valid · reverse-charge / zero tax.
Group for Invalid VAT
[website]
B2B — Unverified
▾
VAT failed validation · leave empty to preserve current group.
DACH-compliant audit log (§147 AO)
DB-backed validation log with admin grid, CSV / Excel XML export, and configurable retention (default 10 years per §147 AO). Every row stores the VIES qualifizierte Bestätigung reference, raw request + response, and a nightly prune cron keeps the table healthy. Built for Finanzamt audits, useful for any cross-border B2B merchant.
VAT Validation Log
§147 AO compliant · 10-year retention · nightly prune
Filters
Columns
Export
⌕
Search by keyword
104 records found
Validated At
Country
VAT Number
Status
Source
Company Name
Customer Email
Confirmation Ref
2026-04-28 12:52:16
GB
491454866908
VALID
HMRC (UK)
Bezri Heings Shand Holdings
—
TAM-OPV-LWN
2026-04-28 12:49:04
GB
961925638
VALID
HMRC (UK)
SABIC Fuel
—
UKK-PHH-KVM
2026-04-28 12:46:04
GB
961925638232
VALID
HMRC (UK)
Phillia Communicons Co.
—
VQA-QXX-YKA
2026-04-28 12:44:52
GB
436189915
INVALID
HMRC (UK)
Phillia Communicons Co.
—
WMV-DCQ-NMW
2026-04-28 12:31:54
GB
770555752641
VALID
HMRC (UK)
PCE CIT
—
VJA-QJX-YAA
2026-04-28 12:21:18
GB
094531337168
UNAVAILABLE
HMRC (UK)
Motor China Motor Ltd.
—
WNU-XLV-LXL
2026-04-28 12:12:09
DE
TESTDEDUPE
INVALID
VIES (EU)
—
—
—
Persists every successful + failed call · raw req/res payloads stored
page 1 of 13
Free, MIT-licensed, install in 60 seconds
Configure VIES + HMRC + UID toggles and your three customer groups under Stores → Configuration → Byte8 → VAT Number Validator. New B2B registrations are auto-grouped from the next save; bulk re-validate your existing base with `bin/magento byte8:vat:revalidate-all`. On Hyvä? Add the optional `byte8/module-vat-validator-hyva` companion for a live debounced green/red indicator in the registration + address forms.
Frequently asked questions
Is this really free?
Why not use Magento's native VAT validation?
What countries are covered?
What happens when VIES is down?
Does it satisfy German Finanzamt audit requirements?
Does it work with my existing tax rules?
How do I bulk re-validate existing customers?
Is there a REST endpoint for headless / SPA checkout?
Does it work with Hyvä themes?
What about the new German W-IdNr.?
GDPR-wise, what do you send to third parties?
What Magento versions are supported?
From validation to invoicing — sync your B2B customers automatically
Stop accepting unvalidated B2B VAT numbers
Free, MIT-licensed, two minutes to install. Cross-border B2B merchants love it; German Finanzamt-audited shops keep it for the §147 AO log.