Zum Inhalt springen

Ironfang Finance - Regelreferenz

PEPPOL-EN16931-R042: Den Prozentsatz zu einem Nachlass oder Zuschlag mit Grundbetrag ergänzen

Ein Nachlass oder Zuschlag, der einen Grundbetrag angibt, muss auch den Prozentsatz angeben; ein Nachlass oder Zuschlag als feste Summe sollte keines von beiden tragen.

Peppol BIS BillingFehler: Das Dokument ist ungültigNachlässe und Zuschläge

Auf dieser Seite

Die kurze Antwort

PEPPOL-EN16931-R042 schlägt für jedes cac:AllowanceCharge fehl, das cbc:BaseAmount, aber kein cbc:MultiplierFactorNumeric enthält. Ist der Betrag ein Prozentsatz dieses Grundbetrags, ergänzen Sie den Prozentsatz vor cbc:Amount.

Ist der Betrag eine feste Summe, hat der Grundbetrag keine Aufgabe: Entfernen Sie cbc:BaseAmount.

Was die Regel prüft

Die Regel wählt die cac:AllowanceCharge-Elemente direkt unter dem Wurzelelement des Dokuments oder direkt unter einer Position aus, die cbc:BaseAmount enthalten und denen cbc:MultiplierFactorNumeric fehlt. Die Auswahl selbst ist der Fehler; es werden keine Werte verglichen.

Nachlässe und Zuschläge werden identisch behandelt, und die Höhe des Grundbetrags ist unerheblich.

Wer nur cbc:Amount übermittelt, ohne Grundbetrag und ohne Prozentsatz, besteht die Regel.

BegriffBedeutungUBL-Element
BG-20Nachlässe auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = false]
BG-21Zuschläge auf Dokumentenebenecac:AllowanceCharge[cbc:ChargeIndicator = true]
BG-27Nachlässe auf Ebene der Rechnungspositioncac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false]
BG-28Zuschläge auf Ebene der Rechnungspositioncac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true]

Wie es in einer Integration dazu kommt

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

  • Das Mapping schreibt immer einen Grundbetrag, etwa die Zwischensumme der Position oder des Dokuments, auch bei Rabatten und Gebühren als feste Summe, die keinen Prozentsatz haben.
  • Der Prozentsatz ist im Quelldatensatz null, weil der Benutzer den Rabatt als Betrag erfasst hat.
  • Ein Prozentsatz von 0 wird vom Serialisierer als leer behandelt und weggelassen, während der Grundbetrag erhalten bleibt.
  • Der Prozentsatz steht in einer Preisliste oder Kundenvereinbarung und wird nie in den Rechnungsdatensatz übernommen.

So korrigieren Sie das Dokument

  1. Suchen Sie das im Befund genannte cac:AllowanceCharge, auf Dokumentenebene oder innerhalb einer Position.
  2. Stellen Sie fest, ob der Betrag aus einem Prozentsatz abgeleitet wurde. Wenn ja, ergänzen Sie cbc:MultiplierFactorNumeric mit diesem Prozentsatz, geschrieben als 10 für zehn Prozent. In UBL steht es vor cbc:Amount.
  3. Wenn nein, entfernen Sie cbc:BaseAmount. Rechnen Sie keinen Prozentsatz aus Betrag und Grundbetrag zurück, nur um das Element zu füllen, es sei denn, der Betrag ist tatsächlich so entstanden.
  4. Sobald beide vorhanden sind, prüfen Sie die drei Zahlen gegeneinander: PEPPOL-EN16931-R040 verlangt, dass der Betrag Grundbetrag x Prozentsatz / 100 mit einer Toleranz von 0.02 entspricht.

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 mit einem Grundbetrag von 35.00 und ohne Prozentsatz

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">3.50</cbc:Amount>
  <cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Ausschnitt der korrigierten Rechnung: Die 10 Prozent, die 3.50 ergeben haben, sind angegeben

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="GBP">3.50</cbc:Amount>
  <cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Das korrigierte Dokument ergänzt cbc:MultiplierFactorNumeric mit 10 vor cbc:Amount; sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-R042. Weder ein Betrag noch eine Summe ändert sich, daher bleiben die Rechenregeln unberührt.

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, auf Dokumentenebene und in cac:InvoiceLine oder cac:CreditNoteLine. Mit dem Validator für einen Nachlass auf Positionsebene in beiden Dokumentarten bestätigt.
  • Der Nachlass innerhalb von cac:Price wird nicht ausgewählt. Dort ist cbc:BaseAmount der Bruttopreis, es wird kein Prozentsatz erwartet, und stattdessen gilt PEPPOL-EN16931-R046.
  • Solange der Prozentsatz fehlt, vergleicht PEPPOL-EN16931-R040 die Zahlen für dieses Element nicht; ein Rechenfehler kann daher erst sichtbar werden, nachdem diese Regel behoben ist.

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-20.

Die offizielle Definition von PEPPOL-EN16931-R042 (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.