Introducing TIN Validation: Verify Tax Numbers Across 100+ Countries

Today we're launching the Clearvo TIN Validation API — a single endpoint to validate VAT numbers and national business identifiers against official registries across 100+ countries.

The problem: invalid tax numbers are expensive

If you've ever had an e-invoice rejected because the buyer's VAT number was wrong, you know how disruptive it is. Italy's SDI rejects FatturaPA documents when the buyer's partita IVA fails format validation. Poland's KSeF refuses invoices referencing an NIP that doesn't match a registered taxpayer. Belgium's Peppol network won't route invoices to an unregistered participant.

Invalid VAT numbers don't just bounce invoices. They cascade. They invalidate VAT reclaim claims, trigger compliance queries, delay payment, and create corrected-invoice workflows that cost your finance team real time.

The root cause is almost always the same: tax numbers entered manually, without validation at the point of capture.

What we built

The TIN Validation API accepts a country code and tax number — plus an optional company name — and returns a structured validation result with registered company name, validation status, which registry responded, and the response latency.

POST /v1/tin/validate

{
  "country": "DE",
  "tax_number": "DE811428983",
  "company_name": "Acme GmbH"
}

Response:

{
  "valid": true,
  "status": "ACTIVE",
  "company_name": "ACME GMBH",
  "registry": "EU_VIES",
  "response_ms": 84,
  "cached": false
}

Simple. Deterministic. Identical structure regardless of which country you are validating.

Two-layer validation

Every request passes through two validation stages.

Format validation runs first. Each country has its own rules — character sets, length, checksum algorithms, and mandatory prefixes. A German VAT number must start with DE followed by 9 digits. A French SIRET is 14 digits. A Polish NIP must pass a weighted modulus check. We validate format before touching any external registry, which means format errors return immediately without waiting for a network round trip.

Authority validation runs second. If the number passes format checks, we query the official registry: EU VIES for all 27 EU member states, HMRC for UK VAT numbers, Brønnøysundregistrene for Norwegian organisations, the French SIREN/SIRET system, CVR for Danish companies, and the Brazilian Receita Federal for CNPJ lookups, among others.

100+ countries including EU VIES

The EU VIES system is the European Commission's VAT Information Exchange System, operated by the European Commission. VIES covers all 27 EU member states in a single lookup — you do not need separate integrations per country. We query VIES directly and translate the raw SOAP response into the same clean JSON structure we return for every country.

Beyond Europe, coverage extends to the Americas (US, Canada, Mexico, Brazil, Argentina, Chile, Colombia, Peru), Asia-Pacific (Japan, South Korea, India, China, Singapore, Australia, New Zealand, Malaysia, Indonesia, Thailand, Philippines), and Middle East & Africa (UAE, Saudi Arabia, Israel, South Africa, Kenya, Nigeria, Egypt). The same unified endpoint handles all regions.

A useful detail about VIES: it validates that a VAT number is registered and active, but it does not always return the registered company name. Some member states (notably Germany) do not share company names via VIES for data privacy reasons. When VIES returns a blank name, we tell you — the company_name field will be null rather than omitting it, so you can handle this case explicitly in your code.

Beyond VIES, we connect directly to national registries for non-EU countries:

Alternative matching

A large share of invalid VAT numbers are not wrong — they're mistyped in predictable ways. The letter O instead of the digit 0, a missing country prefix, or a leading space from a form paste. We automatically try common alternatives when a number fails its first check, and we tell you exactly what we tried.

A concrete example: if a user enters DEO11428983 (with the letter O instead of zero), the raw number fails our format check. We detect the likely substitution, normalise it to DE011428983, and try again. If the corrected number validates, the response includes both the input you sent and the normalised form we matched, along with alternatives_tried: 1. Your application can show the user a corrected suggestion rather than a blunt validation failure.

National registries vs VAT registries

It is worth being precise about terminology. VAT registries record businesses that are VAT-registered — that is, registered to charge and reclaim VAT. National business registries (like the UK Companies House or the Norwegian Brreg) record businesses that are legally incorporated, regardless of VAT status. These are not the same thing.

For e-invoicing compliance, you typically want VAT registry validation — verifying the VAT number is active. For onboarding and KYB workflows, you may want national registry validation to confirm a company legally exists even if it is below the VAT registration threshold. The Clearvo API covers both: the registry field in the response tells you which type of check was performed. For a full guide to VAT number formats, VIES, and common validation errors, see our VAT Number Validation Guide 2026.

Pricing

TIN validation is included in all Clearvo plans. Starter plans include 500 lookups per month. Business and Enterprise plans include unlimited lookups.

EU VIES lookups are free for all 27 EU member states. Non-VIES lookups against national registries count against your monthly allowance.

Full details are on the pricing page.

Get started

Documentation is at /docs. The endpoint is live now — if you have an existing API key, no changes are needed. Start sending POST /v1/tin/validate requests today.

If you don't have a Clearvo account yet, sign up at app.clearvo.io/login and you will have a production API key in minutes — no sales call required.

Questions? Email us at hello@clearvo.io — we read every message.

Ready to handle e-invoicing in 32 countries?

One API, every mandate — direct authority connections, certified Peppol Access Point, 25 invoices/month free. Sign up and get a production API key in minutes, no sales call.

Get started free →