The BAR note carries a value outside the list
A note whose subject code (BT-21) is BAR declares the transaction's processing scope; its content (BT-22) must be B2B, B2BINT, B2C, OUTOFSCOPE or ARCHIVEONLY — and B2CINT in UBL.
Only the issuer holds this value: Factlint reports it and never fabricates it. 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-20/BT-21 : Lorsqu’une note a pour code sujet « BAR » (BT-21), la valeur associée (BT-22, contenu de la note) doit être l’une des suivantes : B2B, B2BINT, B2C, OUTOFSCOPE, ARCHIVEONLY. Valeur fournie : " ". Veuillez corriger la valeur ou retirer le code sujet « BAR ».
ubl[BR-FR-20/BT-21] : Lorsqu’une note a pour code sujet « BAR » (cbc:SubjectCode), la valeur associée (cbc:Note) doit être l’une des suivantes : B2B, B2BINT, B2C, OUTOFSCOPE, ARCHIVEONLY. Valeur fournie : " ". Veuillez corriger la valeur ou retirer le code sujet « BAR ».
ubl[BR-FR-20/BT-21] : Lorsqu’une note a pour code sujet « BAR » (cbc:SubjectCode), la valeur associée (cbc:Note) doit être l’une des suivantes : B2B, B2BINT, B2C, B2CINT, OUTOFSCOPE, ARCHIVEONLY. Valeur fournie : " ". Veuillez corriger la valeur ou retirer le code sujet « BAR ».
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
This scope decides what the platform does with the invoice: transmit it to a French business, report it for a foreign customer or a consumer, or only archive it. A free value — “BtoB” — triggers nothing, and several French rules can only be evaluated knowing this scope. 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
Write the scope exactly as the list spells it, or remove the BAR subject code if your flow does not carry it. Factlint does not qualify a transaction on your behalf.
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.
XML correction example
<ram:IncludedNote><ram:Content>BtoB</ram:Content><ram:SubjectCode>BAR</ram:SubjectCode></ram:IncludedNote>
<ram:IncludedNote><ram:Content>B2B</ram:Content><ram:SubjectCode>BAR</ram:SubjectCode></ram:IncludedNote>