EU VAT Validator (VIES): Bulk VAT Checker avatar

EU VAT Validator (VIES): Bulk VAT Checker

Pricing

$5.00 / 1,000 vat checkeds

Go to Apify Store
EU VAT Validator (VIES): Bulk VAT Checker

EU VAT Validator (VIES): Bulk VAT Checker

Validate EU VAT numbers in bulk via the official VIES service. Returns validity, registered company name & address for all 27 states + XI. No API key, no SOAP. For finance, tax, KYB & invoicing. Works in Claude, ChatGPT & any MCP agent.

Pricing

$5.00 / 1,000 vat checkeds

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

a day ago

Last modified

Share

๐Ÿ‡ช๐Ÿ‡บ EU VAT Validator (VIES): Bulk Checks with Company Details

Overview

EU VAT Validator turns the official VIES (VAT Information Exchange System) service into a clean, structured, bulk API. Pass a list of EU VAT numbers with country prefixes, get back one record per number with validity, status, and, for most member states, the registered company name and address.

It is built for finance, compliance, tax, and KYB (Know Your Business) teams that need to verify counterparties, validate invoices for reverse charge, or clean a customer master file. The actor covers all 27 EU member states plus Northern Ireland (XI) and paces requests to stay within VIES limits. You are charged only for definitive answers.

โœ… No login required | โœ… No API key, no SOAP | โœ… All 27 EU states + XI | โœ… MCP-ready for AI agents

Features

Bulk validation of EU VAT numbers against the official VIES service. Company name and address returned for most member states. Honest result handling: unavailable and invalid_format are never charged. Structured JSON output ready for a spreadsheet, ERP, or ledger. Zero charge on empty runs, first 10 checks free for life.

How it works

VIES is the European Commission's official VAT validation service, but it ships as a one at a time web form and a fiddly SOAP endpoint. This actor wraps VIES in a bulk friendly interface, paces requests to stay within the service limits, and normalizes the response.

For each VAT ID you submit, the actor strips spaces and punctuation, splits the 2 letter country prefix from the number, calls VIES, and writes one dataset record with validity, status, and any company details returned. If a member state's registry is temporarily down, the record is marked unavailable and not charged, so retries stay cheap.

๐Ÿงพ Input configuration

{
"vatIds": [
"IE6388047V",
"FR40303265045",
"DE811569869",
"NL000099998B57"
]
}

VAT IDs must include the 2 letter country prefix. Spaces and punctuation are ignored. Greece is accepted as EL or GR.

๐Ÿ“ค Output format

{
"vat_id": "IE6388047V",
"country_code": "IE",
"vat_number": "6388047V",
"valid": true,
"status": "valid",
"name": "GOOGLE IRELAND LIMITED",
"address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"request_date": "2026-06-11+02:00",
"checked_at": "2026-06-11T13:10:00.000Z"
}

Every VAT check record contains these fields:

FieldDescription
๐Ÿ†” vat_idFull VAT ID as submitted, normalized
๐ŸŒ country_code2 letter EU country prefix (or XI, EL)
๐Ÿ”ข vat_numberNumeric portion of the VAT ID (no prefix)
โœ… validBoolean: whether the number is currently valid
๐Ÿ“ถ statusvalid, invalid, unavailable, or invalid_format
๐Ÿข nameRegistered company name (null for member states that hide it)
๐Ÿ“ addressRegistered address (null for member states that hide it)
๐Ÿ—“๏ธ request_dateDate VIES processed the request
โฑ๏ธ checked_atISO timestamp when the record was written

status legend: valid and invalid are definitive answers and count against your usage. unavailable means the member state registry was down and is never charged. invalid_format means the VAT ID could not be parsed and is never charged.

๐Ÿ’ผ Common use cases

Invoice and reverse charge compliance Verify every EU customer's VAT number before applying zero rated, reverse charge invoicing. Keep the request_date on file as evidence of good faith.

KYB and vendor onboarding Confirm a business counterparty exists and capture its registered name and address. Cheaper and faster than a paid data vendor.

Customer master cleanup Batch validate a CRM or ERP export and flag invalid or dormant VAT numbers. Route the flagged rows to your finance team.

Marketplace and platform compliance Validate seller VAT numbers at scale during onboarding, and schedule monthly re checks on your active seller base.

๐Ÿš€ Getting started

  1. Open the actor and paste your list of VAT IDs into vatIds. Include the 2 letter country prefix on every entry.
  2. Click Start. The actor paces requests to stay within VIES rate limits.
  3. Watch results stream into the dataset as each country registry responds.
  4. Export the dataset as JSON, CSV, or Excel, or pull it via the Apify API.
  5. Review the final summary record (_type: summary) for counts of valid, invalid, and unavailable results.

FAQ

Do I need an API key? No. VIES is a free, official European Commission service, and this actor wraps it in a bulk friendly interface without any account setup.

Why is name or address sometimes empty? Some member states (notably Germany) return only a valid or invalid flag, not the company details. The actor returns null for those fields. The validation is still authoritative.

What does unavailable mean? VIES depends on each member state's own tax registry. When one is temporarily down, VIES returns a service error. The actor records unavailable and does not charge you, since there is no definitive answer.

Is this legally sufficient proof of validation? VIES is the official EU validation service. Many tax authorities accept a VIES check (with date) as evidence of good faith. This actor records the request_date returned by VIES on every check.

Does it cover Northern Ireland? Yes. Use the XI prefix.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/eu-vat-vies-validator

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/eu-vat-vies-validator').call({
vatIds: ['IE6388047V', 'FR40303265045', 'DE811569869'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((i) => !i._type));

๐Ÿ› ๏ธ Complete your KYB pipeline

Pair this validator with the rest of the themineworks compliance suite:

Typical flow: company-identity-resolver locks down legal identity, eu-vat-vies-validator confirms tax registration, and b2b-leads-finder attaches the humans to contact.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.