The VAT rate carries a symbol or a value outside the list
The VAT rate — at document level (BT-119), on lines (BT-152) and on allowances or charges (BT-96, BT-103) — is written as a percentage, without symbol, and must be one of the rates in force in France.
A financial field: the expected value is computed and offered, never written into the document — the correction is the issuer's to make. Test your invoice to find out whether it is affected.
The message your validator prints
Copied verbatim from the sealed artefact: this is the exact sentence the check prints when this rule fails.
ciiBR-FR-16/BT-96 ou BT-103 : Le taux de TVA (BT-96) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
ciiBR-FR-16/BT-119 : Le taux de TVA (BT-119) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
ciiBR-FR-16/BT-152 : Le taux de TVA (BT-152) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
ubl[BR-FR-16/BT-96] : Le taux de TVA (cbc:Percent) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
ubl[BR-FR-16/BT-103] : Le taux de TVA (cbc:Percent) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
ubl[BR-FR-16/BT-119] : Le taux de TVA (cbc:Percent) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
ubl[BR-FR-16/BT-152] : Le taux de TVA (cbc:Percent) doit être exprimé en pourcentage sans symbole « % » et faire partie des valeurs autorisées. Taux fourni : " ".
Quoted from schematron-fnfe 1.4.0.03, licensed under Apache-2.0.
Common searches around this code
These phrases mirror what an integrator searches for: code, syntax, rule, business field and correction.
Test your file with this error in mind
Upload the invoice involved: the report will say whether this code appears, where it appears in the document, and whether Factlint can only report it or also fix it.
To automate this check in an ERP flow, call the validation API and link every returned code to its public page.
Why this error happens
A “20%” with its symbol is not a number for the recipient, and 19.6 is a repealed rate: in both cases the tax amount cannot be recomputed, and the invoice is rejected before any accounting check. The symbol comes from a print template; the outdated rate, from a master list never updated. The rule comes from the FNFE Schematron package, not from the European standard: an invoice perfectly compliant with EN 16931 triggers it as soon as it is judged against the French base.
How to fix it
Fix the rate in your system. The expected rate is computed and proposed in `suggested_value`, never written: a VAT rate is a financial field, and Factlint's rule 1 forbids touching it, even on request.
Severity returned by the rule set
Blocking since 1 September 2026: the current base, `fr-2026-09`, seals the FNFE 1.4.0.03 artefact in fatal mode, and it is the one the pinned engine applies by default. An invoice issued in August 2026 is judged against `fr-2026-08`, where the same rule comes out as a warning — which already rules out a “compliant” verdict. The API returns the severity of the rule set pinned for the judged invoice.
financial_field_policy
XML correction example
<ram:RateApplicablePercent>20%</ram:RateApplicablePercent>
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>