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

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%

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

GB + 9 digits

Rate: 20%

Australia

ABN

AU

11 digits

Rate: 10%

Norway

MVA-nummer

NO

NO + 9 digits + MVA

Rate: 25%

Switzerland

MWST/TVA/IVA

CH

CHE- + 3 digits + . + 3 digits + . + 3 digits

Rate: 8.1%

Canada

GST/HST Registration Number

CA

9 digits + RT + 4 digits

Rate: 5%

India

GSTIN

IN

2-digit state code + 10-digit PAN + entity number + Z + check digit

Rate: 18%

Singapore

GST Registration Number

SG

9 digits + 1 letter

Rate: 9%

New Zealand

GST Number

NZ

8 or 9 digits

Rate: 15%

South Africa

VAT Registration Number

ZA

4 + 9 digits (always starts with 4)

Rate: 15%

United Arab Emirates

TRN

AE

15 digits

Rate: 5%

Mexico

RFC

MX

4 letters + 6-digit date + 3-character homoclave

Rate: 16%

Japan

インボイス登録番号

JP

T + 13-digit corporate number

Rate: 10%

Iceland

VSK-númer

IS

IS + 5 or 6 digits

Rate: 24%

Malaysia

Sales and Service Tax

MY

B + 10 digits

Rate: 8%

South Korea

사업자등록번호

KR

3 digits + - + 2 digits + - + 5 digits

Rate: 10%

Hong Kong

Business Registration Number

HK

8 digits

Rate: 0% (no VAT)

Brazil

CNPJ

BR

14 digits (often displayed as XX.XXX.XXX/XXXX-XX)

Rate: 17%

Turkey

VKN

TR

10 digits

Rate: 20%

Thailand

เลขประจำตัวผู้เสียภาษี

TH

13 digits

Rate: 7%

Indonesia

NPWP

ID

15 digits (old format: XX.XXX.XXX.X-XXX.XXX)

Rate: 11%

How tax ID validation works

1

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.

2

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.

3

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

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.

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

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.

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
VAT rates by country →API comparison →API documentation →