Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-R054 zählt die cac:TaxTotal-Elemente direkt unter dem Wurzelelement, die kein cac:TaxSubtotal enthalten. Ist cbc:TaxCurrencyCode vorhanden, muss es genau eines geben, das die Umsatzsteuersumme in der Buchungswährung trägt; ohne diesen Code darf es keines geben. Im aufgezeichneten Beispiel ist eine Steuersumme in EUR vorhanden, der Code, der EUR als Buchungswährung angibt, aber nicht; ergänzen Sie daher entweder cbc:TaxCurrencyCode oder entfernen Sie die zusätzliche Summe.
Welche der beiden Möglichkeiten richtig ist, ist eine geschäftliche Tatsache, die der Validator nicht entscheiden kann. Behalten Sie die zweite Summe nur, wenn der Verkäufer die Umsatzsteuer tatsächlich in dieser Währung bucht.
Was die Regel prüft
Die Regel läuft einmal je Dokument. Eine Steuersumme wird gezählt, wenn sie ein direktes Kindelement des Wurzelelements ist und überhaupt kein Kindelement cac:TaxSubtotal hat; die Steuersumme mit der Umsatzsteueraufschlüsselung wird nie gezählt.
Die erwartete Anzahl ist 1, wenn cbc:TaxCurrencyCode vorhanden ist, und 0, wenn nicht. Die Währung der gezählten Summe wird hier nicht untersucht; eine überzählige Summe in der Rechnungswährung zählt daher genauso wie eine in der Buchungswährung. Im Versuch ohne cbc:TaxCurrencyCode meldeten diese Regel und BR-CO-15 eine doppelte GBP-Summe.
Zwei Summen ohne Aufschlüsselung schlagen fehl, selbst wenn beide in der angegebenen Währung sind. Eine doppelte EUR-Summe neben einem cbc:TaxCurrencyCode gleich EUR meldete im Versuch nur diese Regel.
Die Summe in der Buchungswährung darf keine eigene Aufschlüsselung tragen. Im Versuch blieb, als die EUR-Summe ein cac:TaxSubtotal erhielt, keine Summe ohne Aufschlüsselung übrig; diese Regel schlug daher an, und PEPPOL-EN16931-R053 (zwei Summen mit Aufschlüsselung), PEPPOL-EN16931-R051 (EUR-Beträge, wo die Rechnungswährung verlangt ist) und BR-S-08 kamen hinzu.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-6 | Code für die Umsatzsteuer-Buchungswährung | cbc:TaxCurrencyCode |
| BT-111 | Gesamtbetrag der Umsatzsteuer in der Buchungswährung | cac:TaxTotal/cbc:TaxAmount (in the tax total without cac:TaxSubtotal) |
| BG-23 | Umsatzsteueraufschlüsselung | cac:TaxTotal/cac:TaxSubtotal |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Die umgerechnete Umsatzsteuersumme wird immer geschrieben, wenn der Quelldatensatz eine enthält, während
cbc:TaxCurrencyCodevon einer eigenen Einstellung abhängt, die ausgeschaltet ist. - Die Umsatzsteuersumme wird zweimal ausgegeben: einmal in der Steuersumme mit Aufschlüsselung und noch einmal als nackte Steuersumme in der Rechnungswährung.
- Die Buchungswährung ist angegeben, aber der Serialisierer gibt immer nur ein
cac:TaxTotalaus, sodass der umgerechnete Betrag nie erscheint. - Die umgerechnete Umsatzsteuer wird wie die Hauptsumme nach Kategorien aufgeschlüsselt, statt als einzelner Betrag übermittelt zu werden.
So korrigieren Sie das Dokument
- Stellen Sie fest, ob der Verkäufer die Umsatzsteuer in einer anderen Währung als der Rechnungswährung bucht.
- Wenn ja, schreiben Sie diesen Währungscode in
cbc:TaxCurrencyCode, direkt nachcbc:DocumentCurrencyCode, und behalten Sie genau ein zusätzlichescac:TaxTotal, das nurcbc:TaxAmountmit diesem Code alscurrencyIDenthält. - Wenn nein, löschen Sie jedes
cac:TaxTotal, das keincac:TaxSubtotalhat. Die Umsatzsteuersumme in der Rechnungswährung gehört in die Steuersumme mit der Aufschlüsselung. - Geben Sie der Summe in der Buchungswährung keine Aufschlüsselung, und schreiben Sie sie nicht zweimal.
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: eine Steuersumme in EUR ohne Aufschlüsselung, aber keine Umsatzsteuer-Buchungswährung angegeben
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<!-- parties omitted from this fragment -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<!-- VAT breakdown omitted from this fragment -->
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">5.80</cbc:TaxAmount>
</cac:TaxTotal>Ausschnitt der korrigierten Rechnung: EUR ist als Umsatzsteuer-Buchungswährung angegeben
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>
<!-- parties omitted from this fragment -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<!-- VAT breakdown omitted from this fragment -->
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">5.80</cbc:TaxAmount>
</cac:TaxTotal>Die korrigierte Rechnung ergänzt <cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode> nach der Dokumentwährung; beide Steuersummen sind in den zwei Dokumenten identisch. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-R054. Ohne angegebene Buchungswährung haben BR-53 und PEPPOL-EN16931-R055 nichts zu prüfen, und PEPPOL-EN16931-R051 nimmt Steuersummen ohne Aufschlüsselung von seiner Währungsprüfung aus; der verirrte EUR-Betrag wird daher nur von dieser Regel erfasst. Die EUR-Summe stattdessen zu entfernen, hätte ebenfalls zum Bestehen geführt.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-R054. 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 mit einer Steuersumme in EUR und ohnecbc:TaxCurrencyCodemeldete im Versuch nur diese Regel. - Wird im Peppol-Prüfschritt gemeldet. Daneben erscheinen
BR-53undPEPPOL-EN16931-R055, wenn die Buchungswährung angegeben ist, ihre Summe aber fehlt, undPEPPOL-EN16931-R005, wenn die angegebene Buchungswährung die Rechnungswährung selbst ist. - Ein Dokument, dessen einziges
cac:TaxTotalkeine Aufschlüsselung hat, meldet diese Regel zusammen mitBR-CO-18,PEPPOL-EN16931-R053und der Kategorieregel für seine Positionen: Diese einzige Summe zählt als eine ohne Aufschlüsselung.
Verwandte Regeln
- BR-53 verlangt die Umsatzsteuersumme in der Buchungswährung, die diese Regel zählt
- PEPPOL-EN16931-R053 ist das Gegenstück für die Steuersumme mit der Aufschlüsselung, die genau einmal vorkommen muss
- PEPPOL-EN16931-R005 lehnt eine Buchungswährung ab, die der Rechnungswährung entspricht, und zieht diese Regel nach sich
- PEPPOL-EN16931-R055 vergleicht das Vorzeichen der beiden Umsatzsteuersummen, sobald beide vorhanden sind
- 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-R054 (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.

