Free tool · VIES
VIES VAT number check (EU and Northern Ireland)
Check a VAT number against VIES, the European Commission’s VAT validation system. This page checks EU numbers and Northern Ireland (XI) numbers through VIES, not Great Britain (GB) numbers, which HMRC checks on its own service. Type a VAT number. The page checks its format for the member state named by the prefix, then asks VIES whether the number is registered and, where the member state discloses it, returns the registered name and address.
Type a VAT number. The format is checked in your browser first; nothing is sent until the format is right.
Live checks used: 0 of 10 on this page, at most 4 a minute. A shared, read-only demo key, so a busy moment is possible. Sign up
The same check with curl
curl "https://api.prometiam.com/functions/v1/risk-api/vat/IE6388047V" \ -H "Authorization: Bearer YOUR_API_KEY"
What VIES is
VIES, the VAT Information Exchange System, is the European Commission’s service for checking whether a VAT number is registered in an EU member state. It is a search engine, not a database: each query is relayed to the national VAT database of the country that issued the number, which answers valid or not valid and, in some countries, the trader’s name and address.
A supplier of goods to a business in another member state needs the buyer’s valid VAT number to zero-rate the sale, which is why invoicing systems and onboarding teams run the check. It covers the 27 EU member states plus XI, the prefix for Northern Ireland businesses that trade in goods. Greece files under EL, not GR; this page reads GR as EL. GB VAT numbers are out of VIES scope since Brexit, so the checker says so rather than sending them.
Find a company’s VAT number from its company number
In many countries the VAT number is the company number with a prefix, or with a prefix and a suffix. Pick the country, type the company number and the page builds the VAT number by the same rule the Prometiam API uses for vat_number; a button then checks it in VIES, through the checker above.
Type the number, for example 552032534.
The number is built from a rule, so it has the right format, but only VIES confirms that the company is registered for VAT.
- Spain: ES and the NIF of a company (a letter, seven digits and a control character). A personal NIF or NIE gives no company VAT number.
- France: FR, a two-digit key and the SIREN, with key = (12 + 3 × (SIREN mod 97)) mod 97.
- Poland: PL and the NIP. Belgium: BE and the ten-digit enterprise number. Croatia: HR and the OIB. Denmark: DK and the CVR number.
- Sweden: SE, the ten-digit organisationsnummer and 01. Finland: FI and the Y-tunnus without its hyphen. Norway: NO, the nine-digit organisasjonsnummer and MVA. Switzerland: the UID with the suffix MWST, as a format only.
The derived number has the right format; registration is confirmed only by VIES. In Norway and Finland the register can also say that a company is not VAT-registered, in which case the API returns no VAT number, and the calculator, which knows only the rule, cannot tell. Ireland, Great Britain, Slovakia and the United States have no rule, because their VAT numbers are separate registrations, and Estonia has none because the VAT number is not the registry code.
What a valid result means, and what it does not
Valid means the number is registered for VAT in its member state at the moment of the check, so it can be used for intra-EU supplies. That is the whole claim. Three things it does not say:
- It is not a solvency check. A company in liquidation can still hold a valid VAT number. VIES says nothing about whether the business can pay you; for that, read the company record and the insolvency notices.
- It does not identify who is behind the number. Compare the returned name with the name on your contract or invoice. Some member states, Germany and Spain among them, confirm validity without disclosing a name.
- It is a point in time. VIES keeps no history, so log the date of the check as your evidence, and re-check recurring customers on a schedule.
Not confirmed can mean a typo, a number that was never registered, a cancelled registration, or a number not activated for intra-EU trade. It is not proof that the company does not exist. And when VIES or a member-state register does not answer, that is not an invalid number: the number was not checked, and the answer to give is to try again.
VAT number formats by country
The format check runs in your browser, before anything is sent. It tells you a number is written the way its member state writes VAT numbers; it does not verify national check digits (the company identifier validator does that where a country has one), and only VIES can say whether the number is registered.
| Prefix | Country | After the prefix | Well-formed example |
|---|---|---|---|
| AT | Austria | the letter U and 8 digits | ATU12345678 |
| BE | Belgium | 10 digits, the first being 0 or 1 | BE0123456789 |
| BG | Bulgaria | 9 or 10 digits | BG123456789 |
| CY | Cyprus | 8 digits and 1 letter | CY12345678A |
| CZ | Czechia | 8, 9 or 10 digits | CZ12345678 |
| DE | Germany | 9 digits | DE123456789 |
| DK | Denmark | 8 digits | DK12345678 |
| EE | Estonia | 9 digits | EE123456789 |
| EL | Greece | 9 digits | EL123456789 |
| ES | Spain | 9 characters: a letter or digit, 7 digits, then a letter or digit, the first and last never both digits | ESA12345678 |
| FI | Finland | 8 digits | FI12345678 |
| FR | France | a 2-character key (digits or letters, never I or O) and the 9-digit SIREN | FR12345678901 |
| HR | Croatia | 11 digits | HR12345678901 |
| HU | Hungary | 8 digits | HU12345678 |
| IE | Ireland | 7 digits and 1 or 2 letters, or a digit, a letter, 5 digits and a letter | IE1234567A |
| IT | Italy | 11 digits | IT12345678901 |
| LT | Lithuania | 9 or 12 digits | LT123456789 |
| LU | Luxembourg | 8 digits | LU12345678 |
| LV | Latvia | 11 digits | LV12345678901 |
| MT | Malta | 8 digits | MT12345678 |
| NL | Netherlands | 9 digits, the letter B, then 2 digits | NL123456789B01 |
| PL | Poland | 10 digits | PL1234567890 |
| PT | Portugal | 9 digits | PT123456789 |
| RO | Romania | 2 to 10 digits | RO1234567890 |
| SE | Sweden | 10 digits followed by 01 | SE123456789001 |
| SI | Slovenia | 8 digits | SI12345678 |
| SK | Slovakia | 10 digits | SK1234567890 |
| XI | Northern Ireland | 9 digits, 12 digits, or GD or HA followed by 3 digits | XI123456789 |
The examples are well-formed, not registered. Spaces, dots and hyphens are ignored, as the API ignores them.
From a VAT number to the company record
In several of the countries whose registers the API serves, the national identifier sits inside the VAT number, so a number that passes VIES leads straight to the company record: legal name, legal form, status and address, and in the countries that publish them, the officers, the events and the linked insolvency notices.
| Country | Inside the VAT number | Company lookup |
|---|---|---|
| Spain (ES) | ES followed by the NIF or CIF | company_number with the NIF or CIF |
| France (FR) | FR, a 2-character key and the SIREN | siren with the last nine digits |
| United Kingdom (GB) | Not the company number, and out of VIES scope | Search by Companies House number or name |
| Ireland (IE) | Issued by Revenue; not the CRO number | Search by CRO number or name |
| Poland (PL) | PL followed by the NIP | nip with the ten digits |
| Norway (NO) | Not in VIES; the organisasjonsnummer followed by MVA | company_number with the organisasjonsnummer |
| Finland (FI) | FI followed by the Y-tunnus without its hyphen | vat with the whole VAT number |
| Sweden (SE) | SE, the organisationsnummer and 01 | vat with the whole VAT number |
| Belgium (BE) | BE followed by the enterprise number | vat with the whole VAT number |
| Croatia (HR) | HR followed by the OIB | vat with the whole VAT number |
| Denmark (DK) | DK followed by the CVR number | vat with the whole VAT number |
| Estonia (EE) | EE followed by the nine-digit KMKR number (not the registry code) | vat with the whole VAT number, where the register publishes it |
# a Finnish VAT number is the Y-tunnus without its hyphen curl "https://api.prometiam.com/functions/v1/risk-api/companies/search?vat=FI01120389&country=FI" \ -H "Authorization: Bearer YOUR_API_KEY"
What a record holds differs by country: Ireland, Poland, Finland, Sweden, Belgium, Croatia, Denmark, Estonia, Slovakia, Switzerland, Latvia, Cyprus, Romania, Lithuania, Canada, Australia, Japan, Israel, Singapore, Colombia (apart from the name of its legal representative), Taiwan, Brazil, Argentina and the United States are company-level (no officers), and Norway has register-change events only, from 14 Oct 2026 (no gazette). Sole traders are never served in Sweden or Croatia, nor enterprises of natural persons in Belgium, nor sole proprietorships and estates in Denmark, so a valid VAT number that belongs to one of them finds no company. The API docs list what each country carries.
The same check in your code
The checker calls GET /vat/{vatNumber}, which runs on any key, a trial key included. Pass the number with its prefix; the API ignores spaces and punctuation and reads GR as EL.
curl "https://api.prometiam.com/functions/v1/risk-api/vat/IE6388047V" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"data": {
"vat_number": "IE6388047V",
"country_code": "IE",
"number": "6388047V",
"is_valid": true,
"name": "GOOGLE IRELAND LIMITED",
"address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"request_date": "2026-07-07T13:47:15.528Z",
"source": "VIES — VAT Information Exchange System (European Commission)"
}
}When is_valid is false, name and address are null. A 400 means the prefix is not a VIES member (Great Britain included), and a 503 with upstream_unavailable means VIES or the member-state register did not answer: retry, and do not treat the counterparty as unverified. The full walk-through, with Python and Node, is in the VAT validation API guide.
FAQ
What is VIES, and how does the VIES system VAT check work?
VIES (VAT Information Exchange System) is the European Commission’s service for checking whether a VAT number is registered in an EU member state. A VIES check sends the number to the national VAT database of the country that issued it, which answers valid or not valid and, in some countries, the registered name and address. This page runs that check for you.
What does a valid result from a VAT number checker mean?
VIES confirms the number is registered for VAT in its member state at the moment of the check, so it can be used for intra-EU supplies. It does not say the company is solvent or in good standing, or who is behind the number, and VIES keeps no history, so keep the date of the check.
How do I find a company’s VAT number from its company number?
In Spain, France, Poland, Belgium, Croatia, Denmark, Sweden, Finland and Norway the VAT number follows a rule from the national number: ES and the NIF, FR with a two-digit key computed from the SIREN, PL and the NIP, BE and the enterprise number, HR and the OIB, DK and the CVR number, SE with the organisationsnummer and 01, FI and the Y-tunnus without its hyphen, NO with the organisasjonsnummer and MVA. The calculator on this page does it. The result has the right format, but only VIES confirms that the company is registered, and the Norwegian and Finnish registers can say a company is not VAT-registered.
Can I check a UK VAT number?
Not a Great Britain one. GB VAT numbers left VIES with Brexit, so the checker reports them as out of scope and does not send them. Northern Ireland businesses that trade in goods use the XI prefix, which VIES covers. For Great Britain, use HMRC’s own VAT number checker.
Why did the check not complete?
VIES relays each query to the national VAT database of the member state that issued the number, and those databases go offline from time to time. The API answers 503 and says the number was not checked, which is different from an invalid number. Wait a minute and try again.
Why is the name blank on a valid VAT number?
Some member states, Germany and Spain among them, confirm that a number is valid without disclosing the trader’s name and address. A valid number with no name is a normal result there.
Is the VAT number sent anywhere?
The format check runs in your browser. The live check sends the number to the Prometiam API, which asks VIES; nothing typed here is stored except in the API’s usage log. The page uses a shared demo key with limits, so a busy moment is possible. A key of your own gives you 500 credits over a 14-day trial, card required, nothing charged for 14 days.
How do I get from a VAT number to the company record?
In most of the countries whose registers the API serves, the national identifier is inside the VAT number: the NIF in a Spanish one, the SIREN in a French one, the NIP in a Polish one and the OIB in a Croatian one. Take it out and search /companies/search with it. Irish and British VAT numbers are not company numbers, so search those companies by name or registration number. Sole traders are never served in Sweden or Croatia, nor enterprises of natural persons in Belgium, nor sole proprietorships and estates in Denmark, so a valid VAT number that belongs to one of them finds no company.