Zum Inhalt springen

Ironfang Finance - Regelreferenz

BR-DEC-27: Den Zuschlagsbetrag der Position mit höchstens zwei Nachkommastellen schreiben

Ein Zuschlag auf einer Rechnungsposition hat ein cbc:Amount mit mehr als zwei Nachkommastellen. Runden Sie den Zuschlag der Position vor dem Schreiben auf zwei Nachkommastellen.

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

Auf dieser Seite

Die kurze Antwort

BR-DEC-27 schlägt fehl, wenn ein Zuschlag auf einer Position, also ein cac:AllowanceCharge innerhalb von cac:InvoiceLine oder cac:CreditNoteLine, dessen cbc:ChargeIndicator true ist, ein cbc:Amount mit mehr als zwei Nachkommastellen hat. Runden Sie den Zuschlag auf zwei Nachkommastellen und schreiben Sie ihn zum Beispiel als 2.50.

Ein Zuschlag auf die Position wird zum Nettobetrag der Position addiert und muss daher ein zahlbarer Betrag sein. Anders als ein Rabatt hat er keine Form auf Preisebene, die zusätzliche Nachkommastellen behalten dürfte: PEPPOL-EN16931-R044 lässt Zuschläge innerhalb von cac:Price überhaupt nicht zu.

Was die Regel prüft

Die Regel wählt die Nachlässe und Zuschläge einer Position aus, deren Kennzeichen true ist, und zählt, was in ihrem cbc:Amount nach dem Dezimalpunkt folgt. Mehr als zwei Zeichen scheitern, daher scheitert das aufgezeichnete 2.500, obwohl sein Wert 2.5 ist.

Weniger Nachkommastellen werden immer akzeptiert. Im Versuch bestand derselbe Zuschlag, als 2.5 geschrieben, alle Prüfschritte.

Ob der Zuschlag ein Prozentsatz ist, spielt keine Rolle. Im Versuch meldete ein fester Zuschlag von 2.500 ohne Grundbetrag und ohne Prozentsatz diese Regel und UBL-DT-01, genau wie der prozentuale Zuschlag.

Ein ungerundeter Zuschlag kann auch die Arithmetik stören. Im Versuch brachte 2.525 zusätzlich PEPPOL-EN16931-R040 und PEPPOL-EN16931-R120, weil er um mehr als 0.02 von 10 Prozent von 25.00 und von dem Nettobetrag der Position abweicht, den er ergeben sollte; 2.504 blieb innerhalb beider Toleranzen und meldete nur die Befunde zu den Nachkommastellen.

BegriffBedeutungUBL-Element
BT-141Betrag des Zuschlags auf Ebene der Rechnungspositioncac:InvoiceLine/cac:AllowanceCharge/cbc:Amount (cac:CreditNoteLine/cac:AllowanceCharge/cbc:Amount in a credit note), where cbc:ChargeIndicator is true

Wie es in einer Integration dazu kommt

Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:

  • Der Zuschlag wird als Prozentsatz des Positionswerts berechnet und mit der Genauigkeit der Berechnung geschrieben.
  • Zuschläge und Stückpreise teilen sich ein Zahlenformat, das auf drei Nachkommastellen eingestellt ist, weil manche Preise sie brauchen.
  • Ein Zuschlag, der in einer Spalte mit drei oder vier Nachkommastellen gespeichert ist, wird mit voller Genauigkeit serialisiert.

So korrigieren Sie das Dokument

  1. Runden Sie den Zuschlag der Position dort auf zwei Nachkommastellen, wo er berechnet wird, nach der Rundungsregel Ihres Fakturierungssystems.
  2. Schreiben Sie den gerundeten Wert in cbc:Amount im cac:AllowanceCharge der Position, dessen cbc:ChargeIndicator true ist, ohne Auffüllen und ohne Leerraum.
  3. Verwenden Sie beim Bilden des Nettobetrags der Position den gerundeten, nicht den ungerundeten Zuschlag, und halten Sie ihn innerhalb von 0.02 von Grundbetrag mal Prozentsatz geteilt durch 100, wenn Sie beides übermitteln.
  4. Formatieren Sie den Grundbetrag des Zuschlags, falls vorhanden, nach derselben Regel mit zwei Nachkommastellen; er wird gesondert geprüft.

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: ein Zuschlag von 10 Prozent auf 25.00, als 2.500 geschrieben

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">27.50</cbc:LineExtensionAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReason>Out-of-hours surcharge</cbc:AllowanceChargeReason>
    <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
    <cbc:Amount currencyID="GBP">2.500</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">25.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: der Zuschlag als 2.50 geschrieben, zwei Einheiten zu 12.5 ergeben den Rest der 27.50

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">27.50</cbc:LineExtensionAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReason>Out-of-hours surcharge</cbc:AllowanceChargeReason>
    <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
    <cbc:Amount currencyID="GBP">2.50</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">25.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
  <!-- 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 das cbc:Amount des Zuschlags ändert sich: 2.500 in der fehlerhaften Rechnung, 2.50 in der korrigierten. Beide entsprechen 10 Prozent des Grundbetrags von 25.00, und zwei Einheiten zu 12.5 plus der Zuschlag ergeben in beiden den Nettobetrag der Position von 27.50, sodass die Peppol-Arithmetik so oder so besteht. Das fehlerhafte Dokument meldet BR-DEC-27 am cac:AllowanceCharge der Position und UBL-DT-01 an dessen cbc:Amount: Jeder Betrag außer dem Artikelpreis und Rabatten auf Preisebene ist auf zwei Nachkommastellen begrenzt, ein Zuschlag auf die Position eingeschlossen. Das Umschreiben des einen Werts 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 Invoice und CreditNote. Im Versuch meldete eine Gutschriftsposition mit demselben, als 2.500 geschriebenen Zuschlag dasselbe Paar.
  • Zuschläge auf Dokumentenebene liegen außerhalb dieser Regel; BR-DEC-05 begrenzt sie auf dieselbe Weise.
  • Gemeldet wird sie vom Prüfschritt EN 16931. Der Peppol-Prüfschritt prüft Werte statt ihrer geschriebenen Form und kommt daher nur hinzu, wenn der Zuschlag auch rechnerisch falsch ist, wie der Fall 2.525 oben zeigt.

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