Skip to main content
Validate

The EU VAT Check API tells you whether any EU VAT number is a valid registration

Send a VAT number and get back valid or not, plus the registered name and address where the country shares them, from the European Commission's VIES registry. 2 credits, charged only when the number is valid.

2 credits per lookupOnly charged on a matchSame credits as every other product
1Lookup EU VAT Check API showing a fictional Irish business, Example Trading Limited, with VAT number IE1234567T answered as a valid registration, with its registered address and the time the registry replied

2

Credits per valid number

about $0.01 on Starter

0

Credits when not valid

or when a country is down

27

Countries covered

plus Northern Ireland

VIES

The EU's own registry

answered by each tax office

A VAT number comes back as the tax office's own answer in one flat record

The answer comes from the EU's own VAT registry

Every check goes through VIES, the registry run by the European Commission, and is answered by the tax authority of the country that issued the number, so the result is the official one and not a copy that has aged in a database.

  • Asked when you send the number
  • Answered by the issuing country's tax office
  • All 27 member states
  • Northern Ireland with the XI prefix

The registered name and address come back where the country shares them

Some countries share the business name and address and some share only a yes or no. You get the name and address whenever they exist, and a clear flag when a country keeps them back, so a blank is never a mystery.

  • Registered name
  • Registered address on one line
  • A flag for fields a country does not share
  • Never a placeholder dash

A country that is down is never reported as not valid

A tax office that is slow or offline says nothing about the number. The check is retried once, and if the country still does not answer you get a retry-later response at no charge, never a false not valid on a real supplier.

  • One automatic retry
  • Retry-later response, 0 credits
  • Outages are never saved as answers
  • Other countries keep working

A mistyped number is caught before it costs anything

The country prefix and the shape of the number for that country are tested before the registry is called, so a wrong length or a misplaced letter is refused with an example of the right shape, in the API, the dashboard and bulk jobs.

  • Prefix and shape tested first
  • Clear error with an example
  • Invalid CSV rows fail without a charge
  • Spaces, dots and dashes are fine

Greece, Northern Ireland and Great Britain are handled for you

Greece files under EL and GR is rewritten for you. Northern Ireland uses XI. Great Britain left the EU VAT system in 2021, so a GB number is refused with a plain explanation instead of being sent to a registry that cannot answer.

  • GR accepted, sent as EL
  • XI for Northern Ireland
  • GB refused with the reason
  • No charge for a refused number

A number that is not valid costs nothing

You are charged 2 credits only when the registry says the number is a valid registration. A number it does not list, a typo and a country that did not answer cost 0, and that holds for bulk CSV jobs as well as the API.

  • Zero credits when not valid
  • Bulk CSV with a vat_number column
  • The same credits as every other product
  • One API key for all of it

A VAT number goes in and the tax office's answer comes out

01

Send a VAT number with its prefix

POST the number, or send the two-letter country code on its own. The prefix and the shape of the number for that country are tested first, so a typo is refused with a clear error and costs nothing.

request

$ POST /api/v1/eu-vat-check

"vat_number": "IE1234567T"

> country prefix and shape valid

02

The registry asks the country's tax office

VIES passes the check to the tax authority that issued the number, and its answer comes back. A country that does not answer is retried once, and an outage is never reported as not valid.

processing

Prefix and number shape tested

VIES registry queried

Member state tax office answered

Name and address structured

03

Get the answer, flat and structured

Validity, country, registered name and address arrive in one JSON payload. A valid number bills 2 credits, and a number that is not valid, or a country that is down, bills nothing.

200 OK

registrationvalid

nameEXAMPLE TRADING LIMITED

countryIreland

valid2 credits, 0 if not valid

One endpoint checks a VAT number and works like every other 1Lookup call

Same authentication, same credit balance, and the same response envelope as every other 1Lookup product. If you have already integrated one endpoint, this one is a URL change.

POST /v1/eu-vat-check
curl -X POST https://app.1lookup.io/api/v1/eu-vat-check \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "vat_number": "IE1234567T" }'

# or send the prefix on its own
#   -d '{ "vat_number": "1234567T", "country_code": "IE" }'
200 OK
{
  "classification": {
    "found": true,
    "valid": true,
    "vat_number": "IE1234567T",
    "country_code": "IE",
    "country": "Ireland",
    "name": "EXAMPLE TRADING LIMITED",
    "address": "1 SAMPLE STREET, DUBLIN 2, CO. DUBLIN",
    "details_shared": true,
    "checked_at": "2026-10-23T09:30:00.000Z"
  },
  "insights": {
    "eu_vat_check_result": {
      "number_without_prefix": "1234567T",
      "name_shared": true,
      "address_shared": true,
      "data_source": "eu_vies"
    }
  },
  "recommendations": {
    "primary_action": "APPROVE",
    "secondary_actions": ["compare_name_with_invoice"]
  },
  "metadata": { "credits_used": 2, "cache_hit": false }
}

One call turns a VAT number into the registry's answer

One call turns a VAT number on an invoice, a checkout form or a supplier list into the registry's answer: whether it is a current registration, which country issued it, and the registered name and address where that country shares them, with the raw JSON your code receives beside it.

app.1lookup.io/api/v1Valid registration
  • VAT numberIE1234567T
  • RegistrationValid
  • CountryIreland
  • Registered nameEXAMPLE TRADING LIMITED
  • Registered address1 SAMPLE STREET, DUBLIN 2, CO. DUBLIN
  • Name and addressShared by Ireland
  • Checked at23 October 2026, 09:30 UTC
  • Next stepCompare the name with the invoice
200 OK, 2 credits
{
  "classification": {
    "found": true,
    "valid": true,
    "vat_number": "IE1234567T",
    "country": "Ireland",
    "name": "EXAMPLE TRADING LIMITED",
    "address": "1 SAMPLE STREET, DUBLIN 2, CO. DUBLIN",
    "details_shared": true,
    "checked_at": "2026-10-23T09:30:00.000Z"
  },
  "insights": {
    "eu_vat_check_result": {
      "name_shared": true,
      "address_shared": true,
      "data_source": "eu_vies"
    }
  },
  "metadata": { "credits_used": 2 }
}

Every checked VAT number returns the same fields at one flat price

A field a country does not share is marked as not shared and never left as a blank, and every check costs the same 2 credits.

It says whether the number is a valid registration

  • found
  • valid
  • vat_number
  • country_code
  • country

It returns the registered name and address where the country shares them

  • name
  • address
  • details_shared
  • name_shared
  • address_shared

It records when the registry answered and where the answer came from

  • checked_at
  • number_without_prefix
  • data_source

It suggests what your code should do next

  • primary_action
  • secondary_actions[]
  • user_message

Finance teams, online stores and marketplaces check VAT numbers before they zero-rate a sale

Finance teams zero-rating cross-border invoices

Check the customer's VAT number before you issue an invoice without VAT, and keep the answer and the time it was given with the invoice file, so the exemption can be shown later.

Online stores and SaaS checkouts selling to EU businesses

Let a buyer enter a VAT number at checkout, confirm it is a current registration in seconds, and take VAT off the order for valid business numbers only.

Procurement and supplier onboarding teams

Run a new supplier's VAT number through the registry when you create the vendor record, and compare the registered name with the name on the contract before the first payment.

Accounting and bookkeeping firms

Clean a client's customer list with a bulk job to find numbers that are no longer valid, so cross-border sales are not filed as exempt on a lapsed registration.

Marketplaces and platforms with business sellers

Check a seller's VAT number at sign-up and again each year, and flag the accounts whose registration has gone, before the next payout.

Compliance and fraud teams

Compare the registered name and address with what an applicant submitted, and send mismatches to a person for review instead of approving them automatically.

These are the questions people ask before they check their first EU VAT number

What does the EU VAT Check API return?

Send a VAT number with its two-letter country prefix and it returns whether the number is a valid VAT registration, the country it belongs to, the registered business name and address where that country shares them, and the time the registry answered. A number the registry does not list comes back as not found.

Where does the VAT data come from?

From VIES, the VAT Information Exchange System run by the European Commission. VIES does not hold the data itself: each check is passed to the tax authority of the member state that issued the number, so the answer is the one that country's tax office gives.

Why do some results have no company name or address?

Some member states share the registered name and address and some share only a yes or no. When a country shares nothing beyond validity, the result still says the number is valid and marks the name and address as not shared, instead of leaving you to wonder whether the lookup failed.

How much does an EU VAT check cost?

2 credits per check, about $0.01 on the Starter plan. You are charged only when the registry says the number is a valid registration. A number that is not valid, a mistyped number and a country whose tax service is down all cost 0 credits, in the API, the dashboard and bulk jobs.

What happens when a country's tax service is down?

The check is retried once automatically. If the country still does not answer you get a clear retry-later response and are not charged, and the answer is never saved as not valid. A country being down says nothing about the number, and other countries keep working while one is unavailable.

Can I check a number from Great Britain or Northern Ireland?

Northern Ireland businesses use the prefix XI and can be checked. Great Britain left the EU VAT system in 2021, so a GB number cannot be checked in this registry and is refused with a plain explanation at no cost. Greece files under EL, and GR is accepted and rewritten for you.

What happens when I mistype a VAT number?

It is refused before anything is charged. The country prefix and the shape of the number for that country are tested first, so a missing prefix, a wrong length or a letter in the wrong place returns a clear error with an example of the right shape, and the registry is never called.

Does a valid result prove the person in front of me owns the business?

No. A valid result says the number is a current VAT registration. It does not say who is using it. Where the country shares the registered name, compare it with the name on the invoice or the contract, and treat a mismatch as a reason to ask before you zero-rate the sale.

What does an EU VAT number look like?

It is a two-letter country prefix followed by the national number, and the shape differs by country. Germany is DE and 9 digits, France is FR and 11 characters, the Netherlands is NL, 9 digits, the letter B and 2 digits, and Sweden is SE and 12 digits. Spaces, dots and dashes are ignored, so you can paste a number the way it is printed on an invoice.

Can I check a list of VAT numbers at once?

Yes. Upload a CSV with a vat_number column and you get a row per number with its validity, country, registered name and address. A row that is not a well-formed VAT number fails without a charge. Each answer is passed on to a tax office, so a long list takes proportionally longer.

How current is the answer, and can I ask again?

A first check asks the registry when you send it, so you get the answer as the member state holds it at that moment. A repeat check of the same number by you within 7 days comes from your saved result at no charge. Send bypass_cache: true to ask the registry again.

To check one VAT number before you write any code, use the free EU VAT number checker.

Check a few of your own customers' VAT numbers and see what comes back

Start a free trial, and your credits work across every product in the catalog.