EU VAT Number Validator: VIES Check with Company Name
Pricing
from $3.50 / 1,000 vat numbers
EU VAT Number Validator: VIES Check with Company Name
Validate EU VAT numbers in bulk against VIES, the European Commission's official service. Returns whether each number is registered and active, the trader name and address where the country publishes them, and a consultation number you can keep as proof of the check.
Pricing
from $3.50 / 1,000 vat numbers
Rating
0.0
(0)
Developer
Michael Yousrie
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Paste a list of EU VAT numbers. Get back, for each one, whether it is registered and active, the trader's name and address where the issuing country publishes them, and a consultation number you can keep as evidence that you checked.
This queries VIES, the European Commission's official VAT Information Exchange System, which forwards each request to the member state that issued the number. A valid result here is the same answer the tax authority would give.
$5 per 1,000 numbers. Numbers that could not be checked because a country's service was down are never charged.
What you get for every number
| Field | Example | Notes |
|---|---|---|
status | valid | valid, invalid, unchecked or unparseable |
isValid | true | Registered and active right now |
reason | VIES confirmed this VAT number is registered and active | Plain English, safe to show a user |
companyName | GOOGLE IRELAND LIMITED | Where the country publishes it |
companyAddress | 3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4 | Where the country publishes it |
detailsWithheldByCountry | true | Valid number, but that country never publishes trader details |
consultationNumber | WAPIAAAAV1234 | VIES reference, your proof of the check |
countryCode, vatNumber, fullVatNumber | DE, 812871812, DE812871812 | Normalised |
requestDate | 2026-08-09T20:00:00.000Z | When VIES answered |
input | DE 812 871 812 | Exactly what you supplied, for joining back |
Four statuses, and why that matters
Most VAT tools return a boolean. A boolean cannot tell you the difference between "this number is not registered" and "Germany's tax service was offline when we asked", and treating the second as the first is how a supplier gets wrongly flagged in a compliance workflow.
| Status | Meaning | Charged |
|---|---|---|
valid | VIES confirms an active registration | Yes |
invalid | VIES has no active registration for that number, or the format is not a valid EU VAT identifier | Yes |
unchecked | The issuing country's service was unavailable, timed out, or VIES rate limited the request | No |
unparseable | No EU VAT number could be read from that input at all | No |
VIES answers HTTP 200 with isValid: false for national outages just as it does for genuinely invalid numbers, distinguishing them only by an error code buried in the response. This reads that code, retries the transient ones, and keeps the two apart.
A run also checks which member states VIES currently reports as down and says so in the log up front, so a batch of unchecked rows has a visible explanation.
Germany and Spain confirm the number but withhold the name
Several member states validate a VAT number without publishing the trader's details. Germany and Spain are the common ones. VIES returns --- in those fields.
Rather than pass that through as a literal string or silently return an empty name, this sets companyName and companyAddress to null and raises detailsWithheldByCountry: true. So an empty name means one of two clearly distinguished things, and you can tell which.
Input formatting is handled for you
Real VAT numbers arrive from invoices and spreadsheets, formatted for humans.
DE812871812,DE 812 871 812andde-812.871.812are all the same number.- Spaces are not treated as separators, because a spaced number is one number, not three. Line breaks, commas and semicolons split entries.
- Greece files VAT under
EL, not its ISO codeGR, andGRis translated automatically. - Northern Ireland kept an EU VAT prefix after Brexit;
GBandUKmap toXI. - Duplicates are removed after normalising, so the same number written two ways is checked and charged once.
- Numbers with no prefix work if you set a default country.
Common uses
Onboarding a new supplier or customer. Confirm the VAT number is real and, where published, that the registered name matches the one on the contract. consultationNumber is the record that you performed the check.
Zero-rating cross-border invoices. Charging 0% VAT on an intra-EU B2B sale depends on the customer's VAT number being valid at the time of supply. This is the check that entitlement rests on, and the consultation number is the evidence.
Cleaning a customer database. Registrations get cancelled. Re-running your existing VAT numbers finds the ones that have lapsed since you collected them.
Validating at signup. Check the number before the account is created and reject or flag it there, rather than at invoicing time.
KYB and due diligence. A valid VAT number with a matching published trader name is a cheap, official corroboration of a company's existence.
Pricing
$0.005 per number, so $5 per 1,000. One charge per number that got a real answer from VIES, valid or invalid.
Never charged for unchecked or unparseable rows, and duplicates are removed before anything runs.
Tier discounts apply automatically on paid Apify plans, down to $3.50 per 1,000.
Speed and rate limits
VIES is a free public service shared by all of Europe and it rate limits accordingly. The default of four checks at a time is deliberately conservative: it is what allows a batch of thousands to finish rather than collapse into rate-limit errors. Transient failures are retried once automatically.
Expect roughly one to two seconds per number. A list of 1,000 takes a few minutes.
Honest limits
Only EU VAT numbers, plus Northern Ireland. VIES covers the 27 member states and XI. It cannot validate UK (GB) VAT numbers post-Brexit, or Swiss, Norwegian or any other non-EU registration.
Validity is a point in time. A number valid today can be cancelled tomorrow. Keep the consultationNumber and requestDate; together they are what evidences the check for the date it was made.
Name matching is left to you. Where a country publishes the trader name, this returns it verbatim. It does not fuzzy-match it against a name you supply, because whether "Northwind Ltd" and "NORTHWIND LIMITED" are the same company is a judgment your process should make.
Frequently asked questions
How do I check if an EU VAT number is valid? Paste it in. The answer comes from VIES, the European Commission's official service, so it is the same result you would get from the VIES website, just for a whole list at once and as structured data.
Can I get the company name from a VAT number?
Yes, where the issuing member state publishes it. Most do. Germany and Spain do not, and those rows are flagged with detailsWithheldByCountry.
Does this work for UK VAT numbers?
No. Since Brexit, GB numbers are outside VIES. Northern Ireland numbers with the XI prefix are covered, and GB input is mapped to XI on the assumption that is what was meant.
What is a consultation number? A reference VIES issues for a validation request. It is the standard evidence that you verified a customer's VAT number on a given date, which matters if an intra-EU zero-rated sale is ever questioned.
Why did I get unchecked instead of a result?
A member state's own VAT service was unavailable or rate limited the request. It is not a statement about the number. Re-run those rows later, at no charge for the failed attempt.
Is there a limit on how many I can check? No hard limit here, but VIES is a shared service, so large batches run at a deliberate pace.
Do you store the VAT numbers I check? No. Results go to your dataset in your account.
Works well with
- Website Lead Extractor: pulls VAT and company registration numbers straight off company websites, which this then validates
- Domain Intelligence: registrar, DNS and email authentication for the same companies
- Bulk Email Verifier: check their email addresses against DNS
Notes
Queries the official VIES service only. Nothing is sent to the companies themselves.