PEPPOL-EN16931-R040: Nachlassbetrag passt nicht zum Prozentsatz
Sind Grundbetrag und Prozentsatz eines Nachlasses oder Zuschlags angegeben, muss der Betrag Grundbetrag mal Prozentsatz geteilt durch 100 sein.
- Regelwerk
- XRechnung (KoSIT)
- Syntax
- UBL und CII
- Betroffene Felder
- –
Offizieller Regeltext
Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
Regeltext aus dem XRechnung-Schematron in Version 2.6.0 (KoSIT), Lizenz Apache 2.0; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31. Die Regel stammt aus dem Peppol-Regelwerk und ist Bestandteil des XRechnung-Schematron.
Schweregrad
- UBL-Rechnung: Fehler
- UBL-Gutschrift: Fehler
- CII: Fehler
Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.
Typische Ursachen
Der Prozentsatz wird gerundet ausgegeben oder der Grundbetrag stammt aus einem anderen Rechenstand.
So behebst du den Fehler
Den Betrag aus den übertragenen Werten berechnen oder Grundbetrag und Prozentsatz weglassen.
Der Prüfausdruck erlaubt eine Abweichung von 0,02 (bei HUF 0,5).
Geprüftes Beispiel: falsch und richtig
Die Auszüge stammen aus vollständigen, synthetischen Rechnungen des E-Rechnungs-Testkorpus. Geänderte Zeilen sind hervorgehoben. Beide Dateien werden in den automatischen Tests mit dem KoSIT-Validator geprüft.
Beispiel in UBL
Änderung gegenüber der gültigen Rechnung: Nachlassbetrag passt nicht zu Grundbetrag und Prozentsatz.
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Treuerabatt</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>4</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">25.08</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">501.55</cbc:BaseAmount><cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Treuerabatt</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">25.08</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">501.55</cbc:BaseAmount>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: peppol-r040-prozent-passt-nicht_ubl.xml (falsch) und belegrabatt_ubl.xml (richtig).
Beispiel in CII
Änderung gegenüber der gültigen Rechnung: Nachlassbetrag passt nicht zu Grundbetrag und Prozentsatz.
<udt:Indicator>false</udt:Indicator>
</ram:ChargeIndicator>
<ram:CalculationPercent>4</ram:CalculationPercent>
<ram:BasisAmount>501.55</ram:BasisAmount>
<ram:ActualAmount>25.08</ram:ActualAmount> <udt:Indicator>false</udt:Indicator>
</ram:ChargeIndicator>
<ram:CalculationPercent>5</ram:CalculationPercent>
<ram:BasisAmount>501.55</ram:BasisAmount>
<ram:ActualAmount>25.08</ram:ActualAmount>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: peppol-r040-prozent-passt-nicht_cii.xml (falsch) und belegrabatt_cii.xml (richtig).
Testdateien zu PEPPOL-EN16931-R040
- peppol-r040-prozent-passt-nicht_ubl.xml – Nachlassbetrag passt nicht zu Grundbetrag und Prozentsatz
- peppol-r040-prozent-passt-nicht_cii.xml – Nachlassbetrag passt nicht zu Grundbetrag und Prozentsatz
Technische Details: Kontext und Prüfausdruck aus dem Schematron
CII
Kontext:
ram:SpecifiedTradeAllowanceCharge
Prüfausdruck:
not(ram:CalculationPercent and ram:BasisAmount) or u:slack(if (ram:ActualAmount) then ram:ActualAmount else 0, (xs:decimal(ram:BasisAmount) * xs:decimal(ram:CalculationPercent)) div 100, $slackValue)
UBL
Kontext:
ubl-invoice:Invoice/cac:AllowanceCharge | ubl-invoice:Invoice/cac:InvoiceLine/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:CreditNoteLine/cac:AllowanceCharge
Prüfausdruck:
not(cbc:MultiplierFactorNumeric and cbc:BaseAmount) or u:slack(if (cbc:Amount) then cbc:Amount else 0, (xs:decimal(cbc:BaseAmount) * xs:decimal(cbc:MultiplierFactorNumeric)) div 100, $slackValue)
Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.