Home / Validate VAT
Validate VAT Number — EU VAT Number Validator
The TaxID API lets you validate VAT numbers for 47+ countries — all 27 EU member states via VIES, plus the UK, Australia, Norway, Canada, India, Singapore, and more. Every request performs a format check against the country's official pattern, then a live registry query returning registration status and company details.
Cached results return in under 10ms. Active registrations are cached for 24 hours; invalid results for 1 hour. When a registry is unavailable, the API returns an explicit service_unavailable status so you can handle outages without rejecting valid customers.
QUICK START — validate any EU VAT number
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://www.taxid.dev/api/v1/validate/DE/DE123456789
# { "valid": true, "status": "active", "company_name": "...", "cached": false }EU VAT Number Validator — all 27 member states
All 27 EU countries supported via the VIES API. Select a country for the format specification, code examples in 4 languages, and country-specific FAQs.
Austria
Österreich
ATU + 8 digits
Standard rate: 20%
Belgium
België / Belgique
BE + 0 or 1 + 9 digits (10 digits total)
Standard rate: 21%
Bulgaria
България
BG + 9 or 10 digits
Standard rate: 20%
Cyprus
Κύπρος
CY + 8 digits + 1 letter
Standard rate: 19%
Czech Republic
Česká republika
CZ + 8, 9, or 10 digits
Standard rate: 21%
Germany
Deutschland
DE + 9 digits
Standard rate: 19%
Denmark
Danmark
DK + 8 digits
Standard rate: 25%
Estonia
Eesti
EE + 9 digits
Standard rate: 22%
Greece
Ελλάδα
EL + 9 digits
Standard rate: 24%
Spain
España
ES + letter/digit + 7 digits + letter/digit
Standard rate: 21%
Finland
Suomi
FI + 8 digits
Standard rate: 25.5%
France
France
FR + 2 alphanumeric chars + 9 digits
Standard rate: 20%
Croatia
Hrvatska
HR + 11 digits
Standard rate: 25%
Hungary
Magyarország
HU + 8 digits
Standard rate: 27%
Ireland
Éire / Ireland
IE + digit + alphanumeric + 5 digits + 1-2 letters
Standard rate: 23%
Italy
Italia
IT + 11 digits
Standard rate: 22%
Lithuania
Lietuva
LT + 9 digits (companies) or 12 digits (individuals)
Standard rate: 21%
Luxembourg
Lëtzebuerg
LU + 8 digits
Standard rate: 17%
Latvia
Latvija
LV + 11 digits
Standard rate: 21%
Malta
Malta
MT + 8 digits
Standard rate: 18%
Netherlands
Nederland
NL + 9 digits + B + 2 digits
Standard rate: 21%
Poland
Polska
PL + 10 digits
Standard rate: 23%
Portugal
Portugal
PT + 9 digits
Standard rate: 23%
Romania
România
RO + 2 to 10 digits
Standard rate: 19%
Sweden
Sverige
SE + 12 digits
Standard rate: 25%
Slovenia
Slovenija
SI + 8 digits
Standard rate: 22%
Slovakia
Slovensko
SK + 10 digits
Standard rate: 23%
Global coverage — format & live validation
Non-EU countries validated against their national registry where a live API is available, with format validation for all. Includes UK (HMRC), Australia (ABR), Norway (Brønnøysund), and more.
United Kingdom
VAT Registration Number
GB + 9 digits
Rate: 20%
Australia
ABN
11 digits
Rate: 10%
Norway
MVA-nummer
NO + 9 digits + MVA
Rate: 25%
Switzerland
MWST/TVA/IVA
CHE- + 3 digits + . + 3 digits + . + 3 digits
Rate: 8.1%
Canada
GST/HST Registration Number
9 digits + RT + 4 digits
Rate: 5%
India
GSTIN
2-digit state code + 10-digit PAN + entity number + Z + check digit
Rate: 18%
Singapore
GST Registration Number
9 digits + 1 letter
Rate: 9%
New Zealand
GST Number
8 or 9 digits
Rate: 15%
South Africa
VAT Registration Number
4 + 9 digits (always starts with 4)
Rate: 15%
United Arab Emirates
TRN
15 digits
Rate: 5%
Mexico
RFC
4 letters + 6-digit date + 3-character homoclave
Rate: 16%
Japan
インボイス登録番号
T + 13-digit corporate number
Rate: 10%
Iceland
VSK-númer
IS + 5 or 6 digits
Rate: 24%
Malaysia
Sales and Service Tax
B + 10 digits
Rate: 8%
South Korea
사업자등록번호
3 digits + - + 2 digits + - + 5 digits
Rate: 10%
Hong Kong
Business Registration Number
8 digits
Rate: 0% (no VAT)
Brazil
CNPJ
14 digits (often displayed as XX.XXX.XXX/XXXX-XX)
Rate: 17%
Turkey
VKN
10 digits
Rate: 20%
Thailand
เลขประจำตัวผู้เสียภาษี
13 digits
Rate: 7%
Indonesia
NPWP
15 digits (old format: XX.XXX.XXX.X-XXX.XXX)
Rate: 11%
How tax ID validation works
Format check
Every country has a distinct tax ID pattern. TaxID validates the format locally against the official regex before contacting any registry — saving quota on typos and invalid inputs before a network call is made.
Registry query
If the format is valid, the API queries the appropriate registry: VIES for EU countries, HMRC for the UK, ABR for Australia, Brønnøysundregistrene for Norway. Non-EU countries without a public API return a format-validated result.
Cached response
Results are cached in Upstash Redis — active numbers for 24 hours, invalid numbers for 1 hour. Repeat lookups return in under 10ms without touching any registry, keeping your checkout fast under load.
Integration guides
Step-by-step walkthroughs for common platforms and workflows.
Stripe EU VAT: Validate Tax IDs Before Charging Customers
Stripe EU VAT integration guide: validate EU VAT numbers server-side before applying zero-rate B2B exemptions in Stripe Checkout. Ensures you only exempt valid registered EU businesses from VAT.
EU VAT compliance for SaaS billing
Handle EU VAT for SaaS subscriptions. Validate customer VAT numbers at signup, determine B2B vs B2C tax treatment, and generate compliant invoices with the correct VAT amount.
Node.js VAT API — EU VAT Validation in Node.js
Node.js VAT API integration guide: implement EU VAT number validation in a Node.js or Express application using the TaxID REST API. Includes TypeScript types, error handling for VIES downtime, and caching strategy.
Validate VAT numbers before invoice generation
Automatically validate customer VAT numbers before generating B2B invoices. Prevent invalid numbers from appearing on invoices that could be rejected by tax authorities.