Auf dieser Seite
Die kurze Antwort
BR-DEC-02 schlägt fehl, wenn ein Nachlass auf Dokumentenebene, also ein cac:AllowanceCharge unter dem Wurzelelement mit cbc:ChargeIndicator gleich false, sein cbc:BaseAmount mit mehr als zwei Zeichen nach dem Dezimalpunkt angibt. Schreiben Sie den Grundbetrag des Rabatts mit höchstens zwei Nachkommastellen: 50.00, nicht 50.000.
Der Grundbetrag ist die Zahl, von der ein prozentualer Rabatt berechnet wird; er steht daher nur neben cbc:MultiplierFactorNumeric. Der aufgezeichnete Grundbetrag von 50.000 für einen Rabatt von 2 Prozent hat den richtigen Wert und eine aufgefüllte Null, und UBL-DT-01 meldet dasselbe cbc:BaseAmount neben dieser Regel.
Was die Regel prüft
Die Regel besucht jeden Nachlass direkt unter dem Wurzelelement Invoice oder CreditNote, nimmt den Text seines cbc:BaseAmount und zählt die Zeichen nach dem ersten Punkt; drei oder mehr schlagen fehl. Ein Rabatt als feste Summe trägt keinen Grundbetrag; es gibt also nichts zu zählen, und er besteht.
Geprüft wird nur die Form des Grundbetrags, nicht, ob er den Nachlass ergibt. Im Versuch meldete ein Grundbetrag von 50.004 nur diese Regel und UBL-DT-01: 2 Prozent davon sind 1.00008, was PEPPOL-EN16931-R040 gegenüber dem Nachlass von 1.00 akzeptiert, weil diese Regel 0.02 in beide Richtungen zulässt.
Das Kennzeichen entscheidet, welche Regel einen Grundbetrag zählt. Bei einem Zuschlag auf Dokumentenebene, mit cbc:ChargeIndicator gleich true, gehört er zu BR-DEC-06; den Bruttopreis innerhalb von cac:Price lassen beide Regeln und auch UBL-DT-01 unberührt. Im Versuch war ein Nachlass auf den Preis von 1.000 bei einem Bruttopreis von 6.000 ohne Befund gültig.
Weniger Nachkommastellen sind immer in Ordnung. Im Versuch war der als ganze Zahl 50 geschriebene Grundbetrag gültig.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-93 | Grundbetrag des Nachlasses auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cbc:BaseAmount |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Der Grundbetrag ist die Zwischensumme, auf die sich der Rabatt bezieht, aus Positionsbeträgen mit drei oder vier Nachkommastellen addiert und ohne Rundung geschrieben.
- Der Nachlassbetrag wird vor dem Schreiben gerundet, der Grundbetrag, aus dem er entstand, wird aber direkt aus der Preis-Engine übernommen.
- Eine Dezimalspalte mit einer Skala von drei speichert 50 als 50.000, und der Serialisierer schreibt die volle Skala.
So korrigieren Sie das Dokument
- Runden Sie den Grundbetrag dort auf zwei Nachkommastellen, wo der Rabatt berechnet wird, und wenden Sie den Prozentsatz dann auf den gerundeten Grundbetrag an.
- Schreiben Sie ihn in
cbc:BaseAmountimcac:AllowanceChargeauf Dokumentenebene, mit höchstens zwei Nachkommastellen und ohne Leerzeichen. - Runden Sie auch das
cbc:Amountdes Nachlasses auf zwei Nachkommastellen und halten Sie es innerhalb von 0.02 von Grundbetrag mal Prozentsatz durch 100, damitPEPPOL-EN16931-R040weiterhin übereinstimmt. - Ist der Rabatt in Wirklichkeit eine feste Summe, lassen Sie Grundbetrag und Prozentsatz beide weg, statt einen Grundbetrag zu runden, den niemand braucht.
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 Rabatt auf Dokumentenebene von 2 Prozent, dessen Grundbetrag als 50.000 geschrieben ist
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>2</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">50.000</cbc:BaseAmount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Ausschnitt der korrigierten Rechnung: derselbe Grundbetrag als 50.00 geschrieben
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>2</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">50.00</cbc:BaseAmount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Die fehlerhafte und die korrigierte Rechnung unterscheiden sich in einem Element, dem Grundbetrag des Rabatts auf Dokumentenebene: 50.000 gegenüber 50.00. Beide geben den Rabatt als 2 Prozent dieses Grundbetrags an, was den Nachlass von 1.00 ergibt, mit dem die Summen bereits rechnen. Das fehlerhafte Dokument meldet BR-DEC-02 am ersten cac:AllowanceCharge und UBL-DT-01 an dessen cbc:BaseAmount. UBL-DT-01 wendet zwei Nachkommastellen auf jedes als Betrag benannte Element an, cbc:BaseAmount eingeschlossen, und nimmt nur den Artikelnettopreis und die Beträge eines Nachlasses auf Preisebene aus; ein Grundbetrag eines Nachlasses, der diese Regel verletzt, verletzt daher auch jene. Die korrigierte Rechnung ist das größere Beispiel, dessen Rabatt als Prozentsatz neu angegeben ist, und sie ist ohne Befund gültig.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-DEC-02 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 UBL
InvoiceundCreditNote. Im Versuch meldete eine Gutschrift mit demselben Rabatt auf Dokumentenebene von 2 Prozent auf einen Grundbetrag von50.000dieselben zwei Befunde. - Die Grenze liegt in jeder Währung bei zwei Nachkommastellen;
currencyIDwird nicht gelesen. - Peppol verknüpft den Grundbetrag mit dem Prozentsatz:
PEPPOL-EN16931-R041verlangt einen Grundbetrag, wenn ein Prozentsatz angegeben ist, undPEPPOL-EN16931-R042verlangt einen Prozentsatz, wenn ein Grundbetrag angegeben ist. In einem Dokument, das Peppol besteht, erscheint ein Grundbetrag daher nur bei einem prozentualen Nachlass.
Verwandte Regeln
- UBL-DT-01 meldet den Grundbetrag des Nachlasses im selben Lauf, als Teil seiner Grenze für jedes Betragselement
- PEPPOL-EN16931-R040 prüft den Nachlassbetrag gegen diesen Grundbetrag und den Prozentsatz
- BR-DEC-01 begrenzt den Betrag desselben Nachlasses auf Dokumentenebene auf zwei Nachkommastellen
- BR-DEC-06 ist die entsprechende Grenze für den Grundbetrag eines Zuschlags auf Dokumentenebene
- 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-02 (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.

