TL;DR
vatlayer validates EU VAT numbers and retrieves associated company data. Check if a VAT number is valid, get the company name and address, and look up current VAT rates for any EU country. Essential for B2B invoicing, compliance, and vendor verification in the European Union.
Quick start: https://api.vatlayer.com/validate?access_key=YOUR_KEY&vat_number=LU26375245
Free tier available — register for an API key (free plan includes 100 requests/month)
How to Use This API
1. Validate a VAT Number
https://api.vatlayer.com/validate?access_key=YOUR_KEY&vat_number=LU26375245
Returns: {"valid":true,"vat_number":"LU26375245","company_name":"Amazon EU Sarl","company_address":"5 RUE PLAETIS, L-2338 LUXEMBOURG"}
2. Get VAT Rates for All EU Countries
https://api.vatlayer.com/rate_list?access_key=YOUR_KEY
Returns current standard and reduced VAT rates for all EU member states. Updated when countries change their rates.
3. Get VAT Rate for a Specific Country
https://api.vatlayer.com/rate?access_key=YOUR_KEY&country_code=DE
Returns standard and reduced VAT rates for Germany. Country codes are ISO alpha-2.
4. JavaScript — B2B VAT Validation
async function validateVAT(vatNumber, apiKey) {
const resp = await fetch(
`https://api.vatlayer.com/validate` +
`?access_key=${apiKey}&vat_number=${encodeURIComponent(vatNumber)}`
);
const data = await resp.json();
return {
valid: data.valid,
company: data.company_name,
address: data.company_address,
country: data.country_code,
vatNumber: data.vat_number
};
}
async function processInvoice(vatNumber) {
const info = await validateVAT(vatNumber, 'YOUR_KEY');
if (info.valid) {
console.log(`Valid VAT: ${info.vatNumber}`);
console.log(`Company: ${info.company}`);
console.log(`Address: ${info.address}`);
} else {
console.log(`Invalid VAT number: ${vatNumber}`);
}
}
processInvoice('LU26375245');
5. Python — VAT Rate Dashboard
import requests
def get_vat_rates(api_key):
resp = requests.get(
'https://api.vatlayer.com/rate_list',
params={'access_key': api_key}
)
rates = resp.json().get('rates', {})
print("EU VAT Rates (Standard):")
countries = sorted(rates.items(), key=lambda x: x[1].get('standard', 0), reverse=True)
for code, info in countries[:10]:
print(f" {code}: {info.get('standard', 'N/A')}% standard, "
f"{info.get('reduced', 'N/A')}% reduced")
return rates
def check_rate_for_country(api_key, country_code):
resp = requests.get(
'https://api.vatlayer.com/rate',
params={'access_key': api_key, 'country_code': country_code}
)
data = resp.json()
print(f"VAT rates for {data.get('country_name', country_code)}:")
print(f" Standard: {data.get('standard_rate', 'N/A')}%")
get_vat_rates('YOUR_KEY')
https://api.vatlayer.com/validate?access_key=YOUR_KEY&vat_number=LU26375245
Frequently Asked Questions
- What countries are covered?
- All 27 EU member states plus some additional European countries with VAT systems. The API covers VAT numbers registered in these countries.
- How accurate is the VAT validation?
- The validation checks against the official EU VIES (VAT Information Exchange System) database in real-time, making it as accurate as the government source.
- What is the free tier limit?
- 100 requests per month on the free plan. Paid plans offer higher volumes and SLA guarantees.
- Does it return company address details?
- When available from VIES, the API returns the registered company name and address. Availability varies by country — some countries only confirm validity without sharing details.
- How often are VAT rates updated?
- VAT rate changes are tracked and updated whenever EU member states announce changes. The rate_list endpoint always returns the latest rates.
API Details
- API URL
https://api.vatlayer.com- Documentation
- vatlayer.com/documentation
- Category
- Data
- Authentication
- API Key Required (free tier available)
- Geographic Coverage
- European Union — 27 Member States
What You Can Build
- B2B invoice system with automatic VAT validation
- Vendor onboarding — verify supplier VAT numbers
- E-commerce checkout with VAT rate calculation per country
- Accounting software with VAT compliance checks
- Cross-border transaction system with company data lookup