Auf dieser Seite
Die kurze Antwort
BR-Z-08 schlägt fehl, wenn das cbc:TaxableAmount der Aufschlüsselung zum Nullsatz vom Inhalt zum Nullsatz des Dokuments abweicht: den Nettobeträgen der Positionen in Kategorie Z, plus Zuschlägen auf Wurzelebene in Z, minus Nachlässen auf Wurzelebene in Z. Im aufgezeichneten Beispiel sind das 25.00 + 4.00 = 29.00, und die Aufschlüsselung nannte 25.00, weil der Lieferzuschlag fehlte.
Der Vergleich ist exakt, sodass ein Wert, der um einen Penny danebenliegt, genauso sicher fehlschlägt wie einer, der einen ganzen Zuschlag vergisst.
Was die Regel prüft
Für jede cac:TaxCategory mit cbc:ID gleich Z im Schema VAT im cac:TaxTotal der Wurzel addiert die Regel das cbc:LineExtensionAmount der Positionen mit Artikelkategorie Z, addiert das cbc:Amount der Zuschläge auf Wurzelebene in Z und zieht das der Nachlässe auf Wurzelebene in Z ab.
Eine Toleranz gibt es in keine Richtung. Im Versuch schlugen 29.01 und 28.99 gegenüber berechneten 29.00 jeweils fehl, während 29 als dieselbe Zahl wie 29.00 bestand.
Das Vorzeichen eines Nachlasses zählt. Im Versuch meldete die Rechnung mit Mengenrabatt, dessen 2.50 addiert statt abgezogen waren, ein Steuerbasisbetrag von 27.50 gegenüber 22.50, diese Regel.
Inhalt zum Nullsatz wird nicht nach Satz gruppiert. Ein Nachlass oder Zuschlag in Kategorie Z zählt auch mit falschem Satz, weshalb ein Rabatt mit 20 in Kategorie Z zwar BR-Z-06 meldet, diese Regel aber erfüllt lässt.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-116 | Kategoriespezifischer Steuerbasisbetrag | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount |
| BT-118 | Code der Umsatzsteuerkategorie | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-131 | Nettobetrag der Rechnungsposition | cac:InvoiceLine/cbc:LineExtensionAmount (cac:CreditNoteLine/cbc:LineExtensionAmount in a credit note) |
| BT-99 | Betrag des Zuschlags auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount |
| BT-92 | Betrag des Nachlasses auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cbc:Amount |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Der Steuerbasisbetrag wird aus der Summe der Nettobeträge der Positionen übernommen, und ein auf Dokumentenebene hinzugefügter Lieferzuschlag zum Nullsatz erreicht ihn nie.
- Ein Rabatt auf Dokumentenebene wird auf die Gesamtbeträge angewendet, aber nicht auf die Aufschlüsselung zum Nullsatz, oder er wird addiert, wo er abgezogen werden müsste.
- Zuschläge auf Dokumentenebene werden standardmäßig der Aufschlüsselung zum Normalsatz zugeordnet, auch wenn ihre eigene Kategorie
Zist. - Die Aufschlüsselung wird aus Mengen und Preisen neu berechnet, und Rundung verschiebt sie um einen Penny gegenüber den im Dokument geschriebenen Nettobeträgen der Positionen.
So korrigieren Sie das Dokument
- Summieren Sie
cbc:LineExtensionAmountjeder Position mitcac:Item/cac:ClassifiedTaxCategory/cbc:IDgleichZund lassen Sie negative Positionen negativ. - Addieren Sie das
cbc:Amountjedescac:AllowanceChargeauf Wurzelebene in KategorieZmitcbc:ChargeIndicatorgleichtrueund ziehen Sie die mitfalseab. Lassen Sie Nachlässe und Zuschläge auf Positionsebene weg: Sie stecken bereits in den Positionsbeträgen. - Schreiben Sie das Ergebnis mit zwei Dezimalstellen als
cbc:TaxableAmountdes einencac:TaxSubtotalzum Nullsatz. Seincbc:TaxAmountbleibt0.00. - Prüfen Sie
cbc:TaxExclusiveAmountgesondert. Es umfasst jede Kategorie und wird vonBR-CO-13geprüft, nicht von dieser Regel.
Das aufgezeichnete Beispiel hat eine Position zum Nullsatz und einen Lieferzuschlag zum Nullsatz.
Position zum Nullsatz: 25.00 Zuschlag auf Dokumentenebene zum Nullsatz: + 4.00 Nachlässe auf Dokumentenebene zum Nullsatz: keine Steuerbasisbetrag für Z: 25.00 + 4.00 = 29.00 Gesendet: 25.00, also 4.00 zu wenig, und jede Differenz schlägt 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 Aufschlüsselung zum Nullsatz zählt die Position über 25.00, aber nicht den Lieferzuschlag über 4.00
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<!-- reason code and reason omitted from this fragment -->
<cbc:Amount currencyID="GBP">4.00</cbc:Amount>
<!-- tax category Z at 0 omitted from this fragment -->
</cac:AllowanceCharge>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- Zero rated line: LineExtensionAmount 25.00 -->Ausschnitt der korrigierten Rechnung: 25.00 + 4.00 = 29.00
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">29.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Nur das cbc:TaxableAmount zum Nullsatz unterscheidet sich: 25.00 in der fehlerhaften Rechnung, 29.00 in der korrigierten. Das fehlerhafte Dokument meldet nur BR-Z-08. Seine Gesamtbeträge enthalten den Lieferzuschlag und stimmen untereinander überein, und der Steuerbetrag der Aufschlüsselung ist in beiden 0.00, sodass keine Summenregel auf den falschen Steuerbasisbetrag reagiert.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-Z-08. 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 für UBL
InvoiceundCreditNote; eine Gutschrift summiert stattdessen ihrecac:CreditNoteLine-Elemente. Die Gutschriftsfassung des aufgezeichneten Beispiels meldete im Versuch diese Regel. - Wird vom Prüfschritt EN 16931 als fataler Befund an der
cac:TaxCategoryder Aufschlüsselung zum Nullsatz gemeldet. - Anders als
BR-S-08, das eine Differenz unter 1.00 zulässt und je Satz rechnet, hat diese Regel keine Toleranz und einen einzigen Wert zum Nullsatz.BR-Z-01stellt sicher, dass es nur eine Aufschlüsselung zum Nullsatz zum Vergleichen gibt.
Verwandte Regeln
- BR-Z-09 verlangt, dass der Steuerbetrag derselben Aufschlüsselung null ist
- BR-S-08 ist die Regel für den Steuerbasisbetrag zum Normalsatz, mit einer Toleranz und einem Wert je Satz
- BR-Z-01 verlangt genau eine Aufschlüsselung zum Nullsatz
- BR-CO-13 prüft die Summe ohne Umsatzsteuer, in die dieselben Positionen, Nachlässe und Zuschläge einfließen
- 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-28.1: Quelle geprüft am 2026-09-28, Erklärung zuletzt aktualisiert am 2026-09-28.
Die offizielle Definition von BR-Z-08 (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.

