Home / Glossary / VIES

validation

VIES (VAT Information Exchange System)

The EU Commission's official real-time system for validating VAT numbers across all 27 member states. It queries national tax databases and returns the registration status, company name, and address of any EU-registered business.

VIES (VAT Information Exchange System) is the official EU Commission database for validating EU VAT registration numbers. It sits between your application and the national tax authority of every EU member state — when you query VIES for a German VAT number, VIES forwards that request to the Bundeszentralamt für Steuern and returns the result. It is the only authoritative source for real-time EU VAT validation and is legally mandated for cross-border B2B zero-rate treatment.

How VIES works

VIES exposes a SOAP/XML web service at ec.europa.eu/taxation_customs/vies/services/checkVatService. When you call it with a country code and VAT number, VIES forwards the request to the relevant national tax authority's database. The response contains four fields: `countryCode`, `vatNumber`, `valid` (boolean), and — when available — `name` and `address` of the registered business.

The 'when available' caveat is important: several EU member states do not share business name and address data through VIES. Germany, France, the Netherlands, Italy, and Spain return full details. Cyprus, Luxembourg, and some Eastern European states return only the `valid` flag. You cannot rely on name/address being present in all responses.

VIES limitations developers encounter in production

Warning

Never fail a customer transaction because VIES returned `MS_UNAVAILABLE`. That status means the national database is temporarily offline — not that the VAT number is invalid. You must handle this case explicitly or you will block valid EU business customers during VIES outages.

What VIES returns

FieldTypeNotes
validbooleantrue = registered in VIES at time of query
namestring | nullCompany name — not available for all member states
addressstring | nullRegistered address — not available for all member states
countryCodestringAlways present, uses VIES prefix (EL for Greece, not GR)
vatNumberstringThe number as submitted, without country prefix
requestDatedateDate of the query (VIES does not cache)

Accessing VIES without SOAP

The EU Commission provides a browser-based checker at ec.europa.eu/taxation_customs/vies but this is not suitable for automated use. For production applications, the two options are: (1) call the SOAP service directly using a SOAP client, handling all downtime and rate-limit cases yourself, or (2) use a REST wrapper like TaxID that provides a JSON API, Redis caching, and explicit `service_unavailable` status codes.

Frequently asked questions

Is VIES free to use directly?

Yes — the VIES SOAP service is free to call directly. However, it requires a SOAP client, provides no caching, has rate limits, and returns SOAP faults on downtime instead of clean error codes. Most production applications use a REST wrapper to avoid dealing with SOAP in application code.

How reliable is VIES?

VIES itself targets 99% uptime, but this figure covers the EU gateway — not the national systems behind it. Individual country databases (especially smaller member states) routinely go offline for maintenance. In practice, expect 1–3 partial outages per month, often during weekends. Monitor the EU's VIES status page or use a wrapper API that exposes availability history.

Does VIES validate the business name or just the number?

VIES validates that a VAT number exists in a member state's database and, for most countries, returns the registered company name and address. It does not verify that the name a customer provides matches the registered name — that verification must be done by your application logic.

Why does VIES sometimes return 'INVALID' for a valid VAT number?

Three common causes: (1) the national database is temporarily unavailable and VIES misreports it as invalid; (2) the VAT number is valid but the business has not yet been added to VIES (newly registered companies can take days to appear); (3) the number is correctly formatted but the business's registration was revoked. Always distinguish MS_UNAVAILABLE from true invalid responses.

Can I use VIES in an EU country to validate a non-EU VAT number?

No — VIES only covers the 27 EU member states. For UK VAT numbers (post-Brexit), you must query HMRC's Companies House API separately. For US EIN, Canadian BN, or other non-EU tax IDs, different national authorities apply.

Validate EU VAT numbers via API

100 free validations/month. No credit card. Sub-10ms cached responses.

Related resources

Related terms

EU VAT Number

A unique identifier issued by a national EU tax authority to businesses registered for value added tax. It enables zero-rate treatment on cross-border B2B transactions and is the basis for all EU VAT compliance.

Reverse Charge VAT

A VAT accounting mechanism where the buyer — not the seller — accounts for VAT on a cross-border B2B supply. The seller invoices at zero-rate; the buyer self-assesses VAT in their own country. EU law requires VAT number validation before applying it.

B2B VAT Exemption

Zero-rate treatment applied to cross-border EU B2B supplies where the buyer holds a valid VAT number in a different member state. Not a true exemption — the transaction is still VAT-applicable; the buyer self-accounts via the reverse charge mechanism.