EU VAT Number Validator avatar

EU VAT Number Validator

Pricing

from $0.75 / 1,000 checks

Go to Apify Store
EU VAT Number Validator

EU VAT Number Validator

Validates EU VAT numbers in bulk through the European Commission's VIES service, with the registered name and address where the member state shares them. Add your own VAT number to get a VIES consultation number for every check.

Pricing

from $0.75 / 1,000 checks

Rating

0.0

(0)

Developer

deriverge s.r.o.

deriverge s.r.o.

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

16 days ago

Last modified

Share

Each row is one EU VAT number checked through VIES, the European Commission's VAT Information Exchange System: whether it is valid, the name and address the member state shares, the time of the check and, when you add your own VAT number, a consultation number. Enter numbers from any of the 27 member states or Northern Ireland and click Start. Some member states, Germany among them, return no name or address. It costs $1.50 per 1,000 checks on the Free plan ($0.75 on Business), and the $5 of monthly credit in Apify's Free plan covers about 3,300 checks.

What each row contains

FieldDescription
input, referenceThe number as you entered it and your own row ID, both returned unchanged.
vatNumber, countryCodeThe number with its prefix and without spaces or punctuation, such as CZ45274649, and the member state code VIES uses.
checked, validchecked is true when VIES answered; valid is that answer, or null when there was none.
status, noteThe outcome of the check, with the possible values listed in the VIES downtime section below, and a note when the outcome needs one.
name, addressName and address registered for the number, as the member state shares them through VIES, such as ČEZ, a. s..
requestDateDate and time of the check as VIES returns it.
consultationNumberVIES consultation number for the check, such as WAPIAAAAaDrrarOX, issued only when you gave your own VAT number and the member state provided one.
provenanceThe VIES endpoint that was asked, the time and whether it answered.

How to validate EU VAT numbers in bulk

  1. In VAT numbers to check, enter a JSON list of numbers with their country prefix, such as "DE811907980" or "CZ45274649". Spaces, dots and dashes are removed, Greek numbers may start with GR or EL, and Northern Ireland uses XI. An object such as {"vatNumber": "FR89380129866", "reference": "supplier-42"} keeps your own ID on the row.
  2. If some numbers come without a prefix, set Default country for numbers without a prefix, for example CZ.
  3. Put your own EU VAT number in Your own VAT number (for consultation numbers) to receive a consultation number for every check.
  4. Click Start. The Output tab lists one row per number; download it as CSV, Excel or JSON, or run the actor through the API with an input like this:
{
"vatNumbers": ["DE811907980", "CZ45274649", { "vatNumber": "FR89380129866", "reference": "supplier-42" }],
"defaultCountry": "CZ"
}

Example output

One row from a run on 29 September 2026 that used a requester VAT number, so it carries a consultation number:

{
"reference": null,
"input": "CZ45274649",
"vatNumber": "CZ45274649",
"countryCode": "CZ",
"checked": true,
"valid": true,
"name": "ČEZ, a. s.",
"address": "Duhová 1444/2 PRAHA 4 - MICHLE 140 00 PRAHA 4",
"requestDate": "2026-09-29T05:40:31.123Z",
"consultationNumber": "WAPIAAAAaDrrarOX",
"status": "valid",
"note": null,
"provenance": [
{
"source": "EU VIES",
"sourceUrl": "https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number",
"fetchedAt": "2026-09-29T05:40:31.175Z",
"ok": true
}
],
"checkedAt": "2026-09-29T05:40:12.854Z"
}

How much does it cost to validate EU VAT numbers?

Free planStarterScaleBusiness
1,000 checks$1.50$1.20$0.975$0.75

You pay only for the events in the table. There is no start fee, and compute time and proxies are included.

Checking 1,000 numbers that the member states answer for costs $1.50 on the Free plan and $0.75 on Business. Rows with member_state_unavailable, format_error or error cost nothing.

Limits

  • Numbers are checked one after another with at least 0.35 seconds between requests, because VIES refuses parallel requests to one member state. In the example run a number took from under a second to 18 seconds, depending on how busy the member state was.
  • Germany returns neither name nor address, and other member states may leave them out too.
  • A consultation number needs your own valid EU VAT number. A requester number that does not match its country's format is ignored, and the run log says so.
  • Only the 27 member states and Northern Ireland (XI) are covered. A GB, Norwegian or Swiss number comes back as format_error.

How the check handles VIES downtime

VIES passes each question to the tax administration of the member state, and those services are sometimes down or busy. Before the first number, the actor asks VIES which member states are available, and numbers from a state reported as unavailable are not sent at all. During the run, a busy or unavailable answer, an HTTP 403, 429 or 5xx from VIES, or a timeout leads to up to four more tries with growing pauses. The status field then says what happened:

  • valid or invalid: the member state answered. These are the only charged rows.
  • member_state_unavailable: VIES reported the state as down, or it still had no answer after five tries. valid stays null and note asks you to run the number again later.
  • format_error: the number does not match its country's format and was never sent to VIES.
  • error: VIES returned another error, described in note.

Re-checking customers' numbers

Set Watch name (for example customers) or save the input as a task, and schedule it. Each run compares valid, status, name and address of every number with the previous run of that name and lists the differences in the CHANGES record, so a customer whose number stopped being valid shows up without reading the whole table. The comparison is not billed.

FAQ

VIES is the European Commission's public service for checking the VAT numbers of trading partners. The actor sends one request at a time, with a pause between requests, and returns only what VIES returns about the registered business. You are responsible for how you use the answers.

Is the consultation number proof of the check?

VIES issues it for a check made together with your own VAT number. The European Commission describes it as a way to prove to a member state's tax administration that you checked a given number at a given time and got a given answer. Keep it with the invoice.

Why does VIES say a number is invalid when the company clearly trades?

VIES confirms numbers registered for intra-EU transactions. In some member states, Spain and Italy among them, a business needs a separate registration for that, so a number that works at home can still come back invalid.

Support

This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.