REST API · 27 member states

One VAT number. The whole company. One call.

Vatlas turns an intra-community VAT number into a full company record: legal name, national identifier, legal form, status and address. The official registers are imported on our side, so the answer comes back in milliseconds — not seconds.

Free up to 100 requests / month · 10,000 / month for 14 € excl. VAT · no card to get started.

~ curl vatlas.dev
$ curl "https://api.vatlas.dev/v1/vat/FR08000325175" \
    -H "Authorization: Bearer $VATLAS_KEY"

{
  "data": {
    "vatNumber": "FR08000325175",
    "countryCode": "FR",
    "nationalId": "000325175",
    "name": "THIERRY JANOYER",
    "legalForm": "1000",
    "status": "active",
    "address": {
      "line1": "51 RUE MARX DORMOY",
      "postalCode": "13004",
      "city": "MARSEILLE",
      "country": "FR"
    }
  },
  "meta": {
    "origin": "database",
    "source": "SIRENE",
    "checked": ["database"]
  }
}

27

Member states validated, plus Northern Ireland

8

National sources wired in, bulk or on-demand

~40 ms

Typical answer when the data is local

1

JSON envelope, whatever the source

Sandbox

Try the API, right here, right now

Paste a number or click one of the samples. What you see is the answer the API returns, byte for byte.

GET https://api.vatlas.dev/v1/vat/
Samples:

              

Under the hood

Fast because the data is already here

VIES is authoritative, but it is far too slow — and far too often unavailable — to sit on the critical path of a checkout. So we only ask it as a last resort.

Local database

One indexed read on (country_code, vat_number) across the national registers we bulk-import. That is the common case, and it costs a few milliseconds.

Source API

For countries with no usable bulk file — Poland, for one — the call goes out to the administration and the answer is written to our database. The second call is local.

VIES fallback

Everything else goes to the European service, then into a cache. SOAP faults are retried: an outage is never read as a "no".

One envelope only

Local database, national source or VIES: the JSON is identical. meta.checked lists the sources actually consulted, so your client never has to guess.

Offline validation

Syntax for all 27 member states, plus checksums for France, Finland and Poland. A malformed number is rejected in 2 ms and costs no quota.

Errors that mean something

"Not registered for intra-community trade" is not "company does not exist", and "source unavailable" is not a negative answer. Three distinct codes.

Coverage

The whole Union, eight sources of our own

VAT numbers from all 27 member states are validated and resolved. Eight countries are served straight from their official register, imported or queried on our side.

imported source official api vies fallback
Countries served from their national register
Country Source Strategy What it changes
Belgium BE KBO / BCE open data bulk The VAT number is the enterprise number: 1.9 M entities, keyed outright.
Czechia CZ ARES (Ministry of Finance) api ARES publishes the DIČ itself, so one call resolves the number.
Estonia EE e-Business Register (RIK) bulk The daily bulk file carries the VAT number itself.
Finland FI PRH open data bulk api The full trade register, plus the API for ceased companies.
France FR INSEE SIRENE bulk Millions of legal units in our database, addresses included.
Latvia LV Business Register + VID (CC0) bulk The VAT payers register joined with the business register.
Poland PL Ministry of Finance White List api Resolved on demand on the first request, then served from cache.
Romania RO ANAF taxpayer register api ANAF returns the identity, the seat and the VAT status by CUI.
FR France
FI Finland
EE Estonia
LV Latvia
PL Poland
DE Germany
AT Austria
BE Belgium
BG Bulgaria
CY Cyprus
HR Croatia
DK Denmark
ES Spain
EL Greece
HU Hungary
IE Ireland
IT Italy
LT Lithuania
LU Luxembourg
MT Malta
NL Netherlands
PT Portugal
CZ Czechia
RO Romania
SK Slovakia
SI Slovenia
SE Sweden
XI Northern Ireland

Use cases

Where it saves you time

B2B invoicing

Check that a customer is VAT registered before applying the reverse charge, and fill the invoice with the exact legal name from the register.

KYB & compliance

Tie a customer to their national identifier and status, with the source timestamp for your audit trail.

Onboarding

One field, one call, a pre-filled form. You drop five inputs and the typos that come with them.

CRM enrichment

Replay your account base to normalise legal names and addresses, and spot companies that are no longer active.

Ready to wire this up in ten minutes?

100 requests a month for free, no card required. 10,000 a month for 14 € excl. VAT when you outgrow it.