Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-DEC-01: Den Nachlassbetrag auf Dokumentenebene mit höchstens zwei Nachkommastellen schreiben

Ein Nachlassbetrag auf Dokumentenebene hat mehr als zwei Nachkommastellen. Schreiben Sie höchstens zwei: 1.00 ist gültig, 1.000 schlägt fehl.

EN 16931Fehler: Das Dokument ist ungültigNachlässe und Zuschläge

Auf dieser Seite

Die kurze Antwort

BR-DEC-01 schlägt fehl, wenn das cbc:Amount eines Nachlasses auf Dokumentenebene, also eines cac:AllowanceCharge direkt unter dem Wurzelelement mit cbc:ChargeIndicator gleich false, mehr als zwei Zeichen nach dem Dezimalpunkt hat. Runden Sie den Nachlass auf zwei Nachkommastellen und schreiben Sie ihn mit nicht mehr.

Das aufgezeichnete 1.000 ist als Zahl gleich 1.00 und schlägt trotzdem fehl, weil die Prüfung den Text so liest, wie er geschrieben ist. UBL-DT-01 wird für dasselbe cbc:Amount gemeldet, da diese Regel dieselbe Grenze von zwei Nachkommastellen allgemein auf Beträge anwendet.

Was die Regel prüft

Die Regel wählt jedes cac:AllowanceCharge aus, das direktes Kind des Wurzelelements Invoice oder CreditNote ist und dessen cbc:ChargeIndicator false ist, nimmt den Text seines cbc:Amount und zählt, was nach dem ersten Punkt folgt. Mehr als zwei Zeichen schlagen fehl.

Eine ganze Zahl hat nach einem Dezimalpunkt nichts zu zählen; im Versuch war ein Nachlass auf Dokumentenebene von 1 ohne Befund gültig.

Jedes Zeichen nach dem Punkt zählt, ob Ziffer oder nicht. Im Versuch schlug 1.00 mit einem folgenden Leerzeichen innerhalb des Elements bei dieser Regel fehl, obwohl das Schema es als Zahl akzeptiert.

Benachbarte Beträge haben eigene Regeln. Ein Zuschlag auf Dokumentenebene ist BR-DEC-05, der Basisbetrag des Nachlasses ist BR-DEC-02, und Nachlässe auf einer Position sind BR-DEC-24. Im Versuch meldete ein Zuschlag auf Dokumentenebene von 3.500 die Regeln BR-DEC-05 und UBL-DT-01, nicht diese Regel.

BegriffBedeutungUBL-Element
BT-92Betrag des Nachlasses auf Dokumentenebenecac:AllowanceCharge/cbc:Amount (where cac:AllowanceCharge/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 Rabatt wird mit drei oder vier Nachkommastellen gespeichert und mit der vollen Skala der Spalte serialisiert.
  • Ein einziger Zahlenformatierer bedient das ganze Dokument und ist auf die Genauigkeit eingestellt, die die Einzelpreise brauchen.
  • Der Nachlass ist ein Prozentsatz einer Summe und wird vor dem Runden geschrieben. Im Versuch verletzte ein ungerundetes 1.005 auch BR-CO-11, weil die Summe der Nachlässe von 1.00 nicht mehr dazu passte.

So korrigieren Sie das Dokument

  1. Runden Sie den Nachlassbetrag einmal auf zwei Nachkommastellen, wenn er berechnet wird, mit der Rundung, die Ihre Regeln für die Rechnungsstellung vorgeben.
  2. Formatieren Sie den Wert mit höchstens zwei Nachkommastellen und ohne umgebende Leerzeichen, und schreiben Sie ihn in cbc:Amount im cac:AllowanceCharge auf Dokumentenebene.
  3. Bilden Sie cbc:AllowanceTotalAmount aus den gerundeten Nachlassbeträgen und daraus die Summe ohne Umsatzsteuer, damit jede Zahl mit dem Geschriebenen übereinstimmt.
  4. Ist der Nachlass ein Prozentsatz eines Basisbetrags, schreiben Sie auch den Basisbetrag mit zwei Nachkommastellen; für ihn gilt eine eigene Grenze.

Korrigierte Rechnung prüfen

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 Rabatt auf Dokumentenebene ist als 1.000 geschrieben

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.000</cbc:Amount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Ausschnitt der korrigierten Rechnung: derselbe Rabatt als 1.00 geschrieben

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.00</cbc:Amount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Nur der Text von cbc:Amount im Nachlass unterscheidet sich: 1.000 in der fehlerhaften Rechnung, 1.00 in der korrigierten, also derselbe Wert. Die Summe der Nachlässe und die übrigen Summen wurden auf 1.00 aufgebaut, daher ist keine von ihnen betroffen. Das fehlerhafte Dokument meldet zwei Befunde der EN 16931 für das eine Element: BR-DEC-01 am cac:AllowanceCharge und UBL-DT-01 an dessen cbc:Amount. UBL-DT-01 begrenzt jedes Element, dessen Name auf Amount endet, auf zwei Nachkommastellen und nimmt nur den Artikelnettopreis und Nachlässe innerhalb von cac:Price aus; ein Nachlass auf Dokumentenebene, der diese Regel verletzt, verletzt daher auch jene. Zwei Nachkommastellen zu schreiben behebt beide.

Was der Validator gemeldet hat

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 Invoice und CreditNote. Im Versuch meldete eine Gutschrift mit einem Nachlass auf Dokumentenebene von 1.000 dasselbe Befundpaar.
  • Die Zählung ist für jede Währung gleich, auch für solche, deren kleinste Einheit nicht zwei Stellen hat, denn currencyID spielt dabei keine Rolle.
  • Ein Dezimalkomma erreicht diese Regel nie. Im Versuch schlug 1,00 im XSD-Prüfschritt fehl, und die Prüfschritte EN 16931 und Peppol wurden übersprungen.

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-01 (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.