How to check if a VAT number is real

What a VAT number actually tells you

A VAT number is a government-issued identifier assigned to a business that has registered to collect and remit value-added tax. In the EU, every registered business receives a VAT identification number formatted by country code and a numeric or alphanumeric string — DE123456789 for Germany, FR12345678901 for France, and so on.

The number tells you three things when it is valid: the business existed and was active at the point of registration, it was registered in the country indicated by the prefix, and it was authorised to charge VAT on its invoices at the time of registration. It does not tell you whether the business is still active today. That requires a live registry query.

Why fake VAT numbers cost businesses money

There are two ways a fake or invalid VAT number on an invoice creates a financial loss:

EU tax authorities estimate that VAT fraud costs member states €50 billion per year. The majority of cases involve invoices that were never verified against a live registry.

How missing trader fraud works

Missing trader intra-community (MTIC) fraud is the most common form of VAT fraud in the EU. The mechanics are straightforward:

The buyer is not complicit. But when the tax authority investigates, it recovers the unclaimed tax from whoever is available. Due diligence — specifically verifying the supplier's VAT registration status at time of invoice — is the primary defence.

What the official verification process looks like

Each jurisdiction maintains its own live registry for VAT number validation. The official sources are:

jurisdictionregistrywhat it returns
EU (27 member states)EU VIES — ec.europa.euValid/invalid flag, registered company name, registered address (where member state provides it)
UKHMRC VAT API v2Valid/invalid flag, registered business name, registered address, VAT registration date
AustraliaAU ABR (Australian Business Register)ABN validity, GST registration status, entity name, business address

Querying these registries manually for each invoice is possible but slow. Each query requires navigating a government web interface or making an authenticated API call. For a team processing dozens of cross-border invoices per week, the friction leads to skipped checks.

How to automate VAT validation in your AI agent

The VAT Validator MCP server gives any MCP-compatible agent direct access to VIES, HMRC, and AU ABR with a single tool call. No API keys required for the free tier. No manual registry navigation.

To validate an EU VAT number, the agent calls validate_vat with the country code and number. For UK VAT numbers, it calls validate_uk_vat. For AI-powered fraud analysis, it calls analyse_vat_risk — which cross-references the registry result against known fraud patterns and returns a structured verdict.

The workflow for an agent processing an inbound invoice looks like this:

If the number is invalid, deregistered, or matches a fraud pattern, the agent receives a BLOCK or REVIEW verdict and routes the invoice to a human reviewer with the specific signals attached.

Reading the result — what CLEAR, REVIEW, and BLOCK mean

The analyse_vat_risk tool returns a machine-readable verdict via the agent_action field:

The response also includes a numeric risk score (0–100), the specific fraud signals detected, and the name/address returned by the registry for direct comparison against what appears on the invoice. A mismatch between the invoice name and the registry name is itself a fraud signal.

Adding VAT Validator MCP to your agent

Claude Code (.mcp.json)
{ "mcpServers": { "vat-validator": { "type": "sse", "url": "https://vat-validator-mcp-production.up.railway.app/sse" } } }
LangChain
from langchain_mcp import MCPClient client = MCPClient( "https://vat-validator-mcp-production.up.railway.app/sse" )
OpenAI Agents SDK
from agents.mcp import MCPServerSse mcp_server = MCPServerSse( params={"url": "https://vat-validator-mcp-production.up.railway.app/sse"} )

Free tier: 20 calls/month, no API key required. Covers validate_vat, validate_uk_vat, get_vat_rates, analyse_vat_risk, and compare_invoice_details.

product page