Auf dieser Seite
Die kurze Antwort
BR-CO-12 schlägt fehl, wenn cac:LegalMonetaryTotal/cbc:ChargeTotalAmount nicht zu den Zuschlägen auf Dokumentenebene passt. Summieren Sie cbc:Amount über die cac:AllowanceCharge-Elemente, die direkt unter dem Wurzelelement des Dokuments stehen und cbc:ChargeIndicator true haben, runden Sie auf zwei Nachkommastellen und übermitteln Sie das als Summe der Zuschläge.
Zuschläge an einer Position bleiben außerhalb dieses Werts; sie sind Teil des Nettobetrags der Position.
Was die Regel prüft
Summiert werden nur cac:AllowanceCharge-Kinder des Wurzelelements Invoice oder CreditNote mit cbc:ChargeIndicator true. Nachlässe auf Dokumentenebene sowie jedes cac:AllowanceCharge innerhalb einer Position oder eines Preises bleiben außen vor.
Die summierten Zuschläge werden auf zwei Nachkommastellen gerundet und müssen der Summe exakt entsprechen. Eine Summe von 3.51 gegenüber einem einzigen Zuschlag von 3.50 schlägt fehl.
Das Weglassen von cbc:ChargeTotalAmount wird nur akzeptiert, wenn das Dokument keine Zuschläge auf Dokumentenebene hat. Ein Zuschlag ohne Summe schlägt fehl. Ohne Zuschläge besteht eine Summe von 0.00, und jeder andere Wert schlägt fehl.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-108 | Summe der Zuschläge auf Dokumentenebene | cac:LegalMonetaryTotal/cbc:ChargeTotalAmount |
| BT-99 | Betrag des Zuschlags auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Fracht-, Bearbeitungs- oder ähnliche Gebühren sind im Quellsystem als Kopfwert gespeichert, und die
cac:AllowanceCharge-Elemente werden aus einer anderen Quelle erzeugt, die nicht damit übereinstimmt. - Ein Zuschlag auf Positionsebene wird in der Summe der Zuschläge des Dokuments mitgezählt und zusätzlich im Nettobetrag seiner Position.
- Der
cbc:ChargeIndicatorist bei einem Element falsch, sodass ein Zuschlag mit den Nachlässen summiert wird oder ein Nachlass mit den Zuschlägen. - Die Zuschlagselemente werden geschrieben, aber die Summe wird übersprungen, weil das Mapping sie als optional behandelt.
- Ein prozentualer Zuschlag wird für die Summe neu berechnet, statt das gerundete
cbc:Amountwiederzuverwenden, das geschrieben wurde.
So korrigieren Sie das Dokument
- Sammeln Sie die
cac:AllowanceCharge-Elemente direkt unter dem Wurzelelement des Dokuments, derencbc:ChargeIndicatortrueist. - Addieren Sie ihre
cbc:Amount-Werte so, wie sie im XML stehen, mit Dezimalarithmetik und runden Sie auf zwei Nachkommastellen. - Schreiben Sie das Ergebnis in
cac:LegalMonetaryTotal/cbc:ChargeTotalAmount. Ohne Zuschläge auf Dokumentenebene lassen Sie das Element weg oder übermitteln 0.00. - Bauen Sie die Summe ohne Umsatzsteuer aus der korrigierten Summe der Zuschläge neu auf, denn
BR-CO-13liest sie.
Das aufgezeichnete Beispiel hat einen Zuschlag auf Dokumentenebene, 10 Prozent eines Basisbetrags von 35.00.
Zuschläge auf Dokumentenebene: 3.50 Übermittelte Summe der Zuschläge (BT-108): 4.50, daher schlägt BR-CO-12 fehl Übermittelte Summe ohne Umsatzsteuer: 68.50, also 66.00 - 1.00 + 3.50 Gegenüber den übermittelten 4.50 erwartet BR-CO-13 66.00 - 1.00 + 4.50 = 69.50, daher schlägt auch diese Regel fehl
Vorher und nachher
Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.
Ausschnitt der fehlerhaften Rechnung: Die Summe lautet 4.50, der einzige Zuschlag auf Dokumentenebene beträgt 3.50
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">3.50</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
<!-- total with VAT omitted from this fragment -->
<cbc:AllowanceTotalAmount currencyID="GBP">1.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="GBP">4.50</cbc:ChargeTotalAmount>
<!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>Ausschnitt der korrigierten Rechnung: Die Summe entspricht dem einen Zuschlag
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
<!-- total with VAT omitted from this fragment -->
<cbc:AllowanceTotalAmount currencyID="GBP">1.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="GBP">3.50</cbc:ChargeTotalAmount>
<!-- prepaid, rounding and payable amounts omitted from this fragment -->
</cac:LegalMonetaryTotal>Nur cbc:ChargeTotalAmount unterscheidet sich: 4.50 im fehlerhaften Dokument, 3.50 im korrigierten. Das fehlerhafte Dokument meldet außerdem BR-CO-13, weil seine Summe ohne Umsatzsteuer von 68.50 mit einer Summe der Zuschläge von 3.50 berechnet wurde und nicht zu den übermittelten 4.50 passt. Die Korrektur der Summe der Zuschläge behebt beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CO-12 und BR-CO-13. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.Fehlerhaftes XML herunterladenKorrigiertes XML herunterladen
Aufgezeichnet mit phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, der Engine hinter dem kostenlosen Validator, mit synthetischen Daten. Ein aufgezeichnetes Ergebnis ist ein Regressionsnachweis für diese Dokumente, keine Zertifizierung.
Wo die Regel gilt
- Gilt in gleicher Weise für UBL
InvoiceundCreditNote; eine Gutschrift mit demselben Fehler meldet dieselben zwei Befunde. - Fehlt die Summe, während ein Zuschlag vorhanden ist, wird außerdem
BR-CO-13gemeldet, das die fehlende Summe der Zuschläge dann so behandelt, als sei nichts hinzugekommen. - Diese Regel summiert nur. Grund, Umsatzsteuerkategorie, Basisbetrag und Prozentsatz jedes Zuschlags werden an anderer Stelle geprüft.
Verwandte Regeln
- BR-CO-11 ist die entsprechende Prüfung für Nachlässe auf Dokumentenebene
- BR-CO-13 addiert die Summe der Zuschläge, wenn es die Summe ohne Umsatzsteuer prüft
- PEPPOL-EN16931-R040 prüft einen Zuschlagsbetrag gegen seinen Basisbetrag und seinen Prozentsatz
- PEPPOL-EN16931-R041 verlangt einen Basisbetrag, sobald ein Zuschlag einen Prozentsatz trägt
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): Understanding EN 16931 validation errors
Umfang und Quelle
Geschrieben für Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, angewendet auf Invoice- und CreditNote-Dokumente in UBL 2.1. Andere Profile, Syntaxen und Releases können diese Kennung anders definieren. Version des Hinweiskatalogs 2026-09-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-20.
Die offizielle Definition von BR-CO-12 (auf Englisch) enthält den normativen Wortlaut und den Test. Diese Seite ist unsere Erklärung dazu, keine Kopie.
Die Erklärung ändert das Urteil der Engine nicht. Dass Sie diesen Befund beheben, heißt nicht, dass das Dokument jeden Prüfschritt besteht. Die Validierung bescheinigt keine rechtliche oder steuerliche Konformität und überträgt kein Dokument über Peppol.

