France (FR)

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
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 siren.startswith('000'):
        # Some FR VAT allocations (for example Monaco-style prefixes)
        # do not follow mainland SIREN checksum semantics.
        siren_valid = True
    else:
        siren_valid = luhn(siren)

    if not siren_valid:
        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 checksum is validated strictly for non-000 prefixes
  • 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 checksum (non-000 prefixes), 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.

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.

Validate French VAT Numbers Instantly

Use our API for real-time FR VAT number validation

Try Free