Skip to content
← Back to Journal
categories.tax
10 min read

VIES: How to Validate an EU Client's VAT Number

A step-by-step guide to validating an EU client's VAT number in VIES before invoicing without VAT, with a worked example and how it connects to the ROI registry and Spain's EC Sales List (Modelo 349).

By Frihet Team

TL;DR: VIES is the European Commission's official register for checking whether an EU client's VAT number is active. Without that check before you invoice, you cannot apply the VAT exemption under the reverse-charge mechanism (Article 196, EU Directive 2006/112) — even if your client is real and creditworthy. This guide walks through validation step by step, what to do when a number shows as "invalid," and how it connects to Spain's ROI registry and its EC Sales List (Modelo 349).

Share
VIES: How to Validate an EU Client's VAT Number

Key takeaways

  • VIES (VAT Information Exchange System) is the European Commission's official system for verifying intra-EU VAT numbers. It's free and public: ec.europa.eu/taxation_customs/vies.
  • To invoice an EU business client without VAT, you apply the reverse-charge mechanism (Article 196, EU Directive 2006/112, in force in 2026): you must be registered in Spain's ROI (Register of Intra-Community Operators — the Spanish tax agency's list of businesses cleared to trade VAT-free within the EU), and the client must show as valid in VIES at the moment you issue the invoice, not before.
  • A Spanish VAT number follows the format ES + tax ID number (example: ESX0000000X). Every EU country has its own pattern, and VIES recognizes all of them.
  • If a client shows as "invalid," it almost always means they haven't registered as an intra-Community operator in their own country — not that the number was typed wrong.
  • Keeping proof of every VIES check (a screenshot with date and time) is what protects you if the tax authority later asks why you invoiced without VAT.
Contents

You’re about to invoice a client in Germany and want to bill without VAT. Before you hit send, there’s a two-minute check that decides whether that invoice is legally sound or a problem waiting to happen: validating the client’s VAT number in VIES.

This guide walks through the whole process — what VIES is, how to validate step by step, what an “invalid” result means, and how it fits together with Spain’s ROI registry and its EC Sales List (Modelo 349).

What VIES is, and why you can’t skip it

VIES (VAT Information Exchange System) is the European Commission’s official system for checking whether an intra-EU VAT number is active. It queries the tax registers of all 27 EU member states in real time and returns one of two answers: valid or invalid.

It isn’t extra paperwork bolted onto invoicing. It’s the legal condition for applying the VAT exemption when you invoice a business in another EU country.

The mechanism is called the reverse charge: in a B2B intra-Community transaction, the client declares and pays the VAT in their own country, not you (Article 196, EU Directive 2006/112, in force in 2026). For this to apply, two conditions have to hold at the same time:

  1. You’re registered in the ROI (Register of Intra-Community Operators — the Spanish tax agency’s register of businesses authorized to trade VAT-free within the EU), via Modelo 036.
  2. Your client is registered as an intra-Community operator in their own country, and shows as valid in VIES at the moment you invoice.

If either condition is missing, you can’t apply the 0% rate. It doesn’t matter that the client is a real, solvent company with a corporate website. What matters fiscally is the status of their VAT number in the European register.

How to validate a VAT number in VIES, step by step

The process is free, public, and requires no registration anywhere.

  1. Go to ec.europa.eu/taxation_customs/vies (the European Commission’s official portal).
  2. Select the client’s country from the “Member State” dropdown.
  3. Enter the VAT number without the country prefix (VIES adds it automatically from the dropdown).
  4. Optionally, add your own VAT number to get a confirmation with a query reference number (recommended if you’ll need documentary proof).
  5. Click “Verify.” The system returns one of three results:
    • Valid, with the company’s name and address if that country publishes them (not every country shows this data).
    • Invalid.
    • Service temporarily unavailable for that country (this does not mean the number is invalid — see below).
  6. Save a screenshot or export the result with date and time. That’s your proof if you’re ever audited.

VAT number format by country

Every EU member state has its own VAT number pattern, always starting with a two-letter country code. Spain’s looks like this:

CountryPrefixFormatExample
SpainESES + tax ID (letter + 8 digits or similar)ESX0000000X

Every other EU country follows its own length and letter/digit pattern. Don’t guess or construct these by hand — enter the number exactly as the client sends it and let VIES confirm whether the format and the registration are correct. If the format itself is invalid, VIES flags that before it even checks the register.

What “invalid” in VIES means (and what to do about it)

An “invalid” result almost never means the number was mistyped. The most common causes:

  • The client isn’t registered as an intra-Community operator in their country (the equivalent of Spain’s ROI). They may have a national tax ID but not the intra-Community flag activated.
  • The registration is in progress and hasn’t yet propagated to the VIES database.
  • There’s a typo when entering the number (a missing digit, an extra space).
  • The national system is temporarily down — VIES depends on every member state’s database being available.

If the result is still “invalid” after retrying:

VIES and the ROI: two checks, not one

It’s easy to assume that once the client shows as valid in VIES, everything is settled. There’s a second half: you also have to be registered in Spain’s ROI, under your own VAT number, before you issue your first VAT-free invoice to an EU client.

VIES validates the client. The ROI authorizes you. They’re separate checks, and both are mandatory.

If you’re not sure where you stand with the ROI, how to register, and current deadlines, the full guide is here: Modelo 349 and ROI registration.

What happens if you invoice without VAT to an unvalidated client

This is the real risk behind skipping the VIES step.

SituationConsequence
You invoice without VAT, the client is validated in VIES at the moment of invoicing, and you keep proofExemption correctly applied. The transaction is covered.
You invoice without VAT, the client is NOT validated, or you never checkedThe transaction doesn’t meet the exemption’s requirements. The tax authority can demand the VAT you didn’t charge, plus late-payment interest and any penalty that applies.
You charge local VAT to a client who was, in fact, validatedNot penalized, but it’s still a mistake: you’re overcharging the client, and they can’t deduct it in their own country.

The responsibility to verify sits with whoever issues the invoice, not with whoever receives it. It’s your exemption, and it’s your proof to keep.

How VIES, the EC Sales List, and the quarterly VAT return fit together

VIES, the ROI, and Spain’s EC Sales List aren’t separate, disconnected chores — they’re pieces of the same workflow.

  1. VIES confirms the transaction qualifies for the exemption (a check you run before each invoice).
  2. Spain’s quarterly VAT return (Modelo 303) reflects the result: the base amount of your intra-Community sales goes in the relevant informational box, generating no VAT due.
  3. Spain’s EC Sales List (Modelo 349) reports the detail of those transactions to the Spanish Tax Agency (AEAT), so they can be cross-checked against what your client declares in their own country.

If the tax authority spots a mismatch between what you declare in the EC Sales List and what your client declares on their end, the first question they’ll ask is whether you validated in VIES before invoicing. Having the proof on file closes that conversation in one line.

Full detail on deadlines, filing frequency, and how each transaction feeds into the quarterly return is in the EC Sales List guide.

Worked example: an intra-Community invoice validated in VIES

You’re a Spain-based freelancer, you registered in the ROI months ago, and you have a new client in the Netherlands.

  1. Before invoicing, you go to VIES, select the Netherlands, and enter the VAT number the client gave you.
  2. VIES returns: valid, with a matching company name.
  3. You save the screenshot with date and time.
  4. You issue the invoice:
ItemAmount
Software development (25h × €80/h)€2,000.00
Taxable base€2,000.00
VAT (0% — reverse charge)€0.00
Total due€2,000.00

Issuer VAT number: ESX0000000X · Recipient VAT number: NL000099998B57 (Dutch format: NL + 9 digits + ‘B’ + 2 digits) Note: Not subject to Spanish VAT (place of supply is the client’s country). Reverse charge. Article 196, EU Directive 2006/112/EC.

  1. At quarter-end, this base amount enters the quarterly VAT return (informational box) and the EC Sales List (services transaction code), with the VIES proof kept on file in case it’s ever requested.

How Frihet helps with intra-Community invoicing

The usual weak point isn’t understanding the mechanism — it’s remembering to run the check every single time, on every invoice, and keeping the proof somewhere safe.

Frihet keeps your European client, their VAT number, and the rest of your invoices in one place, so their details are in front of you when you invoice and remembering to check VIES first doesn’t slip through the cracks.

If you also work with clients who pay in pounds, dollars, or any other currency, Frihet applies the exchange rate from the day of the transaction while keeping the original amount on record — see the detail in invoicing in 40 currencies from Spain.

Common mistakes when using VIES

  • Validating only once, at the start of the relationship. A VAT number’s status can change. Re-validate by period, not by client.
  • Confusing “service unavailable” with “invalid.” They’re different: one is a technical outage, the other is a real reason to withhold the exemption.
  • Not keeping proof. Without a timestamped screenshot, a validation you actually ran won’t hold up as evidence in a review.
  • Assuming a well-formatted VAT number is valid. The right format is necessary but not sufficient — VIES checks the actual registration, not just the syntax.
  • Invoicing without VAT while you yourself aren’t registered in the ROI. Even if the client validates perfectly, if you don’t have a Spanish VAT number assigned, the exemption doesn’t apply on your side.

If you’re just starting to invoice clients across Europe, build the VIES check into how you create every intra-Community invoice, not as a separate step you might forget. Two minutes per invoice, zero surprises at your next review.

Was this article helpful?

FAQ

What exactly is VIES?

VIES (VAT Information Exchange System) is the European Commission's system for checking whether an intra-EU VAT number is active, by cross-referencing the national tax registers of every member state. It's free, public, and requires no sign-up: ec.europa.eu/taxation_customs/vies.

Do I need to validate in VIES on every invoice, or just once per client?

The check needs to match the moment you issue each invoice, not the first time you worked with that client. A VAT number that's valid today can stop being valid tomorrow if the client drops off their national register. The safe habit is to keep proof of every check, or at minimum one per billing period.

What do I do if my EU client shows as "invalid" in VIES?

Don't issue the invoice without VAT. Ask the client to confirm they're registered as an intra-Community operator in their own country, and re-run the check in a few days. If you need to invoice while that's being sorted out, charge the applicable local VAT and adjust later once the client's number validates.

Does VIES validate suppliers outside the EU?

No. VIES only validates VAT numbers from the 27 EU member states. Operations with suppliers or clients outside the EU (exports, imports) follow different rules — the intra-Community reverse-charge mechanism doesn't apply.

Do I need to be registered in the ROI to search VIES?

No. Anyone can search VIES without registering first. What you do need, to invoice without VAT, is to be registered yourself in Spain's ROI (via Modelo 036) in addition to your client validating in VIES. They're two separate, independently mandatory requirements.

Compare with

Related articles

Comments

Frihet — Business without drama

Start Free