Back to the error catalogue
BR-FR-08BT-23
input

France

The invoicing framework is missing or outside the allowed list

The process identifier (BT-23) must carry one of the twenty French invoicing frameworks: B1, S1, M1, B2, S2, M2, S3, B4, S4, M4, S5, S6, B7, S7, B8, S8, M8, B9, S9 or M9.

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.

cii

BR-FR-08/BT-23 : La valeur du mode de facturation (ram:ID) est absente ou n’est pas autorisée. Valeurs acceptées : B1, S1, M1, B2, S2, M2, S3, B4, S4, M4, S5, S6, B7, S7, B8, S8, M8, B9, S9, M9. Valeur actuelle : " ". Veuillez utiliser une valeur conforme à la liste des modes de facturation autorisés.

ubl

[BR-FR-08/BT-23] : La valeur du cadre de facturation (ram:ID) est absente ou n’est pas autorisée. Valeurs acceptées : B1, S1, M1, B2, S2, M2, S3, B4, S4, M4, S5, S6, B7, S7, B8, S8, M8, B9, S9, M9. Valeur actuelle : " ". Veuillez utiliser une valeur conforme à la liste des modes de facturation autorisés.

ubl

[BR-FR-15/BT-151] : Les codes 'L' et 'M' ne sont pas pertinents en France. Valeur actuelle : " ".

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.

BR-FR-08 The invoicing framework is missing or outside the allowed listBR-FR-08 French BR-FR-CTC rulesBR-FR-08 BT-23BR-FR-08/BT-23 : La valeur du mode de facturation (ram:ID) est absente ou n’est pas autorisée. Valeurs acceptées : B1, S1, M1, B2, S2, M2, S3, B4, S4, M4, S5, S6, B7, S7, B8, S8, M8, B9, S9, M9. Valeur actuelle : " ". Veuillez utiliser une valeur conforme à la liste des modes de facturation autorisés.BR-FR-08 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

The invoicing framework tells the platform who files the invoice and through which circuit. B1 is an invoice filed by the supplier, the nominal case; the nineteen other values single out the particular circuits the reform provides for. Most generators write the Peppol process identifier there — `urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` — or nothing at all: the French base recognises neither. The rule comes from the FNFE Schematron package, not from the European standard.

How to fix it

Fill in the framework that matches your flow — B1 for an ordinary invoice filed by the supplier. Factlint does not choose it: it is a statement about the invoice's circuit, and picking the wrong framework is not a mistake a tool should make 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

BEFORE (invalid)
<ram:BusinessProcessSpecifiedDocumentContextParameter><ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID></ram:BusinessProcessSpecifiedDocumentContextParameter>
AFTER (compliant)
<ram:BusinessProcessSpecifiedDocumentContextParameter><ram:ID>B1</ram:ID></ram:BusinessProcessSpecifiedDocumentContextParameter>