Auf dieser Seite
Die kurze Antwort
BR-DEC-24 schlägt fehl, wenn ein cac:AllowanceCharge auf einer Position mit cbc:ChargeIndicator gleich false ein cbc:Amount mit mehr als zwei Nachkommastellen hat. Schreiben Sie den Nachlassbetrag der Position mit höchstens zwei Nachkommastellen, etwa 2.00.
Ein Rabatt auf den Preis ist kein Nachlass auf die Position. Ein Nachlass innerhalb von cac:Price erklärt, wie der Nettopreis zustande kam, und darf wie der Preis selbst mehr Nachkommastellen behalten.
Was die Regel prüft
Die Regel wählt jeden Nachlass direkt innerhalb einer cac:InvoiceLine oder cac:CreditNoteLine aus und erlaubt höchstens zwei Zeichen nach dem Dezimalpunkt in seinem cbc:Amount. Das aufgezeichnete 2.000 scheitert allein am dritten Zeichen.
Nachlässe innerhalb von cac:Price liegen außerhalb ihrer Reichweite und auch außerhalb der von UBL-DT-01. Im Versuch war ein Preisnachlass von 0.005 auf einen Bruttopreis von 20.000 ohne Befund gültig.
Zuschläge auf Positionen und der Basisbetrag eines Nachlasses haben eigene Regeln, BR-DEC-27 und BR-DEC-25. Im Versuch meldete ein als 0.010 geschriebener Zuschlag auf einer Position die Regeln BR-DEC-27 und UBL-DT-01, nicht diese Regel.
Der Prozentsatz in cbc:MultiplierFactorNumeric ist kein Betrag. Im Versuch bestand er als 5.000 geschrieben jeden Prüfschritt.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-136 | Betrag des Nachlasses auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge/cbc:Amount (cac:CreditNoteLine/cac:AllowanceCharge/cbc:Amount in a credit note), where cbc:ChargeIndicator is false |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Der Positionsrabatt wird als Prozentsatz von Menge mal einem Preis mit drei Nachkommastellen berechnet und ungerundet geschrieben.
- Derselbe Formatierer schreibt den Preis und den Nachlass der Position und ist auf die Genauigkeit des Preises eingestellt.
- Ein im Quellsystem auf den Preis erfasster Rabatt wird auf einen Nachlass der Position abgebildet, ohne erneut gerundet zu werden.
So korrigieren Sie das Dokument
- Entscheiden Sie, ob der Rabatt zum Preis oder zur Position gehört. Ein Preisrabatt gehört in
cac:Price/cac:AllowanceChargeund darf die Genauigkeit des Preises behalten; ein Nachlass auf die Position verringert den Nettobetrag der Position und hat zwei Nachkommastellen. - Runden Sie bei einem Nachlass auf die Position den Betrag bei der Berechnung auf zwei Nachkommastellen und schreiben Sie ihn mit nicht mehr in
cbc:Amount. - Schreiben Sie den Basisbetrag eines prozentualen Nachlasses ebenfalls mit zwei Nachkommastellen, und halten Sie den Betrag konsistent mit Basisbetrag mal Prozentsatz.
- Berechnen Sie den Nettobetrag der Position mit dem gerundeten Nachlass neu, damit er weiterhin zu Menge, Preis und Zuschlägen passt.
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: ein Positionsrabatt von 5 Prozent auf 40.00, als 2.000 geschrieben
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note omitted from this fragment -->
<cbc:InvoicedQuantity unitCode="C62">3</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">58.00</cbc:LineExtensionAmount>
<!-- accounting cost and order line reference omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.000</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: derselbe Rabatt als 2.00 geschrieben
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
</cac:AllowanceCharge>Nur der Nachlassbetrag der Position ist anders geschrieben: 2.000 in der fehlerhaften Rechnung und 2.00 in der korrigierten. Der Nettobetrag der Position von 58.00 enthält bereits einen Rabatt von 2.00, daher ändert sich keine andere Zahl. Das fehlerhafte Dokument meldet BR-DEC-24 am cac:AllowanceCharge der Position und UBL-DT-01 am cbc:Amount darin. UBL-DT-01 begrenzt die Nachkommastellen jedes Betragselements im Dokument außer Artikelpreisen und Nachlässen auf einen Preis, und ein Nachlass auf die Position ist nicht ausgenommen; die beiden Befunde kommen also als Paar. Das Umschreiben des Betrags behebt beide.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-DEC-24 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. Im Versuch meldete die Gutschriftsvariante dasselbe Befundpaar. - Nachlässe auf Dokumentenebene gehören nicht hierher;
BR-DEC-01unterwirft sie derselben Grenze. - Die Positionsnummer im Ort des Befunds zeigt, welche Position zu korrigieren ist, wenn mehrere Positionen Nachlässe tragen.
Verwandte Regeln
- UBL-DT-01 meldet denselben Nachlassbetrag der Position als Teil seiner Grenze für alle Beträge
- BR-DEC-01 ist dieselbe Grenze für Nachlässe auf Dokumentenebene
- PEPPOL-EN16931-R120 prüft, dass der Nettobetrag der Position diesen Nachlass berücksichtigt
- PEPPOL-EN16931-R046 betrifft den Rabatt innerhalb des Preises, der nicht auf zwei Nachkommastellen begrenzt ist
- 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-24.
Die offizielle Definition von BR-DEC-24 (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.

