Official rule text
[BR-CL-04] Invoice currency code MUST be coded using ISO code list 4217 alpha-3
Why this error occurs
The invoice currency (BT-5) must be an ISO 4217 alpha-3 code. The rule checks cbc:DocumentCurrencyCode (UBL) or ram:InvoiceCurrencyCode (CII) against the current ISO list. Typical wrong values are EURO, Euro, eur, the symbol, or a numeric code taken from an ERP currency table.
How to fix it
Write the three-letter upper-case code, e.g. EUR, USD, GBP, CHF, DKK, NOK, without surrounding whitespace. Map your ERP currency key to ISO 4217 in the export configuration. Use the same code in every currencyID attribute of the document (BR-CL-03, PEPPOL-EN16931-R051).
Example (valid)
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
What the validator checks
Checked element (context):
UBL
cbc:DocumentCurrencyCodeTest (XPath):
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNH CNY COP COU CRC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VED VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWG ', concat(' ', normalize-space(.), ' '))))CII
ram:InvoiceCurrencyCodeTest (XPath):
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNH CNY COP COU CRC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VED VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWG ', concat(' ', normalize-space(.), ' '))))
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
BR-CL-01Invoice type code is not a valid UNTDID 1001 codeBR-CL-03currencyID attribute is not an ISO 4217 codeBR-CL-05Tax currency code MUST be coded using ISO code list 4217 alpha-3BR-CL-06Value added tax point date code MUST be coded using a restriction of UNTDID 2005BR-CL-07Object identifier identification scheme identifier MUST be coded using a restriction…BR-CL-08Invoiced note subject code shall be coded using UNCL4451BR-CL-10Party identifier scheme is not an ISO 6523 ICD codeBR-CL-11Any registration identifier identification scheme identifier MUST be coded using one…
Frequently asked questions
What does BR-CL-04 mean?
BR-CL-04 is a en 16931 core rule: Invoice currency code MUST be coded using ISO code list 4217 alpha-3
Will my invoice be rejected because of BR-CL-04?
Yes. BR-CL-04 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does BR-CL-04 apply to?
Every EN 16931 invoice: XRechnung, ZUGFeRD 2.x / Factur-X (profiles EN 16931, EXTENDED, XRECHNUNG), Peppol BIS Billing 3.0, and national CIUS such as the Dutch NLCIUS or the Italian/Spanish profiles. Syntax: UBL and CII.
Source: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Catalogue generated from the official schematron on 2026-10-14.