VIES VAT Validation API
Official EU VAT validation API with no key: verify any EU VAT number against member state databases and get the registered business name and address. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the VIES VAT Validation API?
The VIES REST API is the European Commission's official, free service for validating EU VAT numbers. It checks the number against the issuing member state's database and returns validity plus the registered business name and address.
This is the authoritative source for EU VAT validation — the same system tax authorities use — and it is free with no key. For B2B sellers in the EU, validating a customer's VAT number is a legal prerequisite for zero-rating cross-border invoices.
It queries member state databases in real time, which has a practical consequence: individual countries take their systems down for maintenance, and when they do, validation for that country fails temporarily rather than returning invalid. Handle unavailability distinctly from invalidity.
Quick facts
- Base URL
https://ec.europa.eu/taxation_customs/vies/rest-api- Authentication
- No API key required. It is an official European Commission service.
- Rate limit
- No published limit, but excessive automated use may be throttled.
- Pricing
- Free official EU service.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the VIES VAT Validation API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Validate an EU VAT number
GET https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V
curl 'https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V'const res = await fetch("https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V", timeout=20)
res.raise_for_status()
print(res.json()){
"isValid": true,
"requestDate": "2026-08-19T21:15:11.556Z",
"userError": "VALID",
"name": "GOOGLE IRELAND LIMITED",
"address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"requestIdentifier": "",
"originalVatNumber": "6388047V",
"vatNumber": "6388047V",
"viesApproximate": {
"name": "---",
"street": "---",
"postalCode": "---",
"city": "---",
"companyType": "---",
"matchName": 3,
"matchStreet": 3,
"matchPostalCode": 3,
"matchCity": 3,
"matchCompanyType": 3
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ms/<country>/vat/<number> | path | Required | Two-letter country code and VAT number without the prefix. ms/IE/vat/6388047V |
Response fields
isValidboolean- Whether the VAT number is registered and valid.
requestDatestring- Timestamp of the check — keep this for audit purposes.
userErrorstring- VALID, INVALID_INPUT, MS_UNAVAILABLE and similar.
namestring- Registered business name, where the member state discloses it.
addressstring- Registered address, where disclosed.
countryCode / vatNumberstring- Echo of what was checked.
What you can build with the VIES VAT Validation API
- Validate B2B customer VAT numbers before zero-rating an invoice
- Verify supplier VAT registration during onboarding
- Keep an auditable record of VAT checks with timestamps
- Prevent VAT fraud in a cross-border e-commerce flow
Common errors and how to fix them
userError: MS_UNAVAILABLE
The member state's database is temporarily down.
Fix: This is not the same as invalid — retry later rather than rejecting the customer.
name and address empty
Some member states do not disclose business details.
Fix: Germany and Spain commonly withhold them; isValid is still authoritative.
INVALID_INPUT
The VAT number format is wrong for that country.
Fix: Strip the country prefix from the number — it goes in the path separately.
VIES VAT Validation API — frequently asked questions
Is the EU VAT validation API free?
Yes, VIES is an official free service from the European Commission with no API key required.
Why do some valid numbers return no company name?
Several member states, notably Germany and Spain, do not disclose business names through VIES. The isValid result is still authoritative.
What does MS_UNAVAILABLE mean?
The member state's own database is temporarily unreachable. This is distinct from an invalid number — retry later rather than rejecting the customer.
Do I need to keep a record of the check?
Yes, for EU B2B zero-rating you should retain evidence of validation. The requestDate field gives you a timestamp for that audit trail.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
VIES VAT Validation is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.