What does BR-CL-3 mean?
Every monetary amount with a currency attribute must carry the currency as an ISO 4217 code (three letters). Names or symbols are not unambiguous and therefore not allowed.
Common causes of BR-CL-3
- The attribute holds a currency name ('Euro') or symbol instead of the ISO code.
- Lower case or a typo such as 'eur', or the four-letter 'EURO'.
- An amount field carries a currency other than the invoice currency (BT-5).
How to fix BR-CL-3
- Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-5 along this XPath:
//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount/@currencyID - Apply the fix. Code the currency in the @currencyID attribute with an ISO 4217 alpha-3 code, e.g. 'EUR', 'USD', 'GBP', 'CHF', 'SEK'. Exactly three capital letters, no currency name, no symbol. The rule checks every amount field with @currencyID, such as TaxTotalAmount, GrandTotalAmount or DuePayableAmount.
- Validate again. Save the file and validate it again to check that BR-CL-3 is no longer reported.
Code the currency in the @currencyID attribute with an ISO 4217 alpha-3 code, e.g. 'EUR', 'USD', 'GBP', 'CHF', 'SEK'. Exactly three capital letters, no currency name, no symbol. The rule checks every amount field with @currencyID, such as TaxTotalAmount, GrandTotalAmount or DuePayableAmount.
//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount/@currencyIDBefore / after: the XML example
This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).
<ram:TaxTotalAmount currencyID="Euro">190.00</ram:TaxTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">190.00</ram:TaxTotalAmount>
Frequent questions about BR-CL-3
On which elements must @currencyID appear?
Is 'EURO' an acceptable value?
Related error codes
Check BR-CL-3 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.