Konto
Polski

BR-CO-11: Błędna suma rabatów na poziomie dokumentu (BT-107)

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
  • BT-107 Sum of allowances on document level
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-11] Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92).

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

Dlaczego pojawia się ten błąd

BT-107 musi być równe sumie kwot wszystkich rabatów na poziomie dokumentu (BT-92). Reguła porównuje cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount z sumą cbc:Amount wszystkich /Invoice/cac:AllowanceCharge z cbc:ChargeIndicator false (UBL) lub ram:AllowanceTotalAmount z sumą ram:ActualAmount nagłówkowych ram:SpecifiedTradeAllowanceCharge ze wskaźnikiem false (CII). Jeśli nie ma rabatów na poziomie dokumentu, sumę można pominąć. Częste przyczyny: do sumy wliczono rabaty na poziomie pozycji albo pominięto AllowanceTotalAmount, mimo że rabaty występują.

Jak to naprawić

Wzór: BT-107 = Σ BT-92 (tylko rabaty na poziomie dokumentu), zaokrąglone do 2 miejsc po przecinku. W UBL ustaw cbc:AllowanceTotalAmount w cac:LegalMonetaryTotal na tę sumę; rabaty w cac:InvoiceLine są już zawarte w kwocie netto pozycji i nie mogą być tu liczone. W CII ustaw ram:AllowanceTotalAmount w podsumowaniu kwot nagłówka. Jeśli rabaty występują, element sumy musi być obecny; jeśli ich nie ma, pomiń go lub wpisz 0.00. Kwoty są dodatnie, a znak wyraża ChargeIndicator.

Przykład (poprawny)

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</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>
<cac:LegalMonetaryTotal>...<cbc:AllowanceTotalAmount currencyID="EUR">10.00</cbc:AllowanceTotalAmount>...</cac:LegalMonetaryTotal>

Co sprawdza walidator

Sprawdzany element (kontekst):

UBL

cac:LegalMonetaryTotal

Test (XPath):

xs:decimal(cbc:AllowanceTotalAmount) = (round(sum(../cac:AllowanceCharge[cbc:ChargeIndicator=false()]/xs:decimal(cbc:Amount)) * 10 * 10) div 100) or  (not(cbc:AllowanceTotalAmount) and not(../cac:AllowanceCharge[cbc:ChargeIndicator=false()]))

CII

//ram:SpecifiedTradeSettlementHeaderMonetarySummation

Test (XPath):

(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false()])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false()]/ram:ActualAmount)* 10 * 10 ) div 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-11?

BR-CO-11 to reguła podstawowa en 16931: Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92).

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

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

Jakich formatów dotyczy BR-CO-11?

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.