Oficjalna treść reguły
[BR-CL-03] currencyID MUST be coded using ISO code list 4217 alpha-3
Tekst normatywny jest w języku angielskim i cytowany bez zmian.
Dlaczego pojawia się ten błąd
Każda kwota ma atrybut currencyID, który musi być trzyliterowym kodem ISO 4217. W UBL reguła sprawdza ten atrybut w cbc:Amount, cbc:BaseAmount, cbc:PriceAmount, cbc:TaxAmount, cbc:TaxableAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, cbc:TaxInclusiveAmount, cbc:AllowanceTotalAmount, cbc:ChargeTotalAmount, cbc:PrepaidAmount, cbc:PayableRoundingAmount i cbc:PayableAmount; w CII w ram:TaxTotalAmount. Błąd występuje przy kodach pisanych małymi literami (eur), symbolach, kodach numerycznych (978) lub kodach ze spacjami – zwykle z powodu szablonu, który kopiuje walutę w postaci wyświetlanej użytkownikowi.
Jak to naprawić
Ustaw currencyID na trzyliterowy kod ISO 4217 pisany wielkimi literami: EUR, USD, GBP, CHF, SEK, PLN. Używaj jednej stałej dla całego dokumentu, zwykle wartości cbc:DocumentCurrencyCode / ram:InvoiceCurrencyCode, i generuj atrybut z niej zamiast osobno dla każdej kwoty. W CII atrybut currencyID ma tylko ram:TaxTotalAmount; pozostałe kwoty CII go nie mają. Usuń białe znaki i nigdy nie używaj symbolu waluty.
Przykład (poprawny)
<cbc:PayableAmount currencyID="EUR">238.00</cbc:PayableAmount>
Co sprawdza walidator
Sprawdzany element (kontekst):
UBL
cbc:Amount | cbc:BaseAmount | cbc:PriceAmount | cbc:TaxAmount | cbc:TaxableAmount | cbc:LineExtensionAmount | cbc:TaxExclusiveAmount | cbc:TaxInclusiveAmount | cbc:AllowanceTotalAmount | cbc:ChargeTotalAmount | cbc:PrepaidAmount | cbc:PayableRoundingAmount | cbc:PayableAmountTest (XPath):
((not(contains(normalize-space(@currencyID), ' ')) 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(@currencyID), ' '))))CII
ram:TaxTotalAmount[@currencyID]Test (XPath):
((not(contains(normalize-space(@currencyID), ' ')) 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(@currencyID), ' '))))
Popraw automatycznie
Ten błąd można poprawić automatycznie: upuść plik w walidatorze i kliknij „Popraw automatycznie”.
To samo sprawdzenie przez API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validatePowiązane reguły
BR-CL-01Kod rodzaju faktury nie jest prawidłowym kodem UNTDID 1001BR-CL-04Kod waluty faktury nie jest kodem ISO 4217BR-CL-05Kod waluty podatku MUSI być zgodny z listą ISO 4217 alpha-3BR-CL-06Kod daty powstania obowiązku VAT MUSI być zgodny z ograniczeniem UNTDID 2005BR-CL-07Identyfikator schematu identyfikatora obiektu MUSI być zgodny z ograniczeniem…BR-CL-08Kod tematu uwagi musi być zgodny z UNCL4451BR-CL-10Schemat identyfikatora podmiotu nie jest kodem ISO 6523 ICDBR-CL-11Każdy identyfikator schematu identyfikatora rejestrowego MUSI być zgodny z jedną…
Najczęstsze pytania
Co oznacza BR-CL-03?
BR-CL-03 to reguła podstawowa en 16931: currencyID MUST be coded using ISO code list 4217 alpha-3
Czy moja faktura zostanie odrzucona z powodu BR-CL-03?
Tak. BR-CL-03 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.
Jakich formatów dotyczy BR-CL-03?
Każda faktura EN 16931: XRechnung, ZUGFeRD 2.x / Factur-X (profile EN 16931, EXTENDED, XRECHNUNG), Peppol BIS Billing 3.0 oraz krajowe CIUS. Składnia: UBL i CII.
Źródło: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Katalog wygenerowany z oficjalnych zestawów reguł dnia 2026-10-15.