Skip to main content

BR-CL-03 Currency attribute must use ISO 4217 alpha-3

The currencyID attribute on amount elements must be a three-letter code from ISO 4217 alpha-3.

Problem Description

ERROR

EN 16931 code-list rule (BR-CL)

Context and Significance

In UBL, every amount element (for example cbc:LineExtensionAmount, cbc:TaxAmount or cbc:PayableAmount) carries a currencyID attribute; in CII, only ram:TaxTotalAmount carries one. The rule fails when an export writes the symbol "€", the name "Euro", the numeric ISO code 978 or a lowercase "eur", because the check is case-sensitive. Example: currencyID="EUR" passes, currencyID="€" fails.

Solution

Write a valid ISO 4217 alpha-3 code in capital letters, such as EUR, USD or CHF, in every currencyID attribute. Generate the attribute from the invoice currency code (BT-5), not from display text.

Quick actions

Valid Examples

  • currencyID="EUR" on a line amount
  • currencyID="USD" on a VAT amount

Invalid Examples

  • currencyID="€" — symbol instead of code
  • currencyID="978" — numeric ISO code instead of the alphabetic code
  • currencyID="eur" — lowercase

Code Examples

Valid XML
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
Invalid XML
<cbc:LineExtensionAmount currencyID="€">100.00</cbc:LineExtensionAmount>

Affected Fields

Validation Tools