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

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

Pricing

from $1.40 / 1,000 vat number checkeds

Go to Apify Store
EU VAT Number Validator (VIES): Bulk Check, Proof & Alerts

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

VAT validation API: check EU VAT numbers (TVA intracommunautaire, USt-IdNr) in bulk against VIES, the European Commission's registry: company name and address, official consultation proof for tax audits, alerts when a number turns invalid. Also checks EORI customs numbers.

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

2 days ago

Last modified

Share

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/…"
}

📦 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.

⭐ 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