PEPPOL-EN16931-R040: Abschlagsbetrag passt nicht zu Basis und Prozentsatz
Bei einem Nachlass oder Zuschlag stimmt der angegebene Betrag nicht mit Basisbetrag mal Prozentsatz überein. Meist eine Rundungs- oder Rechenabweichung der erzeugenden Software.
Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
Diese Meldung ist eine reine Rechenprüfung: Sobald du bei einem Nachlass oder Zuschlag Basisbetrag und Prozentsatz beide angibst, muss der Betrag exakt das Produkt daraus sein.
Was die Regel prüft
Nachlässe (englisch Allowance) und Zuschläge (Charge) können auf Dokument- und Positionsebene stehen. Jede dieser Gruppen kennt drei Zahlfelder: den Betrag (BT = Business Term, das nummerierte Feld der Norm; auf Dokumentebene BT-92 bzw. BT-99), den Basisbetrag (BT-93 bzw. BT-100) und den Prozentsatz (BT-94 bzw. BT-101). Basis und Prozentsatz sind optional. Sind aber beide gesetzt, prüft der Validator die Formel:
Betrag = Basisbetrag × Prozentsatz / 100
Erwartet wird das kaufmännisch auf zwei Nachkommastellen gerundete Ergebnis. Jede Abweichung, auch um einen Cent, löst den Fehler aus.
Warum sie in der Praxis fehlschlägt
Der häufigste Auslöser ist Rundung: Die Software berechnet den Rabatt intern mit mehr Nachkommastellen oder summiert positionsweise gerundete Teilrabatte, während der Validator stumpf Basis mal Prozent rechnet. Bei 3 % auf 1.234,56 EUR ergibt das 37,0368, gerundet 37,04. Steht in der Datei 37,03, bricht die Regel.
Zweiter Fall: Betrag und Prozentsatz wurden unabhängig voneinander gepflegt. Der Nutzer trägt einen ausgehandelten Festbetrag ein, das Feld Prozentsatz enthält aber noch einen alten oder gerundeten Wert, der rechnerisch nicht dazu passt.
Dritter Fall: Der Basisbetrag ist falsch befüllt, etwa mit dem Bruttobetrag statt der Netto-Zwischensumme, auf die sich der Prozentsatz eigentlich bezieht.
So behebst du den Fehler
Rechne die Formel für jeden Nachlass und Zuschlag einmal nach und korrigiere das abweichende Feld. Zwei saubere Wege:
- Du willst prozentual rabattieren: Betrag exakt als gerundetes Produkt aus Basis und Prozentsatz setzen.
- Du willst einen Festbetrag geben: Prozentsatz und Basisbetrag einfach weglassen. Beide Felder sind optional, nur der Betrag ist Pflicht. Ohne die beiden Felder prüft R040 nichts.
Wichtig: Basis und Prozentsatz nur paarweise angeben, sonst greifen R041 und R042. Belegschmied berechnet den Betrag beim Erzeugen automatisch aus Basis und Prozentsatz, dieser Fall kann dort nicht entstehen.
XML-Beispiel: vorher und nachher
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:CalculatedPercent>3</ram:CalculatedPercent>
<ram:BasisAmount>1234.56</ram:BasisAmount>
<!-- verletzt PEPPOL-EN16931-R040: 1234.56 * 3 / 100 = 37.04, nicht 37.03 -->
<ram:ActualAmount>37.03</ram:ActualAmount>
<ram:Reason>Rabatt</ram:Reason>
<!-- … -->
</ram:SpecifiedTradeAllowanceCharge>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
<ram:CalculatedPercent>3</ram:CalculatedPercent>
<ram:BasisAmount>1234.56</ram:BasisAmount>
<ram:ActualAmount>37.04</ram:ActualAmount>
<ram:Reason>Rabatt</ram:Reason>
<!-- … -->
</ram:SpecifiedTradeAllowanceCharge>
Rechnung selbst prüfen
Lade deine Datei hoch und sieh in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.
Regeln, die oft zusammen auftreten
- BR-31 – BR-31: Nachlass auf Dokumentenebene ohne Betrag
- BR-CO-11 – BR-CO-11: Nachlasssumme passt nicht zu den einzelnen Nachlässen
- BR-CO-12 – BR-CO-12: Zuschlagssumme passt nicht zu den einzelnen Zuschlägen
- PEPPOL-EN16931-R041 – PEPPOL-EN16931-R041: Prozentsatz ohne Basisbetrag beim Nachlass oder Zuschlag
- PEPPOL-EN16931-R042 – PEPPOL-EN16931-R042: Basisbetrag ohne Prozentsatz beim Nachlass oder Zuschlag