EU VAT Number Validator (VIES) - Bulk Check
Pricing
Pay per usage
EU VAT Number Validator (VIES) - Bulk Check
Validate thousands of EU VAT numbers in bulk with the official VIES API. Free offline syntax pre-check, automatic retries when a country is down, company name and address, consultation number for audit trails. CSV, Excel, JSON.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Gufobyte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Validate hundreds or thousands of EU VAT numbers in one run against the European Commission's official VIES service. Get back a clean table with the validity status, the registered company name and address (where the member state discloses it), and, optionally, the official VIES consultation number you can keep as proof of due diligence.
Built for e-commerce teams, accountants, finance/ops, marketplaces and CRM clean-up jobs that need a reliable, auditable VAT ID check without writing code.
What does EU VAT Number Validator do?
- ✅ Bulk VAT validation of all 27 EU member states + Northern Ireland (XI) through the official VIES REST API
- 🧹 Normalises messy input:
de 811-569.869,GR094259216(mapped toEL), bare Italian partita IVA with a default country - 🆓 Free offline syntax pre-check per country (plus the Italian check digit): malformed numbers are flagged instantly and never charged
- 🔁 Automatic retries with back-off when a national VIES node is busy or down (
MS_UNAVAILABLE,MS_MAX_CONCURRENT_REQ...): numbers that still can't be verified are reported, not charged - 🧾 Consultation number (
requestIdentifier) when you provide your own VAT number - handy for intra-community supply evidence - 🧮 Deduplication so you never pay twice for the same number
- 📤 Export to CSV, Excel, JSON, XML, or pull results via API, Make, Zapier, n8n, Google Sheets
Why use it?
- Check a supplier or customer list before invoicing (reverse charge needs a valid VAT ID)
- Clean your CRM/ERP: find dead or mistyped VAT numbers in bulk
- Monthly compliance re-checks: schedule the Actor and get only the numbers that became invalid
- Onboarding/KYB in marketplaces: validate sellers' VAT IDs automatically through the API
How much does it cost?
This Actor uses pay-per-event pricing: you pay only for numbers that received a definitive answer from VIES (valid or invalid).
| Event | Price |
|---|---|
| VAT number checked (valid or invalid answer from VIES) | $3.00 per 1,000 ($0.003 each) |
| Syntax error, duplicate, or country service unavailable | free |
Example: 2,000 numbers, of which 50 are malformed and 30 can't be reached → you pay for 1,920 checks = $5.76. Set a Maximum cost per run in the run options and the Actor stops cleanly when it is reached.
How to use it
- Click Try for free.
- Paste your VAT numbers in VAT numbers (one per line), or send them via API.
- Optionally set Default country code (for bare numbers) and Your own VAT number (to get consultation numbers).
- Click Start and download the results from the Output tab.
Input
{"vatNumbers": ["IE6388047V", "DE 811 569 869", "00743110157", "FR123"],"defaultCountryCode": "IT","requesterVatNumber": "","deduplicate": true,"includeSyntaxErrors": true,"maxConcurrency": 3,"maxRetries": 4}
| Field | Description |
|---|---|
vatNumbers | List of VAT numbers, with or without country prefix (required) |
defaultCountryCode | Country applied to numbers without prefix |
requesterVatNumber | Your own EU VAT number, to receive an official consultation number |
deduplicate | Check each normalised number once (default true) |
includeSyntaxErrors | Output a free row for malformed numbers (default true) |
maxConcurrency | Parallel requests to VIES (1-10, default 3) |
maxRetries | Retries when a member state is busy/unavailable (0-8, default 4) |
Output
One row per input number. Example:
{"input": "IE6388047V","vatNumber": "IE6388047V","countryCode": "IE","nationalNumber": "6388047V","syntaxValid": true,"status": "valid","valid": true,"name": "GOOGLE IRELAND LIMITED","address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4","consultationNumber": null,"viesRequestDate": "2026-10-08T03:52:30.511Z","errorCode": null,"attempts": 1,"checkedAt": "2026-10-08T03:52:30+00:00","source": "VIES (European Commission)"}
status is one of valid, invalid, syntax_error, service_unavailable, error. A run summary (counts per status) is saved in the key-value store under SUMMARY.
The dataset has two views: Overview and Needs attention (invalid, malformed or unverifiable numbers only).
Tips
- Some countries (e.g. Germany, Spain) do not disclose name/address through VIES: you still get the validity status.
- VIES national nodes have maintenance windows. If you see
service_unavailable, re-run later with just those numbers - they were not charged. - Keep
maxConcurrencyat 3-5: VIES throttles bursts, and higher values usually cause more retries, not more speed.
Is it legal? Where does the data come from?
All data comes from the public VIES service of the European Commission, queried through its official REST API, one request per number, exactly as the public VIES web form does. No scraping, no login, no third-party databases. Names and addresses of sole traders can be personal data under GDPR: process them only for a legitimate purpose (e.g. invoicing and tax compliance).
VIES itself states that a VIES response is not a legal certificate; for disputes, contact the competent national tax authority.
Integrations and API
Run it from the Apify API, the Apify Python/JS clients, or connect it with Make, Zapier, n8n, Google Sheets, Slack and webhooks. Schedule a weekly run to re-validate your customer base.
FAQ and support
- Can I validate UK (GB) numbers? No, GB left VIES in 2021. Northern Ireland traders (
XI) are supported. - Something broke? Open an issue in the Issues tab - we usually answer within 24 hours.
Made by Gufobyte - small, honest data tools.