EU VAT Number Checker (VIES)
Pricing
from $1.50 / 1,000 vat number checkeds
EU VAT Number Checker (VIES)
[$1.50 / 1K] Bulk EU VAT number validation against the official VIES service for all member states and Northern Ireland. Returns validity, the registered name and address, the check date and, with your own VAT number, the consultation number tax offices accept as proof. Typos are free.
Pricing
from $1.50 / 1,000 vat number checkeds
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
EU VAT Number Checker
What does EU VAT Number Checker do?
EU VAT Number Checker validates lists of EU VAT numbers through VIES, the European Commission's official VAT Information Exchange System. Paste a list of numbers from any member state (Northern Ireland included) and for each one you get back whether it is valid for intra-EU trade, the name and address the member state has on file, the exact date of the check, and, if you supply your own VAT number, the consultation number that tax authorities accept as proof that you verified your customer.
Why the consultation number matters
Zero-rating an intra-EU supply requires a valid customer VAT number, and when the number later turns out to be invalid, the burden of proof is on you. A screenshot of the VIES website is weak evidence. A consultation number is the official one: VIES stores the check under that identifier, with the date, your VAT number and the customer's, and any tax office in the EU can look it up. This actor requests one for every row when requesterVatNumber is set.
Honest about outages
VIES is a gateway to 28 national databases, and on a given day one or two of them are down. Other tools return valid: false in that case and let you draw the wrong conclusion. This actor asks VIES for the member-state status before it starts, reports rows from an unavailable state as member_state_unavailable, and does not charge for them. The same applies to numbers that fail their country's format: they are reported as typos, never sent to VIES, and never charged.
| Status | Meaning | Charged |
|---|---|---|
valid | The member state confirms the number | yes |
invalid | The member state does not know the number, or it is not active | yes |
format_error | The number does not match the country format; nothing was sent | no |
member_state_unavailable | The national database was down; run again later | no |
error | VIES returned an unexpected answer; details in note | no |
Input
{"vatNumbers": ["DE811907980","CZ 452 746 49",{ "vatNumber": "FR89380129866", "reference": "customer-1187" }],"requesterVatNumber": "CZ19456361","defaultCountry": "","watchKey": "customers"}
Strings and objects can be mixed freely. Spaces, dots and dashes are ignored. Greece can be written as GR or EL.
Output
{"input": "DE811907980","vatNumber": "DE811907980","countryCode": "DE","checked": true,"valid": true,"name": null,"address": null,"requestDate": "2026-09-02+02:00","consultationNumber": "WAPIAAAAZbMPDlCP","status": "valid","note": null}
Germany, like a few other member states, confirms validity without returning the name and address. That is the member state's rule, and the row says exactly what VIES said, no more.
Watch a list for changes
Customer VAT numbers get cancelled quietly, and the invoice you issue after that is the one the auditor picks. Give the run a watch name (or save it as a task and schedule it) and every later run compares its results with the previous one: a number that turned invalid, a changed registered name. The differences are stored in the CHANGES record of the run. The comparison itself is free.
Pricing
| Event | Price |
|---|---|
| VAT number checked (valid or invalid answer from VIES) | $0.003 |
| Format error, member state unavailable, or VIES error | free |
No start fee. A run that verifies nothing costs nothing.
Frequently asked questions
Is the consultation number really proof? Yes. It is issued by VIES itself when the check is made with the requester's VAT number, and it is the mechanism the European Commission provides for exactly this purpose. Keep it with the invoice.
Why does VIES say my customer is invalid when they are clearly trading? VIES only confirms numbers registered for intra-EU transactions. Some member states, Spain and Italy among them, require a separate registration for that. The customer may need to register before you can zero-rate a supply to them.
How fast is it? VIES limits concurrent requests per member state, so numbers are checked one after another with a short gap. A thousand numbers take roughly ten minutes.
Where does the data come from? The European Commission VIES REST service, nothing else. Every row carries the URL, the timestamp and the exact answer.
This checker shares its engine with our country company checkers for the Czech Republic and Slovakia, Poland, France, Romania, Estonia, Lithuania, Latvia and Bulgaria, which combine VIES with the national business, tax and insolvency registers.