Auf dieser Seite
Die kurze Antwort
BR-DEC-23 schlägt fehl, wenn cbc:LineExtensionAmount einer Position mit mehr als zwei Nachkommastellen geschrieben ist. Runden Sie den Nettobetrag der Position auf zwei Nachkommastellen und formatieren Sie ihn so: 25.00, nicht 25.000.
Die Prüfung zählt Zeichen; sie vergleicht keine Zahlen. 25.000 ist derselbe Betrag wie 25.00 und schlägt trotzdem fehl. Das Dokument meldet gleichzeitig UBL-DT-01, die allgemeine Form derselben Grenze für jedes Betragselement.
Was die Regel prüft
Für jede cac:InvoiceLine oder cac:CreditNoteLine nimmt die Regel den Text von cbc:LineExtensionAmount, betrachtet alles nach dem ersten Dezimalpunkt und verlangt, dass es höchstens zwei Zeichen lang ist.
Weniger Nachkommastellen sind in Ordnung. 25, 25.0 und 25.00 bestehen alle.
Nachgestellte Nullen zählen zur Grenze, ebenso Leerzeichen. 25.000 schlägt fehl, und im Versuch schlug auch 25.00 mit folgenden Leerzeichen innerhalb des Elements fehl, obwohl das Schema es als Zahl akzeptiert.
Die Regel liest nur den Nettobetrag der Position. Der Artikelnettopreis ist nicht auf zwei Nachkommastellen begrenzt: Ein Preis von 12.500 war ohne Befund gültig. Die Positionssumme in cac:LegalMonetaryTotal hat eine eigene Nachkommastellenregel.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-131 | Nettobetrag der Rechnungsposition | cac:InvoiceLine/cbc:LineExtensionAmount |
| BT-131 | Nettobetrag der Rechnungsposition (Gutschrift) | cac:CreditNoteLine/cbc:LineExtensionAmount |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Der Nettobetrag der Position wird mit derselben Genauigkeit formatiert wie der Einzelpreis oder die Menge, die zu Recht mehr Nachkommastellen tragen.
- Menge mal Preis wird ungerundet ausgegeben, zum Beispiel 3 zu je 19.995, was 59.985 ergibt.
- Eine Datenbankspalte vom Typ decimal mit drei oder vier Stellen wird mit ihrer vollen Skala serialisiert, nachgestellte Nullen eingeschlossen.
- Ein Formatierer füllt den Wert auf eine feste Breite auf, und die Auffüllung landet innerhalb des Elements.
So korrigieren Sie das Dokument
- Berechnen Sie den Nettobetrag der Position mit Dezimalarithmetik: Menge mal Nettopreis, plus Zuschläge der Position, minus Nachlässe der Position.
- Runden Sie das Ergebnis einmal auf zwei Nachkommastellen, am Ende. Behalten Sie die zusätzliche Genauigkeit bei Preis und Menge, wo sie erlaubt ist.
- Formatieren Sie mit genau zwei Nachkommastellen und ohne umgebende Leerzeichen, und schreiben Sie das Ergebnis in
cbc:LineExtensionAmount. - Bilden Sie die Positionssumme des Dokuments aus den gerundeten Positionsbeträgen, damit die Rundung keine Lücke öffnet, die
BR-CO-10dann meldet.
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: Der Nettobetrag der Position hat drei Nachkommastellen
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.000</cbc:LineExtensionAmount>
<!-- item omitted from this fragment -->
<cac:Price>
<cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: derselbe Betrag mit zwei Nachkommastellen
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<!-- item omitted from this fragment -->
<cac:Price>
<cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>Nur die Formatierung von cbc:LineExtensionAmount unterscheidet sich: 25.000 wird zu 25.00. Das fehlerhafte Dokument meldet zwei Befunde im Prüfschritt EN 16931. BR-DEC-23 steht an der Position und UBL-DT-01 am Betragselement selbst: Diese Regel wendet die Grenze von zwei Nachkommastellen auf jedes Element an, dessen Name auf Amount endet, außer cbc:PriceAmount und den Beträgen eines Nachlasses innerhalb von cac:Price; ein Nettobetrag einer Position, der BR-DEC-23 verletzt, verletzt also auch sie. Eine Korrektur behebt beide. Das zweite aufgezeichnete Beispiel ist eine Gutschrift mit demselben Wert an cac:CreditNoteLine, und sie meldet dasselbe Paar.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-DEC-23 und UBL-DT-01. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.Fehlerhaftes XML herunterladenKorrigiertes XML herunterladen
- Die fehlerhafte Gutschrift meldet BR-DEC-23 und UBL-DT-01. 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
cac:InvoiceLinein einerInvoiceundcac:CreditNoteLinein einerCreditNote, mit identischem Verhalten. - Die Grenze beträgt zwei Nachkommastellen, unabhängig von der Währung. Die Regel betrachtet
currencyIDnicht. - Andere Zahlenformate erreichen diese Regel nie. Ein Komma als Dezimaltrennzeichen oder ein Exponent wie
2.5E1scheitert am XSD-Prüfschritt, und die Prüfschritte EN 16931 und Peppol werden dann übersprungen. - Negative Beträge werden genauso behandelt: Das Vorzeichen steht vor dem Dezimalpunkt und wird nicht gezählt.
Verwandte Regeln
- BR-CO-10 prüft, dass die gerundeten Nettobeträge der Positionen die Positionssumme des Dokuments ergeben
- PEPPOL-EN16931-R120 prüft den Nettobetrag der Position gegen Menge, Preis, Nachlässe und Zuschläge
- BR-27 ist die andere Regel für dieselben Positionswerte: Der Nettopreis darf nicht negativ sein
- 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-DEC-23 (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.

