Home / Validate VAT

Validate EU VAT Numbers by Country

The TaxID API validates VAT numbers for all 27 EU member states through the EU VIES (VAT Information Exchange System). Every request performs two checks: local format validation against each country's regex pattern, then a live VIES query returning registration status and company name.

Cached results return in under 10ms. Active registrations are cached for 24 hours; invalid results for 1 hour. When VIES 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 }

All 27 EU member states

Select a country for the format specification, code examples in 4 languages, and country-specific FAQs.

Austria

Österreich

AT

ATU + 8 digits

Standard rate: 20%

Belgium

België / Belgique

BE

BE + 0 or 1 + 9 digits (10 digits total)

Standard rate: 21%

Bulgaria

България

BG

BG + 9 or 10 digits

Standard rate: 20%

Cyprus

Κύπρος

CY

CY + 8 digits + 1 letter

Standard rate: 19%

Czech Republic

Česká republika

CZ

CZ + 8, 9, or 10 digits

Standard rate: 21%

Germany

Deutschland

DE

DE + 9 digits

Standard rate: 19%

Denmark

Danmark

DK

DK + 8 digits

Standard rate: 25%

Estonia

Eesti

EE

EE + 9 digits

Standard rate: 22%

Greece

Ελλάδα

EL

EL + 9 digits

Standard rate: 24%

Spain

España

ES

ES + letter/digit + 7 digits + letter/digit

Standard rate: 21%

Finland

Suomi

FI

FI + 8 digits

Standard rate: 25.5%

France

France

FR

FR + 2 alphanumeric chars + 9 digits

Standard rate: 20%

Croatia

Hrvatska

HR

HR + 11 digits

Standard rate: 25%

Hungary

Magyarország

HU

HU + 8 digits

Standard rate: 27%

Ireland

Éire / Ireland

IE

IE + digit + alphanumeric + 5 digits + 1-2 letters

Standard rate: 23%

Italy

Italia

IT

IT + 11 digits

Standard rate: 22%

Lithuania

Lietuva

LT

LT + 9 digits (companies) or 12 digits (individuals)

Standard rate: 21%

Luxembourg

Lëtzebuerg

LU

LU + 8 digits

Standard rate: 17%

Latvia

Latvija

LV

LV + 11 digits

Standard rate: 21%

Malta

Malta

MT

MT + 8 digits

Standard rate: 18%

Netherlands

Nederland

NL

NL + 9 digits + B + 2 digits

Standard rate: 21%

Poland

Polska

PL

PL + 10 digits

Standard rate: 23%

Portugal

Portugal

PT

PT + 9 digits

Standard rate: 23%

Romania

România

RO

RO + 2 to 10 digits

Standard rate: 19%

Sweden

Sverige

SE

SE + 12 digits

Standard rate: 25%

Slovenia

Slovenija

SI

SI + 8 digits

Standard rate: 22%

Slovakia

Slovensko

SK

SK + 10 digits

Standard rate: 23%

How EU VAT validation works

1

Format check

Every EU country has a distinct VAT number pattern — Germany uses DE + 9 digits, France uses FR + 2 chars + 9 digits. TaxID validates the format locally before contacting VIES, saving quota on typos and invalid inputs.

2

VIES query

If the format is valid, the API forwards the request to the EU VIES SOAP service, which checks the number against the national tax authority's live registration database. This confirms the business is currently registered.

3

Cached response

Validated results are cached in Upstash Redis — active numbers for 24 hours, invalid numbers for 1 hour. Repeat lookups return in under 10ms without touching VIES, keeping your checkout fast under load.

Integration guides

Step-by-step walkthroughs for common platforms and workflows.

Stripe

Validate EU VAT numbers in Stripe Checkout

Add EU VAT validation to your Stripe checkout flow. Verify customer VAT numbers server-side before applying B2B zero-rate exemptions, ensuring you only exempt valid registered businesses.

Custom

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

EU VAT validation in Node.js

Implement EU VAT number validation in a Node.js or Express application. Includes error handling, caching strategy, and TypeScript types for the API response.

Custom

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.

All integration guides
EU VAT rates by country →API comparison →API documentation →