HomeError code lexicon › BR-54
BR-54 Field BT-160 EN 16931 core rules (BR)

Fix BR-54: Item attribute without name or value

[BR-54] Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161)

BR-54 in your own invoice? Upload the file and find every error in seconds.

What does BR-54 mean?

The rule checks every item attribute (BG-32) of an invoice line. In CII an attribute sits in the element ram:ApplicableProductCharacteristic. Each attribute must carry a name (BT-160, ram:Description) and a value (BT-161, ram:Value). An attribute such as "Colour: Black" is only complete when both parts are there. If one is missing, the recipient cannot process the attribute.

Common causes of BR-54

How to fix BR-54

  1. Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-160 along this XPath://rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic
  2. Apply the fix. Add both children to the element ram:ApplicableProductCharacteristic: ram:Description with the attribute name (e.g. "Colour") and ram:Value with the value (e.g. "Black"). Both are free text.
  3. Validate again. Save the file and validate it again to check that BR-54 is no longer reported.
Concrete fix

Add both children to the element ram:ApplicableProductCharacteristic: ram:Description with the attribute name (e.g. "Colour") and ram:Value with the value (e.g. "Black"). Both are free text.

XPath//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic

Before / after: the XML example

This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).

Wrong
<ram:SpecifiedTradeProduct>
  <ram:Name>Bürostuhl Modell B1</ram:Name>
  <ram:ApplicableProductCharacteristic>
    <ram:Description>Farbe</ram:Description>
  </ram:ApplicableProductCharacteristic>
</ram:SpecifiedTradeProduct>
Correct
<ram:SpecifiedTradeProduct>
  <ram:Name>Bürostuhl Modell B1</ram:Name>
  <ram:ApplicableProductCharacteristic>
    <ram:Description>Farbe</ram:Description>
    <ram:Value>Schwarz</ram:Value>
  </ram:ApplicableProductCharacteristic>
</ram:SpecifiedTradeProduct>

Frequent questions about BR-54

What is the difference between BT-160 and BT-161?
BT-160 is the name of the attribute (ram:Description), for example "Colour". BT-161 is the matching value (ram:Value), for example "Black". The two belong together.
Can I give several attributes per line?
Yes. Repeat ram:ApplicableProductCharacteristic for each attribute. Every repetition needs ram:Description and ram:Value again.
Are item attributes mandatory?
No. If you give no attribute, the rule does not apply. But as soon as you create one, name and value must be present.

Related error codes

Check BR-54 automatically

Instead of digging through the XML by hand you can validate your ZUGFeRD or XRechnung file online – upload the PDF or the XML and you get every error with rule ID, affected field, fix and XPath, as a readable report or as JSON through the API.

Find every error automatically instead of searching by hand

Upload your ZUGFeRD, Factur-X or XRechnung file – you get every violation back with rule ID, field, fix and XPath.

Validate online for free
Check invoice