Konto
Polski

BR-CO-10: Suma kwot netto pozycji (BT-106) nie zgadza się z pozycjami

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-106 Sum of Invoice line net amount
  • BT-131 Invoice line net 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-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:LegalMonetaryTotal

Test (XPath):

(xs:decimal(cbc:LineExtensionAmount) = xs:decimal(round(sum(//(cac:InvoiceLine|cac:CreditNoteLine)/xs:decimal(cbc:LineExtensionAmount)) * 10 * 10) div 100))

CII

//ram:SpecifiedTradeSettlementHeaderMonetarySummation

Test (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.

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