French VAT Number Validation
Format, pattern, SIREN checksum, and MOD 97 key algorithm for FR VAT numbers
French VAT numbers (Numéro de TVA intracommunautaire) consist of a 2-character key followed by the 9-digit SIREN company registration number.
Format vs. Active Validation
This checks format only, not if a VAT number is really registered. Use VatDB's API to verify if a number is really registered and active. VatDB checks official EU and national datasources.
Format Overview
| Property | Value |
|---|---|
| Country Code | FR |
| Format | 2 characters + 9 digits (SIREN) |
| Length | 11 characters (13 characters with FR country prefix) |
| Examples | FR27552032534 FR81775670417 FR33855200507 |
Regex Pattern
^FR[0-9A-HJ-NP-Z]{2}[0-9]{9}$
Note: The first 2 characters can be alphanumeric, except for letters O and I.
Checksum Algorithm (SIREN + MOD 97 key)
def validate_fr_vat(number):
if number.startswith('FR'):
number = number[2:]
if len(number) != 11:
return False
key = number[:2]
siren = number[2:]
if not siren.isdigit():
return False
if not luhn(siren):
return False
if key.isdigit():
siren_num = int(siren)
expected_key = (12 + 3 * (siren_num % 97)) % 97
return int(key) == expected_key
# Alphanumeric FR keys exist. Keep strict rejection only for
# confidently invalid characters (e.g. O / I). Otherwise accept
# as not confidently invalid; validate active status via VatDB.
return True
Important Notes
- SIREN is the 9-digit company registration number
- SIREN is not the same as SIRET: SIRET has 14 digits and identifies a specific establishment
- SIREN carries a Luhn check digit and is validated strictly
- Numeric FR keys are validated strictly with MOD 97
- Alphanumeric FR keys are accepted as not confidently invalid
- Letters O and I are not used to avoid confusion with 0 and 1
Frequently Asked Questions
How do I verify a French VAT number?
French VAT numbers have a 2-character key + 9-digit SIREN. First validate the SIREN Luhn check digit, then if the key is numeric apply MOD 97: key = (12 + 3 × (SIREN mod 97)) mod 97. Alphanumeric keys are treated as not confidently invalid; for active status validation, use VatDB.
What does a French VAT number look like?
A French VAT number has the format FR12345678901 or FRXX123456789 - FR followed by 2 characters (the validation key) and then the 9-digit SIREN number. Total length is 13 characters.
How many digits are in a French VAT number?
A French VAT number has 11 characters after the FR prefix: a 2-character key (can be letters or digits) plus the 9-digit SIREN company registration number.
What is the SIREN number in a French VAT number?
The SIREN (Système d'Identification du Répertoire des Entreprises) is the last 9 digits of the French VAT number. It's the official company registration number assigned by INSEE to French businesses and it carries a checksum.
Is a French SIRET number the same as a VAT number?
No. A SIRET is a 14-digit establishment identifier made from the 9-digit SIREN plus a 5-digit establishment code. A French VAT number uses the 9-digit SIREN, not the full SIRET.
Why does my French VAT number have letters in it?
The first 2 characters after FR are a validation key that can be alphanumeric. Letters O and I are excluded to avoid confusion with 0 and 1. Numeric keys are strictly checked; alphanumeric keys are accepted and active status is validated via VatDB.
How can I look up a French company by VAT number?
VatDB provides real-time VAT validation against official EU and national databases. Includes company details with each verification.
What's the difference between format validation and checking if a VAT number is active?
A valid format doesn't mean the company exists or is VAT-registered. Companies close, deregister, or merge. VatDB's API checks for current, active status.
What are some real French (FR) VAT numbers I can test with?
These French (FR) VAT numbers are real and currently registered: FR27552032534, FR81775670417, FR33855200507.