EU VAT Validator — Batch VIES Check for All EU Countries avatar

EU VAT Validator — Batch VIES Check for All EU Countries

Pricing

from $10.00 / 1,000 results

Go to Apify Store
EU VAT Validator — Batch VIES Check for All EU Countries

EU VAT Validator — Batch VIES Check for All EU Countries

Batch validate EU VAT numbers across all 27 EU member states via the official EU Commission VIES system. Returns company name and address for 16 countries. Up to 500 VAT numbers per run. No API key required.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Agora

Agora

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

EU VAT Validator — Batch VIES Check for 16 EU Countries

Validate EU VAT numbers in bulk using the official EU VIES system (ec.europa.eu/taxation_customs/vies). Returns company name and address for all supported countries. No API key required.

Data source: European Commission VIES — official EU tax authority system, real-time validation.


Why This Actor?

EU VAT validation is a legal compliance requirement for any business issuing B2B invoices across EU borders. Reverse-charging VAT incorrectly can result in penalties. This actor automates bulk validation that would otherwise require manual checks per number.

  • 16 EU countries supported: BE, BG, CZ, DE, DK, EE, EL, ES, FI, FR, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK
  • Real-time VIES: every check hits the official EU Commission API, not a cached database
  • Batch processing: validate up to 500 numbers per run
  • Structured output: valid/invalid flag + company name + address where available

Use Cases

1. Accounts Payable / Invoice Validation

Before processing a supplier invoice, validate their VAT number. Catch fraudulent VAT numbers before payments are made.

2. CRM Enrichment

Enrich your B2B customer database with validated VAT status and official company name/address. Identify invalid entries before they cause tax issues.

3. E-commerce B2B Checkout

Validate VAT numbers provided by business customers at checkout to apply correct VAT treatment (reverse charge).

4. KYC / Onboarding

Include VAT validation as part of your business customer onboarding flow to verify company identity.

5. Compliance Audit

Run quarterly audits on your full supplier/customer database to ensure all VAT numbers remain valid (companies can be deregistered).


Input Parameters

ParameterTypeDefaultDescription
vatNumbersarrayrequiredList of VAT numbers including country prefix: ["ES12345678A", "FR12345678901", "DE123456789"]
maxResultsinteger500Maximum results to return

Example: Validate 3 VAT numbers

{
"vatNumbers": [
"ES12345678A",
"FR83404833048",
"DE811780526"
]
}

Example: Bulk validation from CSV column

{
"vatNumbers": ["IT12345678901", "NL123456789B01", "BE0123456789", "PL1234567890"]
}

Output Format

FieldTypeDescription
vat_numberstringInput VAT number as provided
countrystring2-letter ISO country code
is_validbooleanTrue if VIES confirms the number is active
namestringRegistered company name (if country provides it)
addressstringRegistered address (if country provides it)
citystringCity extracted from address
checked_atstringISO timestamp of the VIES check

Sample Output

[
{
"vat_number": "ES12345678A",
"country": "ES",
"is_valid": true,
"name": "TELEFONICA SA",
"address": "GRAN VIA 28, 28013 MADRID",
"city": "MADRID",
"checked_at": "2026-07-23T10:15:32Z"
},
{
"vat_number": "FR83404833048",
"country": "FR",
"is_valid": true,
"name": "TOTAL ENERGIES SE",
"address": "2 PL JEAN MILLIER, 92400 COURBEVOIE",
"city": "COURBEVOIE",
"checked_at": "2026-07-23T10:15:33Z"
},
{
"vat_number": "XX99999999",
"country": "XX",
"is_valid": false,
"name": null,
"address": null,
"city": null,
"checked_at": "2026-07-23T10:15:34Z"
}
]

Country Coverage

CountryCodeName returnedAddress returned
AustriaAT
BelgiumBE
BulgariaBG
CroatiaHR
Czech RepublicCZ
DenmarkDK
EstoniaEE
FinlandFI
FranceFR
GermanyDE❌ (privacy law)
GreeceEL
HungaryHU
IrelandIE
ItalyIT
LatviaLV
LithuaniaLT
LuxembourgLU
MaltaMT
NetherlandsNL❌ (privacy law)
PolandPL
PortugalPT
RomaniaRO
SlovakiaSK
SloveniaSI
SpainES
SwedenSE

Pricing

$0.01 per validated number (+ $0.00005 base start cost).

100 VAT numbers = $1.00. 1,000 numbers = $10.00.


Integration Examples

n8n: Validate new B2B customers on signup

Webhook (new customer)
→ EU VAT Validator (vatNumbers: [customer.vatNumber])
→ IF is_valid = false → Reject / Flag for review
→ IF is_valid = true → Continue onboarding

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("agoradelmediterraneo/eu-vat-validator").call(
run_input={"vatNumbers": ["ES12345678A", "FR83404833048"]}
)
results = list(client.dataset(run["defaultDatasetId"]).iterate_items())

FAQ

Why does Germany/Netherlands not return company name? These countries restrict name/address lookup via VIES for privacy reasons. The valid/invalid flag is still returned.

Is VIES always available? VIES has occasional downtime per country. The actor retries automatically and marks unavailable checks clearly.

How current is the data? Real-time — each check goes directly to the EU Commission VIES system at the moment of the run.

Can I validate non-EU VAT numbers (UK, Norway)? Not with this actor. UK VAT requires HMRC API (separate actor). Norway is not EU.