France VAT API — Validate France VAT Numbers in Real Time
REST JSON endpoint for verifying Taxe sur la valeur ajoutée (TVA) numbers against the official EU VIES register, with national registry fallback where available and a VIES consultation number on every successful check.
Why a France-aware VAT API
In France, VAT is known as Taxe sur la valeur ajoutée (TVA) and the current standard rate is 20%. Every France VAT number starts with the prefix FR and follows a fixed structure issued by the France tax authority. A generic VAT validator that ignores country-specific quirks will accept malformed input, miss the country's format rules, and fail to surface the local registry identifier that accountants and auditors actually need.
The vatnode API normalises TVA input, runs the official VIES check, falls back to the France national company registry when VIES is unavailable, and returns a single JSON shape with the consultation number, company data where published, and the current France VAT rates inline.
France VAT number format
FR + 2 alphanumeric + 9 digits^FR[A-HJ-NP-Z0-9]{2}\d{9}$Real France VAT numbers you can validate right now:
- FR81775670417 — LVMH Moët Hennessy Louis Vuitton SE
- FR59542051180 — TotalEnergies SE
- FR76662042449 — BNP Paribas SA
Validating France VAT numbers — code examples
All three examples validate the same France VAT number FR81775670417.
curl https://api.vatnode.dev/v1/vat/FR81775670417 \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch(
'https://api.vatnode.dev/v1/vat/FR81775670417',
{ headers: { Authorization: `Bearer ${process.env.VATNODE_API_KEY}` } }
)
const data = await res.json()
console.log(data.valid, data.companyName, data.consultationNumber)import os, httpx
r = httpx.get(
"https://api.vatnode.dev/v1/vat/FR81775670417",
headers={"Authorization": f"Bearer {os.environ['VATNODE_API_KEY']}"},
)
data = r.json()
print(data["valid"], data["companyName"], data["consultationNumber"])What you get back
A successful response for a valid France VAT number looks like this:
{
"valid": true,
"vatId": "FR81775670417",
"countryCode": "FR",
"countryName": "France",
"companyName": "LVMH Moët Hennessy Louis Vuitton SE",
"consultationNumber": "WAPIAAAAXk7ZpY3o",
"source": "VIES",
"countryVat": {
"currency": "EUR",
"standardRate": 20,
"reducedRates": [0.9,1.05,5.5,8.5,10,13],
"superReducedRate": 2.1,
"parkingRate": null
},
"verifiedAt": "2026-05-19T08:14:22Z"
}When the number is not registered, valid is false and company fields are null. The consultationNumber is the EU VIES requestIdentifier — the documented audit reference for reverse-charge "reasonable care" evidence.
France VAT rates
vatnode returns the current France TVA rates inline with every successful response. Today's rates (standard 20%, reduced 0.9%, 1.05%, 5.5%, 8.5%, 10%, 13%, super-reduced 2.1%) are sourced from the European Commission TEDB feed and refreshed daily.
| Rate type | Value |
|---|---|
| Standard | 20% |
| Reduced (1) | 0.9% |
| Reduced (2) | 1.05% |
| Reduced (3) | 5.5% |
| Reduced (4) | 8.5% |
| Reduced (5) | 10% |
| Reduced (6) | 13% |
| Super-reduced | 2.1% |
VIES vs national fallback for France
VIES is the primary data source for France validation — it is the authoritative EU register and the only source that produces a consultation number. When VIES returns a transient error (timeout, MS_UNAVAILABLE, SERVICE_UNAVAILABLE), vatnode automatically queries the France national company registry as a fallback so your checkout or invoicing pipeline keeps working.
The response includes a source field that tells you which system answered — VIES for the EU register, or the France national-registry source code when the fallback ran.
France is one of the EU countries where vatnode keeps validating during EU VIES outages via a direct national registry adapter. See coverage matrix for the full list.
France VAT API — FAQ
Is the France VAT number the same as the company registration number?
No. The France TVA number is issued by the tax authority for VAT purposes; the national registry identifier is a separate ID issued by the company registry. vatnode returns both fields (registryCode + registryCodeName) for France when the data is available.
How fast is France VAT validation through vatnode?
Cached responses return in single-digit milliseconds. Live VIES lookups for France typically complete in under one second; a 15-minute Redis cache is applied to identical VAT IDs.
Does the API work for France sole traders and small businesses?
Yes. If a France sole trader or small business is registered for TVA and listed in VIES, vatnode validates the number and returns the same response shape as for corporate entities. The valid field is true regardless of legal form.
What happens if EU VIES is down for France?
vatnode falls back to the France national registry adapter when VIES returns a transient error (timeout, MS_UNAVAILABLE). Validation keeps working from the national source; the response includes a source field so you can tell which system answered.
What is the consultation number returned for France checks?
The consultationNumber is the VIES requestIdentifier — a unique reference issued by the EU VIES service that proves the check was performed against the official EU register on a specific date. It is the EU's documented mechanism for "reasonable care" evidence under the reverse-charge rules and is returned on every successful VIES validation, including France.
See also
Start validating France VAT numbers
100 validations per month on the free plan, no credit card required. REST JSON over HTTPS, VIES consultation number on every check, France national registry fallback, EU-hosted by default.