Back to the error catalogue
BR-FR-29BT-18
input

France

The AFL or AVV object identifiers are duplicated or empty

Among the document's invoiced object identifiers (BT-18), the AFL and AVV schemes may each appear only once, and the identifier they carry cannot be empty.

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-29/BT-18 : Parmi les identifiants d’objets facturés (BT-18), les schémas d’identification "AFL" et "AVV" ne doivent être présents qu’une seule fois chacun. Actuellement : AFL = occurrence(s), AVV = occurrence(s). Veuillez supprimer les doublons pour respecter la règle.

cii

BR-FR-29/AFL : L’identifiant associé au schéma "AFL" (ram:IssuerAssignedID) ne doit pas être vide. Valeur actuelle : " ".

cii

BR-FR-29/AVV : L’identifiant associé au schéma "AVV" (ram:IssuerAssignedID) ne doit pas être vide. Valeur actuelle : " ".

ubl

[BR-FR-29/BT-18] : Parmi les identifiants d’objets facturés (BT-18), les schémas d’identification "AFL" et "AVV" ne doivent être présents qu’une seule fois chacun. Actuellement : AFL = occurrence(s), AVV = occurrence(s). Veuillez supprimer les doublons pour respecter la règle.

ubl

[BR-FR-29/AFL] : L’identifiant associé au schéma "AFL" (cbc:ID) ne doit pas être vide. Valeur actuelle : " ".

ubl

[BR-FR-29/AVV] : L’identifiant associé au schéma "AVV" (cbc:ID) ne doit pas être vide. 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-29 The AFL or AVV object identifiers are duplicated or emptyBR-FR-29 French BR-FR-CTC rulesBR-FR-29 BT-18BR-FR-29/BT-18 : Parmi les identifiants d’objets facturés (BT-18), les schémas d’identification "AFL" et "AVV" ne doivent être présents qu’une seule fois chacun. Actuellement : AFL = occurrence(s), AVV = occurrence(s). Veuillez supprimer les doublons pour respecter la règle.BR-FR-29 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

These two schemes tie the invoice to a single object of the French flow; two values, or an empty one, leave the recipient with no attachment — or with two. The duplicate comes from an export that writes the reference at document level and repeats it from the lines. 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

Keep a single, filled-in reference per scheme at document level. Factlint does not choose between two references.

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:IssuerAssignedID schemeID="AFL">AFF-2026-17</ram:IssuerAssignedID> … <ram:IssuerAssignedID schemeID="AFL"></ram:IssuerAssignedID>
AFTER (compliant)
<ram:IssuerAssignedID schemeID="AFL">AFF-2026-17</ram:IssuerAssignedID>