Konto
Polski

BR-CO-15: Kwota brutto (BT-112) nie jest sumą kwoty netto i VAT

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-109 Invoice total amount without VAT
  • BT-110 Invoice total VAT amount
  • BT-112 Invoice total amount with VAT
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-15] Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

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

Dlaczego pojawia się ten błąd

Łączna kwota faktury z VAT (BT-112) musi być równa łącznej kwocie bez VAT (BT-109) powiększonej o łączną kwotę VAT (BT-110). Reguła wymaga ponadto dokładnie jednej sumy VAT w walucie dokumentu: w UBL jednego cac:TaxTotal/cbc:TaxAmount, którego currencyID jest równy cbc:DocumentCurrencyCode, w CII jednego ram:TaxTotalAmount z currencyID równym ram:InvoiceCurrencyCode. Błąd pojawia się przy różnicach zaokrągleń, przy braku currencyID w kwocie podatku lub gdy dwa elementy TaxTotal używają waluty dokumentu.

Jak to naprawić

Wzór: BT-112 = BT-109 + BT-110, zaokrąglone do 2 miejsc po przecinku. W UBL wpisz cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount = cbc:TaxExclusiveAmount + cac:TaxTotal/cbc:TaxAmount[@currencyID = waluta dokumentu]; w CII ram:GrandTotalAmount = ram:TaxBasisTotalAmount + ram:TaxTotalAmount[@currencyID = waluta faktury]. Każda kwota podatku musi mieć atrybut currencyID. Zachowaj dokładnie jedną sumę podatku w walucie dokumentu; druga jest dopuszczalna wyłącznie w walucie rozliczenia VAT (BT-111).

Przykład (poprawny)

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">200.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">238.00</cbc:TaxInclusiveAmount>
  <cbc:PayableAmount currencyID="EUR">238.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

Co sprawdza walidator

Sprawdzany element (kontekst):

UBL

/ubl:Invoice | /cn:CreditNote

Test (XPath):

every $Currency in cbc:DocumentCurrencyCode satisfies (count(cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) eq 1) and (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxInclusiveAmount) = round( (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxExclusiveAmount) + cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) * 10 * 10) div 100)

CII

/rsm:CrossIndustryInvoice

Test (XPath):

every $Currency                                  in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode                                 satisfies (                                     count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and                                     (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round(                                      (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) +                                      (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or                                 (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))

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-15?

BR-CO-15 to reguła podstawowa en 16931: Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

Czy moja faktura zostanie odrzucona z powodu BR-CO-15?

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

Jakich formatów dotyczy BR-CO-15?

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.