Konto
Polski

BR-CL-03: Atrybut currencyID nie jest kodem ISO 4217

Reguła podstawowa EN 16931 · Błąd · UBL, CII

StandardEN 16931-1 (europejski model semantyczny e-faktury)WagaBłąd: faktura zostaje odrzuconaSkładniaUBL, CIIDotyczyKażda faktura EN 16931: XRechnung, ZUGFeRD 2.x / Factur-X (profile EN 16931, EXTENDED, XRECHNUNG), Peppol BIS Billing 3.0 oraz krajowe CIUS.

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:PayableAmount

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), ' '))))

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”.

Popraw fakturę →

To samo sprawdzenie przez API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Powiązane reguły

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.