French VAT (TVA) Validator

Validator

Validate a French intracommunity VAT (TVA) number instantly. Verifies the embedded SIREN's Luhn checksum and, for numeric keys, recomputes the official key formula. Free, runs in your browser.

Enter VAT Number
Validation Result
Enter a French VAT number above to validate

Need to validate the underlying SIREN/SIRET too?

This tool validates a French VAT (TVA) number. To validate a standalone SIREN or SIRET, use our SIRET/SIREN Validator →

About this tool

About French VAT (TVA) Validator

This validator checks a French intracommunity VAT number (FR + 2-character key + 9-digit SIREN). For numeric keys, it recomputes the official (12 + 3 × (SIREN mod 97)) mod 97 formula and compares it to the key you entered. For the minority of VAT numbers with an alphanumeric key, the format is checked but the key itself is reported as not verifiable, since no public formula exists for it.

The validator first confirms the embedded 9-digit SIREN passes its own Luhn checksum — a VAT number built on an invalid SIREN cannot be genuine — then checks the key. Numeric keys are verified exactly; alphanumeric keys get a clear 'format OK, key not verifiable' result instead of a false negative.

Use this validator to check a supplier's or customer's EU VAT number before invoicing, to debug why a VAT field is failing validation in your own system, or to confirm a number you found on an invoice is at least structurally and mathematically consistent (note: this does not confirm the number is currently registered — for that, use the EU's official VIES lookup).

Instant, fully client-side validation — no VAT number is ever sent to a server. The distinction between 'wrong key' and 'key not verifiable' avoids incorrectly flagging legitimate alphanumeric-key VAT numbers as invalid.

Key Features

  • Verifies the embedded SIREN's Luhn checksum
  • Recomputes the official numeric key formula
  • Distinguishes 'invalid key' from 'alphanumeric key, not verifiable'
  • Accepts spaces and punctuation in the input
  • 100% browser-based, no data sent

FAQ

French VAT (TVA) Validator — Frequently Asked Questions

How is the key verified?

For numeric keys, the validator extracts the 9-digit SIREN and recomputes key = (12 + 3 × (SIREN mod 97)) mod 97, then compares it to the key you entered. This exact formula was independently confirmed against Danone's real, published VAT number (FR27552032534, SIREN 552032534).

What does 'alphanumeric key, not verifiable' mean?

A minority of French VAT numbers — mostly older registrations and some public-sector entities — are assigned a key containing letters, which does not follow the public numeric formula. This tool checks that the overall format and the embedded SIREN are correct, but honestly reports that it cannot verify that specific kind of key, rather than incorrectly flagging it as wrong.

Why does the validator also check the SIREN?

The VAT number's key is only meaningful if it was computed from a real, Luhn-valid SIREN. If the embedded 9 digits fail their own Luhn check, the VAT number cannot be genuine regardless of what the 2-character key says, so this tool rejects it at that stage with a specific 'invalid SIREN' error.

Can this tool confirm a VAT number is currently active?

No. This is a mathematical/structural check only. For live registration status, use the EU's official VIES (VAT Information Exchange System) lookup, which queries member states' tax databases directly — something a static, 100% client-side tool like this one cannot do.

Tips

  • Spaces and punctuation are stripped automatically before validation
  • The format is FR + 2-character key + 9-digit SIREN
  • An 'alphanumeric key' result means the format is fine but the key can't be checked — that is not necessarily an error
  • Use the SIRET/SIREN Validator to check just the business number portion

Explore more

Related Tools

Other tools that might be useful for your workflow