Konto
Polski

BR-DEC-01: Kwota rabatu dokumentu (BT-92) ma ponad 2 miejsca po przecinku

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

StandardEN 16931-1 (europejski model semantyczny e-faktury)WagaBłąd: faktura zostaje odrzuconaSkładniaUBL, CIIPojęcia biznesowe
  • BT-92 Document level allowance amount
DotyczyKaż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-DEC-01] The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.

Tekst normatywny jest w języku angielskim i cytowany bez zmian.

Dlaczego pojawia się ten błąd

Kwota rabatu na poziomie dokumentu może mieć co najwyżej dwa miejsca po przecinku. Reguła jest kontrolą tekstową: liczy znaki po separatorze dziesiętnym w cbc:Amount elementu /Invoice/cac:AllowanceCharge z ChargeIndicator false (UBL) lub w ram:SpecifiedTradeAllowanceCharge/ram:ActualAmount (CII). Błąd pojawia się, gdy rabat procentowy zapisano bez zaokrąglenia (12.345) lub gdy formater generuje trzy miejsca po przecinku (10.500), nawet jeśli matematycznie jest to kwota z dwoma miejscami po przecinku.

Jak to naprawić

Zaokrąglij kwotę rabatu do dwóch miejsc po przecinku przed jej zapisaniem i formatuj ją z co najwyżej dwiema cyframi części ułamkowej, np. 12.35 lub 10.5. Zaokrąglaj w warstwie eksportu, a nie tylko w warstwie prezentacji. Przelicz cbc:AllowanceTotalAmount / ram:AllowanceTotalAmount (BT-107) z zaokrąglonych wartości, aby reguły BR-CO-11 i BR-CO-13 nadal były spełnione. Jako separatora dziesiętnego używaj kropki, nigdy przecinka.

Przykład (poprawny)

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Volume discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">12.35</cbc:Amount>
  <cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:AllowanceCharge>

Co sprawdza walidator

Sprawdzany element (kontekst):

UBL

/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]

Test (XPath):

string-length(substring-after(cbc:Amount,'.'))<=2

CII

//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']

Test (XPath):

string-length(substring-after(../ram:ActualAmount,'.'))<=2

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-DEC-01?

BR-DEC-01 to reguła podstawowa en 16931: The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.

Czy moja faktura zostanie odrzucona z powodu BR-DEC-01?

Tak. BR-DEC-01 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.

Jakich formatów dotyczy BR-DEC-01?

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.