BT-106Sum of Invoice line net amountBT-131Invoice line net amount
Oficjalna treść reguły
[BR-CO-10] Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).
Tekst normatywny jest w języku angielskim i cytowany bez zmian.
Dlaczego pojawia się ten błąd
Suma w nagłówku BT-106 musi być równa sumie kwot netto wszystkich pozycji faktury (BT-131), zaokrąglonej do dwóch miejsc po przecinku. Reguła porównuje cac:LegalMonetaryTotal/cbc:LineExtensionAmount z sumą cac:InvoiceLine/cbc:LineExtensionAmount (UBL) lub ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount z sumą wartości ram:LineTotalAmount pozycji (CII). Rozbieżności wynikają z sumowania przez oprogramowanie niezaokrąglonych wartości wewnętrznych przy jednoczesnym zapisywaniu zaokrąglonych wartości w pozycjach albo z pominięcia lub odfiltrowania pozycji w eksporcie.
Jak to naprawić
Wzór: BT-106 = Σ BT-131 ze wszystkich pozycji, zaokrąglone do 2 miejsc po przecinku. Wyliczaj wartość nagłówka z kwot faktycznie zapisanych w pozycjach XML, a nie z wewnętrznych wartości o pełnej precyzji. W UBL ustaw cbc:LineExtensionAmount w cac:LegalMonetaryTotal; w CII ustaw ram:LineTotalAmount w podsumowaniu kwot nagłówka. Pozycje ujemne (uznania) są uwzględniane ze swoim znakiem; rabaty i opłaty na poziomie dokumentu nie wchodzą do tej sumy.
Przykład (poprawny)
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">250.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">250.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">297.50</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">297.50</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Co sprawdza walidator
Sprawdzany element (kontekst):
UBL
cac:LegalMonetaryTotalTest (XPath):
(xs:decimal(cbc:LineExtensionAmount) = xs:decimal(round(sum(//(cac:InvoiceLine|cac:CreditNoteLine)/xs:decimal(cbc:LineExtensionAmount)) * 10 * 10) div 100))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)
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-13Kwota bez VAT (BT-109) nie zgadza się z wyliczeniemBR-12Faktura musi zawierać sumę kwot netto pozycjiBR-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”,…BR-AG-08Dla każdej odrębnej stawki VAT w kategorii „IPSI”,…BR-DEC-09Maksymalna liczba miejsc dziesiętnych dla sumy kwot netto pozycji to 2BR-DEC-23Kwota netto pozycji faktury (BT-131) ma ponad 2 miejsca po przecinku
Najczęstsze pytania
Co oznacza BR-CO-10?
BR-CO-10 to reguła podstawowa en 16931: Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).
Czy moja faktura zostanie odrzucona z powodu BR-CO-10?
Tak. BR-CO-10 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.
Jakich formatów dotyczy BR-CO-10?
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.