Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-R053 schlägt fehl, wenn die Anzahl der cac:TaxTotal-Elemente auf Wurzelebene, die ein cac:TaxSubtotal enthalten, nicht genau eins ist. Legen Sie jede Umsatzsteueraufschlüsselung, ein cac:TaxSubtotal je Kategorie und Steuersatz, in ein einziges cac:TaxTotal, dessen cbc:TaxAmount die Summe ihrer Steuerbeträge ist.
Null schlägt ebenfalls fehl. Ein Dokument ganz ohne Umsatzsteueraufschlüsselung meldet diese Regel neben den Regeln von EN 16931 für die fehlende Aufschlüsselung.
Was die Regel prüft
Die Regel läuft einmal auf dem Wurzelelement und zählt die Kindelemente cac:TaxTotal, die mindestens ein cac:TaxSubtotal enthalten. Sie besteht nur, wenn diese Anzahl genau eins ist.
Ein cac:TaxTotal ohne Aufschlüsselung wird nicht mitgezählt. Peppol erlaubt ein solches, und nur wenn cbc:TaxCurrencyCode vorhanden ist, für die Umsatzsteuersumme in der Buchungswährung; das setzt PEPPOL-EN16931-R054 durch.
Beträge werden nicht verglichen. Die aufgezeichnete Aufteilung hält die Zahlen richtig, 11.70 und 0.00 ergeben zusammen die frühere Umsatzsteuersumme, und wird trotzdem wegen der Anzahl abgelehnt.
Im Versuch meldete ein Dokument ohne cac:TaxTotal diese Regel zusammen mit BR-CO-15, BR-CO-18 und BR-S-01. Eines, dessen einzige Steuersumme ihre Aufschlüsselung verloren hatte, meldete sie zusammen mit BR-CO-18, BR-S-01 und PEPPOL-EN16931-R054.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BG-23 | Umsatzsteueraufschlüsselung | cac:TaxTotal/cac:TaxSubtotal |
| BT-110 | Gesamtbetrag der Umsatzsteuer | cac:TaxTotal/cbc:TaxAmount |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Das Mapping gibt ein
cac:TaxTotalje Steuersatz aus und bildet damit eine Quelltabelle ab, die eine Steuerzeile je Steuersatz enthält. - Eine Schleife über die Steuerkategorien öffnet und schließt die Steuersumme innerhalb der Schleife statt einmal um sie herum.
- Umsatzsteuer in einer zweiten Währung wird als vollständige Kopie der Aufschlüsselung übermittelt, was eine zweite Steuersumme mit Aufschlüsselung ergibt.
So korrigieren Sie das Dokument
- Öffnen Sie ein einziges
cac:TaxTotaldirekt unter dem Wurzelelement, nach etwaigencac:AllowanceChargeauf Dokumentenebene und vorcac:LegalMonetaryTotal. - Schreiben Sie darin ein
cac:TaxSubtotalfür jede im Dokument verwendete Kombination aus Umsatzsteuerkategorie und Steuersatz. - Setzen Sie sein
cbc:TaxAmountauf die Summe der Steuerbeträge der Aufschlüsselung, auf zwei Nachkommastellen gerundet, in der Dokumentwährung. - Muss die Umsatzsteuer zusätzlich in einer Buchungswährung angegeben werden, ergänzen Sie
cbc:TaxCurrencyCodeund ein zweitescac:TaxTotal, das nur eincbc:TaxAmountin dieser Währung enthält. Es trägt keine Aufschlüsselung und wird daher hier nicht mitgezählt.
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üsselungen zum Normalsatz und zum Nullsatz stehen in zwei getrennten Steuersummen
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>Ausschnitt der korrigierten Rechnung: eine Steuersumme von 11.70, die beide Aufschlüsselungen enthält
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">10.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>Z</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>Die fehlerhafte Rechnung schließt die Steuersumme nach der Aufschlüsselung zum Normalsatz und öffnet für die Aufschlüsselung zum Nullsatz eine zweite, mit eigener Umsatzsteuersumme von 0.00; die korrigierte Rechnung hält beide Aufschlüsselungen in einer Steuersumme von 11.70. Jede Steuersumme stimmt weiterhin mit ihrer eigenen Aufschlüsselung überein, daher besteht BR-CO-14. Das fehlerhafte Dokument meldet außerdem BR-CO-15 aus dem Prüfschritt EN 16931. Diese Regel erwartet genau eine Umsatzsteuersumme in der Dokumentwährung, die zur Summe ohne Umsatzsteuer addiert wird, findet zwei, 11.70 und 0.00, und schlägt wegen der Anzahl fehl, obwohl 68.50 + 11.70 + 0.00 weiterhin die Summe einschließlich Umsatzsteuer von 80.20 ergibt. Das Zusammenführen der Steuersummen behebt beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CO-15 und PEPPOL-EN16931-R053. 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. Im Versuch meldete eine auf dieselbe Weise aufgeteilte Gutschrift dieselben zwei Regeln. - Es ist eine Regel von Peppol BIS, und der Prüfschritt EN 16931 zählt Steuersummen als solche nicht. Eine aufgeteilte Aufschlüsselung scheitert trotzdem an beiden Prüfschritten, weil
BR-CO-15auf die zweite Umsatzsteuersumme in der Dokumentwährung reagiert. - Eine zweite Steuersumme, die die Aufschlüsselung in einer Buchungswährung wiederholt, wird ebenfalls gezählt. Im Versuch meldete eine EUR-Kopie der Aufschlüsselung zum Normalsatz unter anderem diese Regel,
PEPPOL-EN16931-R051für jeden ihrer Beträge undPEPPOL-EN16931-R054. Die Buchungswährung erhält ein einzelnescbc:TaxAmountohne Aufschlüsselung.
Verwandte Regeln
- BR-CO-15 schlägt neben dieser Regel fehl, weil sie eine einzige Umsatzsteuersumme in der Dokumentwährung verlangt
- PEPPOL-EN16931-R054 ist die Begleitregel für die Steuersumme ohne Aufschlüsselung
- BR-CO-14 prüft, ob die Umsatzsteuersumme der Summe ihrer Aufschlüsselung entspricht
- BR-CO-18 verlangt mindestens eine Umsatzsteueraufschlüsselung, also den Fall, in dem diese Regel null zählt
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): How Peppol invoice validation actually works
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-24.
Die offizielle Definition von PEPPOL-EN16931-R053 (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.

