Bulk EU VAT Number Checker — Official VIES avatar

Bulk EU VAT Number Checker — Official VIES

Pricing

$4.00 / 1,000 vat number checkeds

Go to Apify Store
Bulk EU VAT Number Checker — Official VIES

Bulk EU VAT Number Checker — Official VIES

Confirm an EU VAT number against the European Commission's own VIES service, after a per-country format check. Returns the registered name and address when the member state publishes them. Never charged when VIES is unreachable: that verdict means try again later, not invalid.

Pricing

$4.00 / 1,000 vat number checkeds

Rating

0.0

(0)

Developer

Comall Agency

Comall Agency

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

EU VAT Number Checker — Official VIES Lookup

Confirm that an EU VAT number is really registered, against the European Commission's own VIES service — the official public endpoint that tax authorities themselves rely on. No scraping, no login, no third-party API key, no account to create.

Duplicates are checked once and charged once

The same VAT number repeated in a batch is sent to VIES once. Every submitted line still gets its own output row, in your original order and spelled the way you wrote it, so the result joins straight back onto your list — the repeat carries is_duplicate: true and is not charged.

Matching is done on the number, not on the formatting: FR 552 032 534, fr552032534 and FR-552-032-534 are one number and are charged once.

This is not only about the invoice. VIES is a shared public service that starts refusing requests under load; asking it twice for an answer already in hand makes that worse for everyone — including for the next number in your own list.

A number whose VIES check did not go through is not cached. If the registry was unreachable, a repeat gets a genuine retry instead of inheriting our outage — and, as always, an unanswered check is not charged.

What it does

Each number goes through two stages:

  1. Local format check — the two-letter country code is recognised and the rest of the number matches the length and character class that member state uses. This stage is deliberately permissive: it rejects only what clearly cannot belong to any supported country, because VIES is the only real source of truth.
  2. Official VIES lookup — a direct call to the Commission's REST endpoint, which answers whether the number is currently registered for intra-EU trade, and returns the trader's name and address when that member state chooses to publish them.

Use cases

  • Invoicing and reverse charge — before you issue a zero-rated intra-EU invoice, confirm your customer's VAT number is genuinely registered. Getting this wrong is your liability, not theirs.
  • Customer onboarding — validate the VAT number a B2B customer typed into a signup form, instead of discovering the problem at audit time.
  • Periodic re-checks of a customer base — VAT registrations get cancelled. Re-run your list and see which numbers stopped being valid.
  • ERP and CRM data cleanup — bulk-check a column of VAT numbers exported from an existing system.

Input

{ "vatNumbers": ["DE811569869", "FR32350477372", "FR00000000000"] }

Each number starts with its two-letter country code. Greece uses EL (not GR) and Northern Ireland uses XI — that is VIES's own convention, not ours. Spaces, dots and hyphens are ignored.

Output (one row per VAT number)

{
"vat_id": "DE811569869",
"country_code": "DE",
"checked_at": "2026-08-28T17:00:00.000Z",
"verdict": "valid",
"valid": true,
"registered_name": null,
"registered_address": null
}

registered_name and registered_address are populated only when VIES returns them for that country. Several member states never return trader details even for a perfectly valid number — VIES marks those fields "---", which is surfaced here as null rather than as a fake empty string.

Pricing, and when you are not charged

Pay-per-event: $0.004 per VAT number checked, charged once a number receives a definitive answer — valid, invalid, invalid_format or invalid_country_code.

You are never charged for verification_unavailable. When VIES times out or is down for a member state, that is our problem to absorb, not a result you asked for. This is enforced in the code, not just promised here: the charge call is skipped on that branch.

Limitations — read this before you buy

  • Coverage is the 27 EU member states plus Northern Ireland (XI) — exactly the countries VIES itself supports. Non-EU VAT and GST numbers are out of scope.
  • VIES regularly takes an individual member state's service offline for maintenance. A verification_unavailable verdict means try again later, not that the number is invalid. Treating it as invalid would be the single most damaging mistake a VAT checker can make, so it is reported as its own distinct verdict.
  • This confirms VAT registration validity only. It says nothing about the company's trading status, solvency or creditworthiness.
  • The local format stage is not a checksum. It will not reject a well-shaped number that was never issued — VIES will.

FAQ

Why did a number that works on the VIES website come back invalid here? Check the country prefix first: EL for Greece, XI for Northern Ireland. Those two trip up most integrations.

Is there a rate limit? VIES applies its own concurrency limits and can return a busy signal under load. That surfaces here as verification_unavailable — unbilled — rather than as a wrong answer.

Part of the same family of small, single-purpose checkers on this account — each does one thing, priced per item checked: