Auf dieser Seite
Die kurze Antwort
BR-DEC-25 schlägt fehl, wenn ein Nachlass auf einer Position, also ein cac:AllowanceCharge innerhalb von cac:InvoiceLine oder cac:CreditNoteLine mit cbc:ChargeIndicator gleich false, ein cbc:BaseAmount mit mehr als zwei Nachkommastellen hat. Schreiben Sie den Betrag, auf den der Prozentsatz des Nachlasses angewendet wurde, mit höchstens zwei Nachkommastellen, etwa 40.00.
Im aufgezeichneten Beispiel ist nur der Grundbetrag fehlerhaft: Der Nachlassbetrag von 2.00 und der Prozentsatz von 5 waren bereits in Ordnung. Dasselbe Element löst auch UBL-DT-01 aus, sodass ein aufgefüllter Grundbetrag zwei Befunde ergibt.
Was die Regel prüft
Die Regel wählt jeden Nachlass direkt innerhalb einer Position aus und zählt die Zeichen nach dem ersten Punkt in seinem cbc:BaseAmount; drei oder mehr scheitern. Ein Nachlass als fester Betrag ohne Grundbetrag hat nichts zu zählen und besteht.
Es zählt nur die geschriebene Form, nicht der Wert. Im Versuch war ein Grundbetrag von 40 ohne Befund gültig, während 40.004 genauso scheiterte wie das aufgezeichnete 40.000.
Der Grundbetrag eines Rabatts auf den Preis ist der Bruttopreis des Artikels in cac:Price/cac:AllowanceCharge/cbc:BaseAmount, und diese Regel erreicht ihn nicht. Im Versuch bestand ein als 15.000 geschriebener Bruttopreis alle Prüfschritte.
Die Peppol-Prüfung des Prozentsatzes liest dasselbe Element, aber nach seinem Wert. Im Versuch löste ein Grundbetrag von 40.500, der bei 5 Prozent nicht mehr den Nachlass von 2.00 ergibt, zusätzlich PEPPOL-EN16931-R040 aus; 40.004 blieb innerhalb ihrer Toleranz von 0.02 und tat es nicht.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-137 | Grundbetrag des Nachlasses auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge/cbc:BaseAmount (cac:CreditNoteLine/cac:AllowanceCharge/cbc:BaseAmount 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 Grundbetrag ist der Bruttowert der Position, Menge mal ein Stückpreis mit drei oder vier Nachkommastellen, und wird mit dieser Genauigkeit serialisiert.
- Der Nachlassbetrag wird vor dem Schreiben gerundet, der Grundbetrag, aus dem er berechnet wurde, aber unverändert durchgereicht.
- Der Grundbetrag liegt in einer Dezimalspalte mit drei Nachkommastellen, und der Serialisierer schreibt jede gespeicherte Ziffer, sodass aus 40 der Wert
40.000wird.
So korrigieren Sie das Dokument
- Runden Sie den Grundbetrag bei der Berechnung des Nachlasses auf zwei Nachkommastellen und wenden Sie den Prozentsatz auf den gerundeten Wert an.
- Schreiben Sie das Ergebnis in
cbc:BaseAmountimcac:AllowanceChargeder Position, nachcbc:Amount, ohne Ziffern nach der zweiten Nachkommastelle und ohne Leerraum. - Prüfen Sie den Nachlassbetrag gegen den gerundeten Grundbetrag:
PEPPOL-EN16931-R040erlaubt eine Abweichung von Grundbetrag mal Prozentsatz geteilt durch 100 von höchstens 0.02. - Wurde der Rabatt eigentlich auf den Stückpreis gewährt, bilden Sie ihn stattdessen in
cac:Price/cac:AllowanceChargeab, wo der Bruttopreis seine zusätzlichen Nachkommastellen behalten darf.
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, dessen Grundbetrag als 40.000 geschrieben ist
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, line net amount, 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.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.000</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: derselbe Grundbetrag als 40.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>Die fehlerhafte und die korrigierte Rechnung unterscheiden sich in einem Element: Das cbc:BaseAmount des Positionsnachlasses lautet in der einen 40.000 und in der anderen 40.00. Fünf Prozent von beidem ergeben den Nachlass von 2.00, den beide Dokumente tragen, sodass die Peppol-Prüfung des Prozentsatzes und der Nettobetrag der Position von 58.00 in beiden erfüllt sind. Das fehlerhafte Dokument meldet BR-DEC-25 am cac:AllowanceCharge der Position und UBL-DT-01 am cbc:BaseAmount selbst, weil ein Grundbetrag ein Betragselement wie jedes andere ist und nicht zu denen gehört, die UBL-DT-01 ausnimmt. Zwei Nachkommastellen beheben beide.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-DEC-25 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 eine Gutschrift mit einem Grundbetrag des Positionsnachlasses von40.000dieselben zwei Befunde. - Erfasst werden nur Nachlässe. Der Grundbetrag eines Zuschlags auf Positionsebene gehört zu
BR-DEC-28, der Grundbetrag eines Nachlasses auf Dokumentenebene zuBR-DEC-02. - Ein Grundbetrag ohne Prozentsatz ist ein eigenes Problem. Im Versuch kam nach dem Entfernen von
cbc:MultiplierFactorNumericaus der fehlerhaften PositionPEPPOL-EN16931-R042zu den beiden Befunden hinzu.
Verwandte Regeln
- BR-DEC-24 begrenzt den Betrag desselben Positionsnachlasses auf zwei Nachkommastellen
- BR-DEC-28 ist die entsprechende Grenze für den Grundbetrag eines Zuschlags auf Positionsebene
- UBL-DT-01 meldet den Grundbetrag ebenfalls, als einen der Beträge, die es auf zwei Nachkommastellen begrenzt
- PEPPOL-EN16931-R040 vergleicht den Nachlassbetrag mit diesem Grundbetrag und dem Prozentsatz
- 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-DEC-25 (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.

