Back to the error catalogue
BR-FREXT-54BT-160
input

An item attribute is incomplete in the extended profile

In the extended profile, every item attribute (BG-32) must carry a name (BT-160) or a code (EXT-FR-FE-159), and a value (BT-161) or a quantity with its unit (EXT-FR-FE-160, EXT-FR-FE-161) — but not both.

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 · ubl

[BR-54-1]-Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) or an Item attribute Code (EXT-FR-FE-159).

cii · ubl

[BR-54-2]-Each Item attribute (BG-32) shall contain an Item attribute Value (BT-161) or an Item ValueQuantity (EXT-FR-FE-160) with @unitCode (EXT-FR-FE-161) and not both.

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-FREXT-54 An item attribute is incomplete in the extended profileBR-FREXT-54 FNFE Schematron packageBR-FREXT-54 BT-160[BR-54-1]-Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) or an Item attribute Code (EXT-FR-FE-159).BR-FREXT-54 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 profile sheet restates the base's two attribute rules — BR-FR-27 for the name, BR-FR-28 for the value — because it replaces the CEN package instead of adding to it. An attribute without a name or with two values cannot be read. It only applies to documents that declare the EXTENDED-CTC-FR profile — the profile sheet replaces the CEN package and adds its own rules for hierarchical lines.

How to fix it

Give the attribute a name or a code, and a single form of value — text or measured quantity. Factlint does not name a characteristic and does not choose its form.

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:Value>Bleu marine</ram:Value></ram:ApplicableProductCharacteristic>
AFTER (compliant)
<ram:ApplicableProductCharacteristic><ram:Description>Couleur</ram:Description><ram:Value>Bleu marine</ram:Value></ram:ApplicableProductCharacteristic>