EU VAT ID Validation (VIES)

Last updated: 2026-02-26

EU VAT ID Validation (VIES)

Last updated: 2026-02-26 | Sources: European Commission — VIES VAT number validation, EU VAT Directive 2006/112/EC

What is VIES?

VIES (VAT Information Exchange System) is the European Commission's online service for validating VAT identification numbers of businesses registered in EU member states. It confirms whether a VAT number is currently valid and registered.

VIES validation is essential for:

  • Intra-EU B2B transactions: Sellers must verify the buyer's VAT ID to apply zero-rating or reverse charge
  • Compliance: Failure to validate can result in the seller being liable for VAT that should have been reverse-charged
  • Due diligence: Proof of VIES verification serves as evidence of good faith in case of tax audits

How VIES Works

  1. Access the VIES service at ec.europa.eu/taxation_customs/vies/
  2. Enter the country code and VAT number to check
  3. VIES queries the relevant member state's national VAT database in real-time
  4. Result: Valid (with optional name/address confirmation) or Invalid

Important: VIES does not store data — it queries national databases in real-time. If a member state's database is down, validation may be temporarily unavailable.

VAT ID Formats by Country

Each EU member state has a specific format for VAT identification numbers:

Country Prefix Format Example Local term
NL NL 9 digits + B + 2 digits NL123456789B01 Btw-identificatienummer (Btw-id)
DE DE 9 digits DE123456789 Umsatzsteuer-Identifikationsnummer (USt-IdNr)
FR FR 2 check characters + 9 digits (SIREN) FR12345678901 Numéro de TVA intracommunautaire
BE BE 0 + 9 digits BE0123456789 Btw-identificatienummer / Numéro de TVA
ES ES 1 letter + 7 digits + 1 check character ESB12345678 NIF-IVA (Número de Identificación Fiscal)

Detailed Format Rules

Netherlands (NL):

  • Length: 12 characters after prefix (NL)
  • Pattern: 9 digits + "B" + 2 check digits
  • The "B" is always present; the 2 check digits are calculated using MOD 97
  • Example valid: NL123456789B01

Germany (DE):

  • Length: 9 digits after prefix (DE)
  • Pattern: exactly 9 digits, no letters
  • Issued by the Bundeszentralamt für Steuern (BZSt)
  • Note: The Steuernummer (tax number) is a different number with a different format

France (FR):

  • Length: 11 characters after prefix (FR)
  • Pattern: 2 check characters (digits or letters, except O and I) + 9-digit SIREN number
  • The check characters are calculated using MOD 97
  • The old system used 2 digits; the new system allows letters

Belgium (BE):

  • Length: 10 digits after prefix (BE)
  • Pattern: 0 + 9 digits
  • Always starts with 0
  • Same as the ondernemingsnummer (enterprise number) from the KBO/BCE
  • Check: last 2 digits are the complement to 97 of the first 8 digits

Spain (ES):

  • Length: 9 characters after prefix (ES)
  • Complex format that varies by entity type:
    • Juridical entities: letter + 7 digits + check character (letter or digit)
    • Individuals with DNI: 8 digits + letter
    • Foreigners: X/Y/Z + 7 digits + letter

Validation Best Practices

When to Validate

  • Before issuing an invoice with zero-rated intra-EU supply or reverse charge
  • Before entering into a new business relationship with an EU partner
  • Periodically for ongoing business relationships (VAT registrations can be revoked)

What to Store

Keep a record of each VIES validation:

  • Date and time of the check
  • The VAT number checked
  • The result (valid/invalid)
  • The reference number provided by VIES (if available)
  • Name/address returned (if the member state provides this)

This serves as evidence of due diligence during tax audits.

Handling Invalid Results

If VIES returns "invalid":

  1. Re-check — the member state's database might have been temporarily unavailable
  2. Contact the business partner — they may have provided an incorrect number
  3. Do not apply zero-rating or reverse charge — if the VAT number cannot be validated, charge domestic VAT instead
  4. Document your attempts — keep records of all validation attempts

VIES API for Automated Validation

VIES provides a SOAP web service for programmatic validation:

  • Endpoint: Available through the European Commission's VIES service
  • Input: Country code + VAT number
  • Output: Validity status, name (if available), address (if available), consultation number
  • Rate limits: Requests should be reasonable; excessive calls may be throttled

Important considerations:

  • VIES availability varies by member state — some databases have maintenance windows
  • Name/address confirmation is not available for all member states
  • VIES validates the format AND checks the national database — a correctly formatted number can still be invalid if not registered

Country-Specific Notes

Netherlands: The VIES-valid number (btw-identificatienummer, NL + 12 chars) is different from the omzetbelastingnummer (OB number) which was used before 2020 for sole proprietors. Always use the btw-id for VIES checks and on invoices.

Germany: A business may have a Steuernummer (for domestic tax purposes) but not yet have a USt-IdNr (for intra-EU purposes). The USt-IdNr must be specifically requested from the BZSt.

France: The first 2 characters after "FR" can be digits or letters (except O and I). Some older systems only accept 2-digit check codes.

Belgium: The VAT number is identical to the enterprise number. All Belgian VAT numbers start with BE0.

Spain: The format varies significantly between individuals (autónomos), domestic companies, and foreign entities. The check character algorithm is complex.

Recent Updates

  • 2025-11-08: ViDA package adopted — will introduce enhanced real-time VAT number validation requirements as part of digital reporting.
  • 2025-01-01: VIES updated to support the new EU-wide SME VAT exemption scheme, allowing cross-border exemption status verification.
← All articles