Auf dieser Seite
Die kurze Antwort
BR-O-08 schlägt fehl, wenn das cbc:TaxableAmount einer Aufschlüsselung für O vom Inhalt des Dokuments in O abweicht: dem cbc:LineExtensionAmount jeder Position in O, plus den Zuschlägen in O auf Wurzelebene, minus den Nachlässen in O auf Wurzelebene. Die aufgezeichnete Rechnung sendet 25.00, nur die Position, und vergisst den Loyalty discount über 5.00; richtig wäre 20.00.
Der Wert muss auf den Cent stimmen. O hat keine Sätze, nach denen gruppiert würde, und die Regel lässt keine Toleranz zu, also gibt es eine Summe pro Dokument, und sie wird exakt verglichen.
Was die Regel prüft
Die Regel wird an jeder cac:TaxCategory mit cbc:ID O im Schema VAT in cac:TaxTotal/cac:TaxSubtotal ausgewertet, und die Summe wird immer aus dem ganzen Dokument gebildet. Eine doppelte Aufschlüsselung für O mit den vollen 25.00 bestand diese Regel im Versuch zweimal und wurde BR-O-01 überlassen; aufgeteilt in 25.00 und 10.00 für zwei Positionen in O scheiterten beide Teile hier.
Positionen werden über cac:Item/cac:ClassifiedTaxCategory/cbc:ID gleich O ausgewählt, Nachlässe und Zuschläge über ihre eigene cac:TaxCategory/cbc:ID, und zwar nur direkt unter der Wurzel. Nachlässe und Zuschläge auf Positionsebene stecken bereits im Nettobetrag der Position und werden nicht doppelt gezählt.
Zuschläge werden addiert, Nachlässe abgezogen. Im Versuch scheiterten 30.00, das Ergebnis, wenn der Rabatt über 5.00 addiert statt abgezogen wird; ebenso 25.00 auf einer Rechnung, bei der ein Lieferzuschlag über 4.00 in O addiert werden musste, um 29.00 zu erreichen.
Die Genauigkeit wirkt in beide Richtungen: 25.01 gegenüber einer einzelnen Position in O über 25.00 meldete im Versuch diese Regel, während 25 anstelle von 25.00 bestand, weil die Werte als Zahlen verglichen werden.
| 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-92 | Betrag des Nachlasses auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cbc:Amount |
| 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:
- Der Steuerbasisbetrag wird aus der Summe der Positionsnettobeträge kopiert, sodass ein Rabatt oder Zuschlag in
Oauf Dokumentenebene ihn nie erreicht. - Beim Aufbau der Aufschlüsselung wird der Nachlass addiert statt abgezogen oder ein Zuschlag abgezogen.
- Beträge aus anderen Kategorien ohne Umsatzsteuer, etwa Positionen zum Nullsatz oder steuerbefreite Positionen, werden in den Wert für
Oeingerechnet. - Die Aufschlüsselung stammt aus einer Steuerzusammenfassung, die gespeichert wurde, bevor der Nachlass oder Zuschlag zum Auftrag hinzukam.
- Pro Position wird eine Aufschlüsselung für
Ogeschrieben, sodass jede nur einen Teil der Summe enthält.
So korrigieren Sie das Dokument
- Beginnen Sie mit den Positionen in
O: im aufgezeichneten Beispiel Position 1 mit einemcbc:LineExtensionAmountvon 25.00. Behalten Sie das Vorzeichen negativer Positionen bei. - Berücksichtigen Sie die Elemente
cac:AllowanceChargeinOauf Wurzelebene, Zuschläge (cbc:ChargeIndicatortrue) mit Plus und Nachlässe (false) mit Minus: hier nur denLoyalty discountüber 5.00, was 20.00 ergibt. - Schreiben Sie das Ergebnis mit zwei Nachkommastellen als
cbc:TaxableAmountdes einencac:TaxSubtotalfürOund lassen Sie seinen Steuerbetrag bei0.00, wieBR-O-09es verlangt. - Gleichen Sie mit
cbc:TaxExclusiveAmountab, das aus denselben Teilen gebildet wird: Auf einer Rechnung, die vollständig inOsteht, sind beide Werte gleich, im aufgezeichneten Beispiel 20.00.
Das aufgezeichnete Beispiel hat eine Position und einen Nachlass auf Dokumentenebene, beide in der Kategorie O, und keinen Zuschlag auf Dokumentenebene.
Nettobetrag der Position in O: 25.00 Zuschläge auf Dokumentenebene in O: keine, also + 0.00 Nachlass auf Dokumentenebene in O, der Treuerabatt: - 5.00 Erwarteter Steuerbasisbetrag für O: 25.00 + 0.00 - 5.00 = 20.00 Gesendet: 25.00, nur die Positionssumme, daher schlägt die 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: 25.00 Steuerbasisbetrag in O, obwohl der Rabatt in O über 5.00 den Inhalt in O auf 20.00 senkt
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<!-- reason code 95 and reason omitted from this fragment -->
<cbc:Amount currencyID="GBP">5.00</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>O</cbc:ID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>O</cbc:ID>
<!-- reason code and text omitted from this fragment -->
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<!-- line 1 in category O: LineExtensionAmount 25.00 -->Ausschnitt der korrigierten Rechnung: 25.00 - 5.00 = 20.00 Steuerbasisbetrag in O
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">20.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>O</cbc:ID>
<cbc:TaxExemptionReasonCode>VATEX-EU-O</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Not subject to VAT</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Nur das cbc:TaxableAmount für O unterscheidet sich: 25.00 in der fehlerhaften Rechnung und 20.00 in der korrigierten. Das fehlerhafte Dokument meldet nur BR-O-08. Seine Summen ziehen den Rabatt bereits ab, mit cbc:TaxExclusiveAmount und cbc:PayableAmount bei 20.00 in beiden Dokumenten, und nichts anderes darin reagiert auf den falschen Wert der Aufschlüsselung.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-O-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; bei einer Gutschrift summiert die Regel die Nettobeträge voncac:CreditNoteLine, und die so umgeschriebene fehlerhafte Rechnung meldete im Versuch erneut diese Regel. - Die Regel setzt eine Aufschlüsselung für
Ovoraus.BR-O-01verlangt genau das, undBR-O-09verlangt, dass ihr Steuerbetrag 0 ist. - Steuerbasisbeträge in anderen Kategorien prüfen eigene Regeln, etwa
BR-S-08für Aufschlüsselungen zum Normalsatz, das eine Abweichung unter 1.00 toleriert, wo diese Regel keine toleriert.
Verwandte Regeln
- BR-O-01 verlangt die einzige Aufschlüsselung für O, deren Steuerbasisbetrag diese Regel prüft
- BR-O-09 verlangt, dass der Steuerbetrag neben diesem Steuerbasisbetrag null ist
- BR-S-08 ist die Prüfung des Steuerbasisbetrags zum Normalsatz, nach Satz gruppiert und mit Toleranz
- BR-CO-13 prüft den Gesamtbetrag ohne Umsatzsteuer, gebildet aus denselben Positions-, Nachlass- und Zuschlagsbeträgen
- 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-O-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.

