VIES VAT Check & Validation: Bulk EU VAT Number Checker avatar

VIES VAT Check & Validation: Bulk EU VAT Number Checker

Pricing

from $1.40 / 1,000 vat number checkeds

Go to Apify Store
VIES VAT Check & Validation: Bulk EU VAT Number Checker

VIES VAT Check & Validation: Bulk EU VAT Number Checker

Check EU VAT numbers in bulk against VIES: valid/invalid, company name and address, official consultation number. $0.002 per number answered; format errors and member-state outages are free (auto-retry). Also EORI; alerts when a number turns invalid.

Pricing

from $1.40 / 1,000 vat number checkeds

Rating

0.0

(0)

Developer

EuroScrape

EuroScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Features

Limited permissions

Share

EU VAT Number Validator (VIES): Bulk Check, Proof & Alerts

For AI agents: use this Actor to validate EU VAT numbers against VIES in bulk. Minimal input: {"vatNumbers": ["FR40303265045", "IE6388047V"]}. Returns per number: valid/invalid, registered company name and address, and (with requesterVatNumber) the official consultation number.

Validate any number of EU VAT numbers against VIES, the European Commission's official registry — with the legal proof tax auditors ask for. Paste your customer list, get back valid/invalid, the registered company name and address, and an official consultation number for every check.

Bulk VAT validation with official consultation proof

  • ✅ Official source: every answer comes from VIES, the EU's own VAT Information Exchange System. No third-party database, no stale copies.
  • 🧾 Audit-proof: add your own VAT number and each check is registered by the Commission and returns a consultation number — your dated evidence that you verified the customer (required to safely zero-rate intra-EU B2B invoices).
  • 🔁 Monitoring: schedule it monthly with a monitor name and get a Telegram, Slack, Discord or webhook alert the day a customer's VAT number becomes invalid — before you issue the next invoice without VAT.
  • 🆓 Fair billing: syntax errors are caught locally for free, and when a member state's registry is down (it happens), you are not charged — the number is flagged memberStateUnavailable so you can re-run later.

✨ Why this Actor

🌍 28 registriesAll 27 EU formats plus XI (Northern Ireland). Greece accepted as GR or EL. Clear message for GB numbers (the UK left VIES).
🧹 Forgiving inputFR 40-303.265 045, lowercase, dots, dashes: everything is normalized before checking. Duplicates are checked once.
🏢 Company identityThe registered name and address, straight from the national registry (a few countries, like Germany, keep them private).
🛃 EORI numbers tooCustoms registration numbers checked against the European Commission's EORI database, in the same run (eoriNumbers): valid or not, with the name and address when the operator agreed to publish them.
🔂 Built for VIES's moodsVIES throttles and member states go offline: automatic retries with backoff, and honest null + free re-run instead of a false "invalid".
📊 Free summaryValid / invalid counts, syntax errors, per-country breakdown, and the exact list of invalid numbers.

🎯 Use cases

  • Finance & invoicing: validate every customer's VAT ID before zero-rating an intra-EU invoice, and keep the consultation number as proof.
  • Accountants: check a whole client portfolio in one run, monthly, with alerts on deregistrations.
  • E-commerce & SaaS: validate VAT IDs at scale behind your checkout or CRM (call the Actor through the Apify API).
  • Data teams: enrich a company list with registered names and addresses from official registries.

🚀 Examples

Validate a whole file of customers (CSV/TXT/JSON by URL) with official proof:

{
"vatNumbersUrl": "https://api.apify.com/v2/key-value-stores/whPh2zNCcrRkrWi0g/records/vat-list-example.txt?signature=1MiPXocmTzmClgtiOTKq4",
"requesterVatNumber": "FR40303265045"
}

Validate a pasted list:

{
"vatNumbers": ["FR40303265045", "IE 6388047V", "PL 526-025-09-95", "IT00743110157"],
"requesterVatNumber": "FR40303265045"
}

Monthly monitoring of your customer base, alert on deregistrations:

{
"vatNumbers": ["FR40303265045", "IE6388047V", "DE811569869"],
"monitorName": "customers-vat",
"slackWebhookUrl": "https://hooks.slack.com/services/…"
}

📊 Data Report · 2 Nov 2026: 49 VAT numbers printed on agency websites, checked in VIES

One run on the 49 VAT numbers (companies only, not shown here) that the Company Identity robot read the same day on the legal notices of web agencies in Munich, Lyon, Utrecht, Milan and Graz:

CountryNumbersValid in VIESName and address returned
Germany13110
Austria131313
Italy121111
France666
Netherlands544

4 of 49 numbers (8 %) printed in a legal notice are not valid: a typo, an old number or a number that was never registered. Germany confirms validity only and never returns the name or address; the other four countries do. 74 seconds for the 49 checks.

Reproduce it (then widen the list):

{
"vatNumbers": [
"FR40303265045",
"IE6388047V",
"PL5260250995"
],
"includeSummary": true
}

More reports like this one, twice a week: EuroScrape on LinkedIn.

📦 Output

Real results:

{
"type": "vat",
"input": "IE 6388047V",
"countryCode": "IE",
"vatNumber": "6388047V",
"vatNumberFormatted": "IE6388047V",
"syntaxValid": true,
"valid": true,
"companyName": "GOOGLE IRELAND LIMITED",
"companyAddress": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"consultationNumber": "WAPIAAAAaD5Jk8-i",
"memberStateUnavailable": false,
"checkedAt": "2026-10-01T20:27:12.735Z"
}

An invalid number comes back with valid: false; a malformed one is explained ("wrong format for DE", "missing country prefix…"); a GB number gets a clear message instead of a wrong answer. The free summary lists totals, the per-country breakdown and every invalid number.

💰 Pricing

EventPrice
Run start$0.003
VAT number answered by VIES$0.002
EORI number answered by the Commission's customs database$0.002
Syntax errors, member-state outages, summaryfree

1,000 customer checks ≈ $2 — with official consultation proof included. Apify subscribers pay less: −10% (Starter), −20% (Scale), −30% (Business). Set a maximum cost per run in the run options and the Actor stops cleanly when it's reached.

❓ FAQ

Why do I need the consultation number? When a tax authority questions a zero-rated intra-EU invoice, the consultation number proves you checked the customer's VAT number in VIES on that date. Without it, you may be held liable for the VAT. You get one for each check as soon as you fill in requesterVatNumber.

Why is the company name sometimes "null" for a valid number? A few member states (notably Germany) confirm validity but do not publish the name and address through VIES.

What does memberStateUnavailable mean? VIES queries each country's national registry live; registries go down for minutes or hours. The Actor retries 4 times with pauses, then reports the number as unanswered — free of charge — so you can re-run it later. It never guesses.

What is an EORI number and why check it? Every business that imports or exports goods in the EU needs an EORI number (Economic Operators Registration and Identification), issued by its member state. Carriers, forwarders and marketplaces check it before shipping. Add the numbers in eoriNumbers: each one is validated against the Commission's live database, and the registered name and address come back when the operator has consented to publication (many have not). GB numbers are issued by HMRC and are not in the EU database; Northern Ireland (XI) numbers are.

Can it check UK VAT numbers? Great Britain left VIES (Brexit); GB numbers get an explicit message. Northern Ireland numbers (XI prefix) are still in VIES and fully supported.

Can I call it from my own system? Yes — the Apify API runs the Actor and returns the dataset as JSON or CSV; works with Make, Zapier, n8n or plain HTTP.

🔌 API, AI agents and integrations

  • API: one call runs the Actor and returns the results, POST https://api.apify.com/v2/acts/euroscrape~vat-validator/run-sync-get-dataset-items (see the API tab for Python, JavaScript and cURL).
  • AI agents (MCP): add https://mcp.apify.com?tools=euroscrape/vat-validator to Claude, Cursor, VS Code or any MCP client, and the Actor becomes a tool your agent can call.
  • No-code automation: start runs and pass the results on with Apify's integrations for n8n, Make and Zapier, or with a webhook when a run ends.
  • Exports: every result set downloads as JSON, CSV, Excel or XML, and can be sent to Google Sheets.
  • Data Reports: twice a week, EuroScrape turns a run of one of its Actors into a 30-second data report (used-iPhone prices in 18 countries, electricity prices, Ryanair fares…) on LinkedIn. Follow the page to see what the data looks like.

⭐ Your feedback

If this Actor saves you time, a short review on Apify Store helps other users find it. Missing a field or an integration? Say it in your review: the most requested features are added first.

🔗 More from EuroScrape

Chosen by our paying customers

Also by EuroScrape