Back to the error catalogue
BR-FR-27BT-160
input

France

An item attribute has neither a name nor a code

Every item attribute (BG-32) must carry a name (BT-160) or an attribute code (EXT-FR-FE-159), not empty. An attribute with neither is meaningless.

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-27/BG-32 : Le groupe Attribut d’article (BG-32) doit contenir soit un nom d’attribut d’article (BT-160 : ram:Description), soit un code d’attribut d’article (EXT-FR-FE-159 : ram:TypeCode). Aucun des deux éléments n’a été trouvé dans le contexte ApplicableProductCharacteristic. Veuillez ajouter au moins l’un des deux éléments pour respecter la structure attendue.

cii

BR-FR-27/BT-160 : Le nom d’attribut d’article (ram:Description) ne doit pas être vide. Valeur actuelle : " ". Veuillez fournir un nom d’attribut valide ou utiliser un code à la place.

cii

BR-FR-27/EXT-FR-FE-159 : Le code d’attribut d’article (ram:TypeCode) ne doit pas être vide. Valeur actuelle : " ". Veuillez fournir un code d’attribut valide ou utiliser un nom à la place.

ubl

[BR-FR-27/BG-32] : Le groupe Attribut d’article (BG-32) doit contenir soit un nom d’attribut d’article (BT-160 : cbc:Name), soit un code d’attribut d’article (EXT-FR-FE-159 : cbc:NameCode). Aucun des deux éléments n’a été trouvé dans le contexte /cac:Item/cac:AdditionalItemProperty. Veuillez ajouter au moins l’un des deux éléments pour respecter la structure attendue.

ubl

[BR-FR-27/BT-160] : Le nom d’attribut d’article (cbc:Name) ne doit pas être vide. Valeur actuelle : " ". Veuillez fournir un nom d’attribut valide ou utiliser un code à la place.

ubl

[BR-FR-27/EXT-FR-FE-159] : Le code d’attribut d’article (cbc:NameCode) ne doit pas être vide. Valeur actuelle : " ". Veuillez fournir un code d’attribut valide ou utiliser un nom à la place.

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-27 An item attribute has neither a name nor a codeBR-FR-27 French BR-FR-CTC rulesBR-FR-27 BT-160BR-FR-27/BG-32 : Le groupe Attribut d’article (BG-32) doit contenir soit un nom d’attribut d’article (BT-160 : ram:Description), soit un code d’attribut d’article (EXT-FR-FE-159 : ram:TypeCode). Aucun des deux éléments n’a été trouvé dans le contexte ApplicableProductCharacteristic. Veuillez ajouter au moins l’un des deux éléments pour respecter la structure attendue.BR-FR-27 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

An attribute is a pair: what is qualified and its value. The value alone — “500”, “red” — can be attached to nothing, and systems exporting their item characteristics leave the name empty as soon as the label is missing from the master data. 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

Give the attribute a name, or a code from the extension's list, or remove the attribute. Factlint does not name a product characteristic 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:ApplicableProductCharacteristic><ram:Description></ram:Description><ram:Value>Bleu marine</ram:Value></ram:ApplicableProductCharacteristic>
AFTER (compliant)
<ram:ApplicableProductCharacteristic><ram:Description>Couleur</ram:Description><ram:Value>Bleu marine</ram:Value></ram:ApplicableProductCharacteristic>