Auf dieser Seite
Die kurze Antwort
BR-CO-17 schlägt fehl, wenn das cbc:TaxAmount eines cac:TaxSubtotal nicht zum cbc:TaxableAmount dieses Blocks multipliziert mit seinem cac:TaxCategory/cbc:Percent passt. Der richtige Wert ist Steuerbasisbetrag x Satz / 100, auf zwei Nachkommastellen gerundet. Berechnen Sie ihn neu und übernehmen Sie den korrigierten Wert dann in die Umsatzsteuersumme und die davon abhängigen Summen.
Die Regel läuft auf jeder Umsatzsteueraufschlüsselung, unabhängig von ihrer Kategorie. Bei einer Aufschlüsselung zum Normalsatz prüft BR-S-09 dieselbe Berechnung noch einmal, daher werden beide normalerweise zusammen gemeldet.
Was die Regel prüft
Bei einer Aufschlüsselung mit einem Satz ungleich null berechnet die Regel Steuerbasisbetrag x Satz / 100, rundet auf zwei Nachkommastellen und vergleicht das Ergebnis mit dem Steuerbetrag. Der Vergleich ist nicht exakt: Er besteht, wenn beide um weniger als 1.00 voneinander abweichen, und schlägt bei einer Abweichung von genau 1.00 oder mehr fehl. Bei 25.00 zu 20 %, wo der berechnete Betrag 5.00 ist, bestehen Steuerbeträge von 4.01 und 5.99, während 4.00 und 6.00 fehlschlagen.
Das Einhalten dieser Toleranz macht den Wert nicht richtig. Eine Aufschlüsselung von 5.90 auf 25.00 zu 20 % besteht die Validierung, wenn die Summen ihr folgen, und die Rechnung weist trotzdem 0.90 zu viel Umsatzsteuer aus. Betrachten Sie die Toleranz als Spielraum der Prüfung, nicht als Rundungsspielraum, den Sie nutzen dürfen.
Ist der Satz 0 oder hat die Aufschlüsselung überhaupt kein cbc:Percent, muss der Steuerbetrag nur auf die ganze Zahl null gerundet werden: 0.40 kommt an dieser Regel vorbei, 0.50 nicht. Die Kategorieregeln sind strenger; eine Aufschlüsselung zum Nullsatz mit 0.40 Steuer wird dennoch von BR-Z-09 zurückgewiesen.
Beide Beträge werden als Absolutwerte verglichen, daher betrachtet die Regel das Vorzeichen nicht. Ein Steuerbetrag von -5.00 auf einen Steuerbasisbetrag von 25.00 besteht sie.
Nur die drei Werte innerhalb der Aufschlüsselung werden gelesen. Ob die Umsatzsteuersumme des Dokuments zu den Aufschlüsselungen passt, ist eine eigene Prüfung, BR-CO-14.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-117 | Kategoriespezifischer Steuerbetrag | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount |
| BT-116 | Kategoriespezifischer Steuerbasisbetrag | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount |
| BT-119 | Kategoriespezifischer Umsatzsteuersatz | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Die Umsatzsteuer wird je Position berechnet und die Ergebnisse der Positionen werden in der Aufschlüsselung summiert, sodass sie sich von Steuerbasisbetrag x Satz entfernt. Abweichungen von wenigen Cent bleiben innerhalb der Toleranz; eine größere Lücke bedeutet meist, dass eine Position mit einem anderen Satz besteuert wurde als dem, den die Aufschlüsselung angibt.
- Der Steuerbetrag stammt aus einer Buchung, während Steuerbasisbetrag und Satz aus den Positionen neu aufgebaut werden, und beide entstanden zu unterschiedlichen Zeitpunkten oder aus unterschiedlichen Daten.
- Der Satz ist als Bruch geschrieben,
0.2statt20, sodass der berechnete Betrag ein Hundertstel des beabsichtigten ist. - Der Steuerbasisbetrag wurde durch einen Nachlass oder Zuschlag auf Dokumentenebene geändert, und der Steuerbetrag wurde nicht neu berechnet.
- Ein Bruttobetrag oder die Steuer einer anderen Kategorie wird in
cbc:TaxAmountgemappt.
So korrigieren Sie das Dokument
- Nehmen Sie für jedes
cac:TaxSubtotaldascbc:TaxableAmountundcac:TaxCategory/cbc:Percentso, wie sie übermittelt werden. - Berechnen Sie Steuerbasisbetrag x Satz / 100 mit Dezimalarithmetik und runden Sie das Ergebnis auf zwei Nachkommastellen. Schreiben Sie es in das
cbc:TaxAmountdes Blocks. - Weicht der berechnete Wert von dem ab, was Ihre Buchhaltung enthält, finden Sie vor dem Versand heraus, ob Steuerbasisbetrag, Satz oder gebuchte Steuer falsch ist. Verschieben Sie den Betrag nicht schrittweise, bis er in die Toleranz fällt.
- Setzen Sie
cac:TaxTotal/cbc:TaxAmountauf die Summe der Steuerbeträge der Aufschlüsselung (BR-CO-14) und berechnen Sie danncbc:TaxInclusiveAmount(BR-CO-15) undcbc:PayableAmount(BR-CO-16) neu.
Das aufgezeichnete Beispiel hat eine Aufschlüsselung: 25.00 steuerpflichtig zu 20 %.
Berechnete Steuer: 25.00 x 20 / 100 = 5.00 Übermittelter Steuerbetrag: 6.50 Abweichung: 1.50, nicht unter 1.00, daher schlägt die Regel fehl Korrigiert: Steuerbetrag 5.00, Umsatzsteuersumme 5.00, Summe mit Umsatzsteuer 25.00 + 5.00 = 30.00
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: 6.50 Umsatzsteuer auf 25.00 zu 20 %, mit Summen, die auf dem falschen Wert aufbauen
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">6.50</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">6.50</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">31.50</cbc:TaxInclusiveAmount>
<!-- allowance, charge, prepaid and rounding totals (all 0.00) omitted from this fragment -->
<cbc:PayableAmount currencyID="GBP">31.50</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Ausschnitt der korrigierten Rechnung: Die Aufschlüsselung beträgt 5.00, und die Summen folgen
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">25.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">30.00</cbc:TaxInclusiveAmount>
<!-- allowance, charge, prepaid and rounding totals (all 0.00) omitted from this fragment -->
<cbc:PayableAmount currencyID="GBP">30.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Vier Werte unterscheiden sich: Das cbc:TaxAmount der Aufschlüsselung und das cac:TaxTotal/cbc:TaxAmount des Dokuments gehen von 6.50 auf 5.00, und cbc:TaxInclusiveAmount und cbc:PayableAmount gehen von 31.50 auf 30.00. Das fehlerhafte Dokument meldet außerdem BR-S-09, weil die Aufschlüsselung zum Normalsatz gehört und diese Regel die Berechnung für die Kategorie wiederholt. Keine Summenregel schlägt an, weil die Summen im fehlerhaften Dokument durchgängig auf den falschen 6.50 aufgebaut wurden. Wäre nur die Aufschlüsselung falsch gewesen, würde auch BR-CO-14 gemeldet.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CO-17 und BR-S-09. 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 gleichermaßen für UBL
InvoiceundCreditNote. Eine Gutschrift mit denselben 6.50 auf 25.00 zu 20 % meldet dieselben zwei Regeln. - Jedes
cac:TaxSubtotalinnerhalb einescac:TaxTotalwird geprüft, in jeder Umsatzsteuerkategorie. Die kategoriespezifischen Gegenstücke, etwaBR-S-09für den Normalsatz undBR-Z-09für den Nullsatz, laufen zusätzlich. - Beträge werden in der Währung verglichen, in der sie geschrieben sind. Die Regel rechnet keine Währungen um.
- Eine Aufschlüsselung, die diese Regel besteht, kann in ihrem Steuerbasisbetrag trotzdem falsch sein. Bei Aufschlüsselungen zum Normalsatz prüft
BR-S-08ihn gegen die Positionen, Nachlässe und Zuschläge.
Verwandte Regeln
- BR-S-09 wiederholt diese Berechnung für Aufschlüsselungen zum Normalsatz und schlägt gemeinsam mit ihr an
- BR-CO-14 prüft, dass die Umsatzsteuersumme des Dokuments die Summe der Steuerbeträge der Aufschlüsselung ist
- BR-CO-15 prüft die Summe mit Umsatzsteuer, sobald die Umsatzsteuersumme korrigiert ist
- BR-S-08 prüft den Steuerbasisbetrag zum Normalsatz, von dem diese Berechnung ausgeht
- 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-17 (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.

