Auf dieser Seite
Die kurze Antwort
BR-CO-15 schlägt fehl, wenn cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount nicht cbc:TaxExclusiveAmount plus die Umsatzsteuersumme ist. Die Umsatzsteuersumme ist das cbc:TaxAmount direkt unter cac:TaxTotal, dessen currencyID zu cbc:DocumentCurrencyCode passt. Addieren Sie beide, runden Sie auf zwei Nachkommastellen und schreiben Sie das Ergebnis als Summe mit Umsatzsteuer.
Die Regel schlägt auch fehl, wenn sich diese Umsatzsteuersumme nicht bestimmen lässt: Das Dokument muss genau ein cac:TaxTotal/cbc:TaxAmount in der Dokumentwährung enthalten.
Was die Regel prüft
Die Regel läuft einmal auf dem Wurzelelement des Dokuments. Zuerst zählt sie die cbc:TaxAmount-Elemente direkt unter einem cac:TaxTotal auf Wurzelebene, deren currencyID gleich cbc:DocumentCurrencyCode ist. Es muss genau eines sein. Keines oder zwei lassen die Regel fehlschlagen, unabhängig davon, was die Summen aussagen.
Dann addiert sie diesen Betrag zu cbc:TaxExclusiveAmount, rundet auf zwei Nachkommastellen und vergleicht das Ergebnis exakt mit cbc:TaxInclusiveAmount. Eine Summe mit Umsatzsteuer von 80.21, wo die Addition 80.20 ergibt, schlägt fehl.
Ein zweites cac:TaxTotal in der Buchungswährung der Umsatzsteuer wird ignoriert, weil seine currencyID nicht die Dokumentwährung ist.
Vorauszahlungs- und Rundungsbeträge sind nicht Teil dieses Werts. Sie kommen erst danach hinzu, zwischen der Summe mit Umsatzsteuer und dem fälligen Betrag.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-112 | Gesamtbetrag der Rechnung einschließlich Umsatzsteuer | cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount |
| BT-109 | Gesamtbetrag der Rechnung ohne Umsatzsteuer | cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount |
| BT-110 | Gesamtbetrag der Umsatzsteuer | cac:TaxTotal/cbc:TaxAmount |
| BT-5 | Code für die Rechnungswährung | cbc:DocumentCurrencyCode |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Die Summe mit Umsatzsteuer wird aus dem Quellsystem kopiert, in dem die Umsatzsteuer anders gerundet wurde als die Umsatzsteuersumme, die ins XML geschrieben wird.
- Einer der beiden Eingangswerte wurde beim Mapping korrigiert, etwa die Umsatzsteuersumme aus der Aufschlüsselung neu berechnet, und die Summe mit Umsatzsteuer blieb, wie sie war.
- Die Summe mit Umsatzsteuer wird abzüglich einer Anzahlung oder mit bereits angewandter Bargeldrundung übermittelt; das gehört stattdessen in den fälligen Betrag.
- Die
currencyIDder Umsatzsteuersumme ist nicht derselbe Code wiecbc:DocumentCurrencyCode, sodass keine Umsatzsteuersumme gefunden wird. - Das
cac:TaxTotalfehlt, oder die Steuersumme in der Dokumentwährung wird doppelt ausgegeben.
So korrigieren Sie das Dokument
- Stellen Sie sicher, dass die Eingangswerte endgültig sind: die Summe ohne Umsatzsteuer (
BR-CO-13) und die Umsatzsteuersumme (BR-CO-14). - Prüfen Sie, dass genau ein
cac:TaxTotal/cbc:TaxAmountdie Dokumentwährung incurrencyIDträgt. - Addieren Sie die Summe ohne Umsatzsteuer und diese Umsatzsteuersumme mit Dezimalarithmetik und runden Sie auf zwei Nachkommastellen.
- Schreiben Sie das Ergebnis in
cac:LegalMonetaryTotal/cbc:TaxInclusiveAmountund berechnen Sie daraus den fälligen Betrag neu. Das prüft als NächstesBR-CO-16.
Das aufgezeichnete Beispiel hat eine Summe ohne Umsatzsteuer von 68.50, eine Umsatzsteuersumme von 11.70, eine Vorauszahlung von 10.00 und einen Rundungsbetrag von -0.20.
Erwartete Summe mit Umsatzsteuer: 68.50 + 11.70 = 80.20 Übermittelte Summe mit Umsatzsteuer (BT-112): 80.25, daher schlägt BR-CO-15 fehl Übermittelter fälliger Betrag: 70.00, also 80.20 - 10.00 + (-0.20) Gegenüber den übermittelten 80.25 erwartet BR-CO-16 80.25 - 10.00 + (-0.20) = 70.05, 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: 68.50 + 11.70 ergibt 80.20, die Summe mit Umsatzsteuer lautet aber 80.25
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<!-- both VAT breakdowns omitted from this fragment -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">80.25</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="GBP">1.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="GBP">3.50</cbc:ChargeTotalAmount>
<cbc:PrepaidAmount currencyID="GBP">10.00</cbc:PrepaidAmount>
<cbc:PayableRoundingAmount currencyID="GBP">-0.20</cbc:PayableRoundingAmount>
<cbc:PayableAmount currencyID="GBP">70.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Ausschnitt der korrigierten Rechnung: Die Summe mit Umsatzsteuer ist die Summe ohne Umsatzsteuer plus die Umsatzsteuersumme
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="GBP">66.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="GBP">68.50</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="GBP">80.20</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="GBP">1.00</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="GBP">3.50</cbc:ChargeTotalAmount>
<cbc:PrepaidAmount currencyID="GBP">10.00</cbc:PrepaidAmount>
<cbc:PayableRoundingAmount currencyID="GBP">-0.20</cbc:PayableRoundingAmount>
<cbc:PayableAmount currencyID="GBP">70.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>Nur cbc:TaxInclusiveAmount unterscheidet sich: 80.25 im fehlerhaften Dokument, 80.20 im korrigierten. Das fehlerhafte Dokument meldet außerdem BR-CO-16, weil der fällige Betrag von 70.00 aus 80.20 berechnet wurde und sich nicht aus den übermittelten 80.25 ergibt. Die Korrektur der Summe mit Umsatzsteuer behebt beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CO-15 und BR-CO-16. 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 demselben Fehler meldet dieselben zwei Befunde. - Ein Dokument ganz ohne
cac:TaxTotalmeldet diese Regel zusammen mitBR-CO-18und weiteren Regeln zur fehlenden Umsatzsteueraufschlüsselung. Zwei Steuersummen in der Dokumentwährung oder eine Umsatzsteuersumme, derencurrencyIDnicht die Dokumentwährung ist, melden jeweils diese Regel neben einem eigenen Peppol-Befund. - Wird eine Buchungswährung der Umsatzsteuer verwendet, stört das zusätzliche
cac:TaxTotalin dieser Währung diese Regel nicht.
Verwandte Regeln
- BR-CO-13 prüft die Summe ohne Umsatzsteuer, von der diese Addition ausgeht
- BR-CO-14 prüft die Umsatzsteuersumme gegen die Umsatzsteueraufschlüsselung
- BR-CO-16 leitet den fälligen Betrag aus der Summe mit Umsatzsteuer ab
- 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-15 (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.

