8

PricingBlog

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

2

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

2

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:58

GB

094531337168

VALID

HMRC (UK)

Motor China Motor Ltd.

[email protected]

RJE-CED-DON

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

$composer require byte8/module-vat-validator
$bin/magento module:enable Byte8_VatValidator
$bin/magento setup:upgrade && bin/magento cache:flush

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?

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.