VAT validation coverage by country

One endpoint validates 33 VAT and GST prefixes. The 27 EU member states and Northern Ireland go to VIES, the United Kingdom to HMRC, Switzerland and Liechtenstein to the Swiss BFS UID Register, Norway to the Bronnoysund Register Centre, and Australia to the Australian Business Register. The table below lists every supported country, which authority answers it, whether that answer carries a company name and address, and what steps in when VIES cannot answer at all. The national register step is included in the Pro and Business plans; the Free plan answers from the cache.

33 / Countries
5 / Validation authorities
10 / National register fallbacks

Supported countries and the authority behind each

one endpoint, five authorities, ten fallback registers

Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downKBOadaily snapshot
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downPorezna upravabdaily snapshot
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downARESlive
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downRIKcdaily snapshot
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downPRHlive
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downDGFiPdlive
Validated againstVIES
Returns namenot returnede
Returns addressnot returnede
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downVIDglive
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downANAFlive
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downFS SRlive
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downFURSdaily snapshot
Validated againstVIES
Returns namenot returnede
Returns addressnot returnede
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstVIES
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstHMRC
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstBFS UID Register
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstBFS UID Register
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstBronnoysund Register Centre
Returns namereturned
Returns addressreturned
VIES downCached result
Validated againstABR (Australian Business Register)
Returns namereturned
Returns addressreturned
VIES downCached result
returned on a valid answernot returned
  1. aBelgium: the KBO snapshot answers for companies only; sole traders fall through to the cache.
  2. bThe Croatian VAT payer list carries no names or addresses; a porezna fallback answer has company: null.
  3. cEstonian VAT groups share one VAT number; a snapshot answer names one member of the group.
  4. dFrance: VAT status comes from the DGFiP list; name and address come from the public company search and are null when that lookup fails.
  5. eGermany and Spain do not disclose company names or addresses through VIES; a valid answer for these countries has company: null.
  6. fGreece uses the EL prefix for VAT numbers (ISO code GR).
  7. gThe Latvian register publishes names but no addresses.
  8. hNorthern Ireland trades under EU VAT rules for goods and uses the XI prefix; VIES answers for it.
  9. iLiechtenstein shares Switzerland's VAT territory and is validated through the same BFS UID Register.

Name and address availability through VIES observed on 2026-09-04 with one registered sample number per state.

The daily snapshot registers

freshness, live from the mirror's own run records

Snapshot freshness

A snapshot answers only while it is under 3 days old and its source file changed within 14 days.

  • FURSFresh

    SI

    Refreshed
    10 hours ago
    Source file
    dated 2026-09-25
    Servable
    134,173 numbers
  • Porezna upravaFresh

    HR

    Refreshed
    3 hours ago
    Source file
    dated 2026-09-25
    Servable
    189,066 numbers
  • RIKFresh

    EE

    Refreshed
    6 hours ago
    Source file
    dated 2026-09-25
    Servable
    131,035 numbers
  • KBOFresh

    BE

    Refreshed
    7 hours ago
    Source file
    dated 2026-09-24
    Servable
    715,008 numbers

How the fallback works

the outage path, in order

A national register is only consulted once VIES has been retried and still cannot answer. Avatcado then works down a fixed order and stops at the first step that can answer: the register, if the country has one and it confirms the number; otherwise the most recent stored result, while it is still inside its cache window, with source_status: "unavailable" and cached: true; otherwise an older stored result, marked stale: true; and only when nothing can answer, a 503 upstream_member_state_unavailable, refunded so an outage never costs you quota.

An answer from a register is an ordinary validation response with source_status reading "fallback" and meta.source naming the register: one of anaf, ares, prh, dgfip, vid, fssr, furs, porezna, rik or kbo. It carries no consultation_number field at all, because only VIES issues those. Registers are used positive-only: a confirmed registration is served, and a miss is never turned into valid: false, because the published registers leave out entity types VIES covers.

The national registry fallback guide walks through the precedence order and the response fields in full, the national VAT registers pages cover what each register publishes and its limits, and the supported countries reference in the API docs carries the same tables in machine-readable form. The VIES status page shows which member states are unavailable right now.

Frequently asked questions

Thirty-three VAT prefixes through one endpoint. Twenty-eight of them go to VIES: the 27 EU member states plus Northern Ireland, which trades under EU VAT rules for goods and uses the XI prefix. The other five go straight to a national authority: the United Kingdom to HMRC, Switzerland and Liechtenstein to the Swiss BFS UID Register (the two share a VAT territory and one register), Norway to the Bronnoysund Register Centre, and Australia to the Australian Business Register. You never pick the source yourself. The prefix on the number decides where the request goes, the response comes back in the same shape whichever authority answered, and meta.source on that response names the one that did.
Almost, but not all. Every non-VIES source in the table returns both. Within VIES it is the member state's own choice what to disclose, and two of them disclose nothing: Germany and Spain answer whether a number is valid without ever attaching a name or an address, so a valid answer for those two carries company: null. Every other VIES country returned both a name and an address when we last probed each one with a real registered number, on the date printed under the table. Because this is a member state setting rather than a contract, treat company as optional in your code even for a country the table marks as returning it.
You still get an answer, and never a guess. Fewer than half of the EU member states publish a VAT register that can be queried outside VIES at all. Avatcado integrates directly with ten of those, which is why the countries named in the last column keep getting a live answer from their own tax authority while VIES is down, on the Pro and Business plans. Every other prefix, the Free plan for every country, and those ten whenever their register cannot confirm a number, falls back to the most recent result Avatcado itself confirmed for that number, served with source_status set to unavailable and cached set to true. When that stored result is older than the cache allows, it still comes back, marked stale set to true, so your own policy decides whether to act on it. Only when nothing has ever been confirmed for the number do you get a 503, and that request is refunded rather than counted against your monthly quota.
The table itself is generated from the same data module the API routes with, so which authority answers a country, and which register backs it up, can never drift from what actually runs in production. The name and address columns come from a dated probe: one real registered number per member state, checked against VIES on the date printed under the table, and re-checked whenever that job runs again. The snapshot freshness card above is live rather than dated: it reads the mirror's own run records, so it shows when each of the four snapshot registers was last refreshed, how old the file behind it is, and whether it currently passes the freshness gates that decide if it may answer at all.

Validate any of these countries with one call.

Register fallback on Pro and Business. Free tier: 500 validations a month, no card.