EU VAT Validator — Batch VIES Check for All EU Countries
Pricing
from $10.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
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
| Parameter | Type | Default | Description |
|---|---|---|---|
vatNumbers | array | required | List of VAT numbers including country prefix: ["ES12345678A", "FR12345678901", "DE123456789"] |
maxResults | integer | 500 | Maximum 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
| Field | Type | Description |
|---|---|---|
vat_number | string | Input VAT number as provided |
country | string | 2-letter ISO country code |
is_valid | boolean | True if VIES confirms the number is active |
name | string | Registered company name (if country provides it) |
address | string | Registered address (if country provides it) |
city | string | City extracted from address |
checked_at | string | ISO 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
| Country | Code | Name returned | Address returned |
|---|---|---|---|
| Austria | AT | ✅ | ✅ |
| Belgium | BE | ✅ | ✅ |
| Bulgaria | BG | ✅ | ✅ |
| Croatia | HR | ✅ | ✅ |
| Czech Republic | CZ | ✅ | ✅ |
| Denmark | DK | ✅ | ✅ |
| Estonia | EE | ✅ | ✅ |
| Finland | FI | ✅ | ✅ |
| France | FR | ✅ | ✅ |
| Germany | DE | ❌ | ❌ (privacy law) |
| Greece | EL | ✅ | ✅ |
| Hungary | HU | ✅ | ✅ |
| Ireland | IE | ✅ | ✅ |
| Italy | IT | ✅ | ✅ |
| Latvia | LV | ✅ | ✅ |
| Lithuania | LT | ✅ | ✅ |
| Luxembourg | LU | ✅ | ✅ |
| Malta | MT | ✅ | ✅ |
| Netherlands | NL | ❌ | ❌ (privacy law) |
| Poland | PL | ✅ | ✅ |
| Portugal | PT | ✅ | ✅ |
| Romania | RO | ✅ | ✅ |
| Slovakia | SK | ✅ | ✅ |
| Slovenia | SI | ✅ | ✅ |
| Spain | ES | ✅ | ✅ |
| Sweden | SE | ✅ | ✅ |
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 ApifyClientclient = 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.