TL;DR
The EU VIES (VAT Information Exchange System) API validates VAT identification numbers issued by any European Union member state. Submit a country code and VAT number to check if it's registered, active, and valid. The response confirms validity, provides the registered business name and address, and the last validation date. SOAP and JSON endpoints available. No API key. Essential for B2B compliance, invoice validation, and EU business verification.
Quick start: https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/123456789
No API key needed — just make a request!
How to Use This API
1. Validate a VAT Number (REST API)
https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/123456789
2. JavaScript — Validate and Display
fetch('https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/123456789')
.then(r => r.json())
.then(data => {
console.log(`Valid: ${data.isValid}`);
console.log(`Name: ${data.businessName}`);
if (data.isValid) {
console.log(`Address: ${data.businessAddress}`);
}
});
3. Python — Batch VAT Validation
import requests
vats_to_check = [
('DE', '123456789'),
('FR', '12345678901'),
('IT', '12345678901'),
('ES', '12345678A'),
]
for country, vat in vats_to_check:
data = requests.get(
f'https://ec.europa.eu/taxation_customs/vies/rest-api/ms/{country}/vat/{vat}'
).json()
status = 'VALID' if data.get('isValid') else 'INVALID'
name = data.get('businessName', 'N/A')
print(f"{country}{vat}: {status} — {name}")
https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/123456789
Frequently Asked Questions
- What EU countries are covered?
- All 27 EU member states: AT, BE, BG, CY, CZ, DE, DK, EE, EL, ES, FI, FR, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK.
- What format should the VAT number be in?
- VAT numbers should be without the country prefix (just the numeric/alphanumeric portion). For example, for German VAT DE123456789, send 123456789 with country code DE.
- What data is returned for a valid VAT?
- Validity status, business name, business address, country code, VAT number, request date, and validation timestamp.
- Is there a SOAP endpoint as well?
- Yes, the legacy SOAP WSDL is available at
https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdlfor older integrations. - How current is the data?
- VIES data is updated in real-time from national VAT databases. Each validation returns the current status from the issuing member state's system.
- Are there API usage limits?
- The EU VIES service is a public government resource. Reasonable usage is permitted. For very high-volume validation, cached/batch approaches are recommended.
API Details
- API URL
https://ec.europa.eu/taxation_customs/vies/rest-api- Documentation
- EU VIES VAT Validation
- Category
- Finance
- Authentication
- Not Required
- Geographic Coverage
- European Union (all 27 member states)
What You Can Build
- Invoice validation tool checking customer VAT numbers before billing
- B2B onboarding system verifying supplier tax registration status
- E-commerce compliance module for cross-border EU transactions
- Accounting software integration auto-validating client VAT numbers
- VAT number database with bulk validation and expiration tracking