BT-107Sum of allowances on document levelBT-108Sum of charges on document levelBT-109Invoice total amount without VATBT-131Invoice line net amount
Oficjalna treść reguły
[BR-CO-13] Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).
Tekst normatywny jest w języku angielskim i cytowany bez zmian.
Dlaczego pojawia się ten błąd
Łączna kwota faktury bez VAT (BT-109) musi być równa sumie kwot netto pozycji (BT-106) pomniejszonej o rabaty na poziomie dokumentu (BT-107) i powiększonej o opłaty na poziomie dokumentu (BT-108). Reguła porównuje cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount z cbc:LineExtensionAmount, cbc:AllowanceTotalAmount i cbc:ChargeTotalAmount (UBL) lub ram:TaxBasisTotalAmount z ram:LineTotalAmount, ram:AllowanceTotalAmount i ram:ChargeTotalAmount (CII). Rozbieżności wynikają zwykle z tego, że oprogramowanie wylicza BT-109 z zestawienia VAT lub z kwot brutto zamiast z tych trzech pól.
Jak to naprawić
Wzór: BT-109 = BT-106 - BT-107 + BT-108, zaokrąglone do 2 miejsc po przecinku; brakujące BT-107 lub BT-108 liczy się jako 0. W UBL wpisz wynik do cbc:TaxExclusiveAmount, w CII do ram:TaxBasisTotalAmount. Najpierw upewnij się, że same BT-106, BT-107 i BT-108 są poprawne (BR-CO-10 do BR-CO-12), a następnie przelicz BT-109 z wartości faktycznie zapisanych. Nie uwzględniaj tu VAT, kwoty zaokrąglenia ani kwoty zapłaconej z góry.
Przykład (poprawny)
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">250.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">245.90</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">292.62</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="EUR">10.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="EUR">5.90</cbc:ChargeTotalAmount>
<cbc:PayableAmount currencyID="EUR">292.62</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Co sprawdza walidator
Sprawdzany element (kontekst):
UBL
cac:LegalMonetaryTotalTest (XPath):
((cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10) div 100 )) or (not(cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10 ) div 100)) or ((cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount)) * 10 * 10 ) div 100)) or (not(cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = xs:decimal(cbc:LineExtensionAmount)))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) and not (ram:AllowanceTotalAmount)) or ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))
Popraw automatycznie
Ten błąd można poprawić automatycznie: po potwierdzeniu walidator przeliczy sumy i VAT z kwot pozycji.
To samo sprawdzenie przez API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validatePowiązane reguły
BR-CO-10Suma kwot netto pozycji (BT-106) nie zgadza się z pozycjamiBR-CO-11Błędna suma rabatów na poziomie dokumentu (BT-107)BR-CO-12Błędna suma opłat na poziomie dokumentu (BT-108)BR-CO-15Kwota brutto (BT-112) nie jest sumą kwoty netto i VATBR-13Faktura musi zawierać łączną kwotę bez VATBR-24Każda pozycja faktury musi mieć kwotę netto pozycjiBR-AE-08W zestawieniu VAT z kategorią „Odwrotne obciążenie”…BR-AF-08Dla każdej odrębnej stawki VAT w kategorii „IGIC”,…
Najczęstsze pytania
Co oznacza BR-CO-13?
BR-CO-13 to reguła podstawowa en 16931: Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).
Czy moja faktura zostanie odrzucona z powodu BR-CO-13?
Tak. BR-CO-13 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.
Jakich formatów dotyczy BR-CO-13?
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.