BT-99Document level charge amountBT-108Sum of charges on document level
Offizieller Regeltext
[BR-CO-12] Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
Der normative Text ist Englisch und wird unverändert zitiert.
Warum dieser Fehler auftritt
BT-108 muss der Summe aller Zuschlagsbeträge auf Dokumentebene (BT-99) entsprechen. Die Regel vergleicht cac:LegalMonetaryTotal/cbc:ChargeTotalAmount mit der Summe der cbc:Amount aller /Invoice/cac:AllowanceCharge mit cbc:ChargeIndicator true (UBL) bzw. ram:ChargeTotalAmount mit der Summe der ram:ActualAmount der Kopf-ram:SpecifiedTradeAllowanceCharge mit Indikator true (CII). Typische Ursachen: Versand- oder Verpackungskosten sind als Rechnungsposition modelliert, ChargeTotalAmount wird aber trotzdem gefüllt, oder Positionszuschläge werden auf Dokumentebene mitgezählt.
So beheben Sie den Fehler
Formel: BT-108 = Σ BT-99 (nur Zuschläge auf Dokumentebene), auf 2 Nachkommastellen gerundet. In UBL cbc:ChargeTotalAmount in cac:LegalMonetaryTotal setzen; in CII ram:ChargeTotalAmount in der Kopfsummation. Gibt es Zuschläge, muss die Summe vorhanden sein; gibt es keine, Element weglassen oder 0.00 schreiben. Einheitlich modellieren: Eine Frachtpauschale ist entweder Zuschlag auf Dokumentebene (zählt hier) oder Rechnungsposition (zählt in BT-106), nie beides.
Beispiel (gültig)
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Fracht</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">5.90</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:ChargeTotalAmount currencyID="EUR">5.90</cbc:ChargeTotalAmount>...</cac:LegalMonetaryTotal>
Was der Validator prüft
Geprüftes Element (Kontext):
UBL
cac:LegalMonetaryTotalTest (XPath):
xs:decimal(cbc:ChargeTotalAmount) = (round(sum(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]/xs:decimal(cbc:Amount)) * 10 * 10) div 100) or (not(cbc:ChargeTotalAmount) and not(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true()])and not (ram:ChargeTotalAmount)) or ram:ChargeTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true()]/ram:ActualAmount)* 10 * 10 ) div 100)
Rechnung prüfen
Legen Sie Ihre XML- oder PDF-Datei im Validator ab; jede verletzte Regel ist mit ihrer Seite hier verlinkt. Kostenlos, ohne Konto, die Datei wird nicht gespeichert.
Dieselbe Prüfung per API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateVerwandte Regeln
BR-CO-13Nettosumme der Rechnung (BT-109) geht nicht aufBR-36Each Document level charge shall have a Document level charge amountBR-AE-08In a VAT breakdown where the VAT category code is "Reverse charge" the VAT category…BR-AF-08For each different value of VAT category rate where the VAT category code is "IGIC",…BR-AG-08For each different value of VAT category rate where the VAT category code is "IPSI",…BR-DEC-05The allowed maximum number of decimals for the Document level charge amount is 2BR-DEC-11The allowed maximum number of decimals for the Sum of charges on document level is 2BR-E-08In a VAT breakdown where the VAT category code is "Exempt from VAT" the VAT category…
Häufige Fragen
Was bedeutet BR-CO-12?
BR-CO-12 ist eine EN-16931-Kernregel: Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
Wird meine Rechnung wegen BR-CO-12 abgelehnt?
Ja. BR-CO-12 ist als „fatal“ eingestuft; Validatoren (KoSIT, Peppol Access Points, ZRE/OZG-RE) weisen die Rechnung zurück, bis der Fehler behoben ist.
Für welche Formate gilt BR-CO-12?
Jede EN-16931-Rechnung: XRechnung, ZUGFeRD 2.x / Factur-X (Profile EN 16931, EXTENDED, XRECHNUNG), Peppol BIS Billing 3.0 sowie nationale CIUS. Syntax: UBL und CII.
Quelle: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Katalog erzeugt aus dem offiziellen Schematron am 2026-10-14.