BYTETOOLS

VIES VAT Validation API

Official EU VAT validation API with no key: verify any EU VAT number against member state databases and get the registered business name and address. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the VIES VAT Validation API?

The VIES REST API is the European Commission's official, free service for validating EU VAT numbers. It checks the number against the issuing member state's database and returns validity plus the registered business name and address.

This is the authoritative source for EU VAT validation — the same system tax authorities use — and it is free with no key. For B2B sellers in the EU, validating a customer's VAT number is a legal prerequisite for zero-rating cross-border invoices.

It queries member state databases in real time, which has a practical consequence: individual countries take their systems down for maintenance, and when they do, validation for that country fails temporarily rather than returning invalid. Handle unavailability distinctly from invalidity.

Quick facts

Base URL
https://ec.europa.eu/taxation_customs/vies/rest-api
Authentication
No API key required. It is an official European Commission service.
Rate limit
No published limit, but excessive automated use may be throttled.
Pricing
Free official EU service.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the VIES VAT Validation API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Validate an EU VAT number

GET https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V

curl
curl 'https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V'
JavaScript (fetch)
const res = await fetch("https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://ec.europa.eu/taxation_customs/vies/rest-api/ms/IE/vat/6388047V", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "isValid": true,
  "requestDate": "2026-08-19T21:15:11.556Z",
  "userError": "VALID",
  "name": "GOOGLE IRELAND LIMITED",
  "address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
  "requestIdentifier": "",
  "originalVatNumber": "6388047V",
  "vatNumber": "6388047V",
  "viesApproximate": {
    "name": "---",
    "street": "---",
    "postalCode": "---",
    "city": "---",
    "companyType": "---",
    "matchName": 3,
    "matchStreet": 3,
    "matchPostalCode": 3,
    "matchCity": 3,
    "matchCompanyType": 3
  }
}

Parameters

ParameterTypeRequiredDescription
ms/<country>/vat/<number>pathRequiredTwo-letter country code and VAT number without the prefix. ms/IE/vat/6388047V

Response fields

isValidboolean
Whether the VAT number is registered and valid.
requestDatestring
Timestamp of the check — keep this for audit purposes.
userErrorstring
VALID, INVALID_INPUT, MS_UNAVAILABLE and similar.
namestring
Registered business name, where the member state discloses it.
addressstring
Registered address, where disclosed.
countryCode / vatNumberstring
Echo of what was checked.

What you can build with the VIES VAT Validation API

  • Validate B2B customer VAT numbers before zero-rating an invoice
  • Verify supplier VAT registration during onboarding
  • Keep an auditable record of VAT checks with timestamps
  • Prevent VAT fraud in a cross-border e-commerce flow

Common errors and how to fix them

userError: MS_UNAVAILABLE

The member state's database is temporarily down.

Fix: This is not the same as invalid — retry later rather than rejecting the customer.

name and address empty

Some member states do not disclose business details.

Fix: Germany and Spain commonly withhold them; isValid is still authoritative.

INVALID_INPUT

The VAT number format is wrong for that country.

Fix: Strip the country prefix from the number — it goes in the path separately.

VIES VAT Validation API — frequently asked questions

Is the EU VAT validation API free?

Yes, VIES is an official free service from the European Commission with no API key required.

Why do some valid numbers return no company name?

Several member states, notably Germany and Spain, do not disclose business names through VIES. The isValid result is still authoritative.

What does MS_UNAVAILABLE mean?

The member state's own database is temporarily unreachable. This is distinct from an invalid number — retry later rather than rejecting the customer.

Do I need to keep a record of the check?

Yes, for EU B2B zero-rating you should retain evidence of validation. The requestDate field gives you a timestamp for that audit trail.

Tools that pair with this API

VIES VAT Validation is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.