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

Validate EU VAT numbers in bulk against VIES, the European Commission's official registry: company name and address, official consultation proof for tax audits, syntax pre-checks, and monthly monitoring that alerts you when a customer's VAT number becomes 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

3 hours 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.

  • ✅ 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).
🔂 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 customer list with official proof:

{
"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
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.

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.

⭐ 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