Offizieller Regeltext
[PEPPOL-EN16931-R040] Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
Der normative Text ist Englisch und wird unverändert zitiert.
Warum dieser Fehler auftritt
Gibt ein Nachlass oder Zuschlag sowohl Basisbetrag als auch Prozentsatz an, muss der Betrag Basis x Prozentsatz / 100 entsprechen, mit einer Toleranz von 0.02. Die Regel prüft cbc:Amount gegen cbc:BaseAmount und cbc:MultiplierFactorNumeric in cac:AllowanceCharge auf Dokument- und Positionsebene (UBL) bzw. ram:ActualAmount gegen ram:BasisAmount und ram:CalculationPercent in ram:SpecifiedTradeAllowanceCharge (CII). Sie schlägt fehl, wenn der Prozentsatz als Bruch (0.10 statt 10) geschrieben wird, der Basisbetrag sich auf eine andere Basis bezieht als die, aus der der Betrag berechnet wurde, oder anders gerundet wurde.
So beheben Sie den Fehler
Formel: Amount = round(BaseAmount x MultiplierFactorNumeric / 100, 2). Den Prozentsatz als Prozentzahl schreiben (10 für 10 %). BaseAmount auf den Betrag setzen, auf den der Rabatt tatsächlich angewendet wurde (meist die Summe der betroffenen Positionen), und Amount daraus berechnen. Lässt sich keine konsistente Basis liefern, cbc:BaseAmount und cbc:MultiplierFactorNumeric beide weglassen und nur cbc:Amount angeben, was immer erlaubt ist.
Beispiel (gültig)
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Rabatt</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">25.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">250.00</cbc:BaseAmount>
<cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:AllowanceCharge>
Was der Validator prüft
Geprüftes Element (Kontext):
UBL
ubl-invoice:Invoice/cac:AllowanceCharge | ubl-invoice:Invoice/cac:InvoiceLine/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:AllowanceCharge | ubl-creditnote:CreditNote/cac:CreditNoteLine/cac:AllowanceChargeTest (XPath):
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, 0.02)CII
ram:SpecifiedTradeAllowanceChargeTest (XPath):
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, 0.02)
Rechnung prüfen
Legen Sie Ihre XML- oder PDF-Datei im Validator ab; jede verletzte Regel ist mit ihrer Seite hier verlinkt. Kostenlos, ohne Konto, die Datei wird nicht gespeichert.
Dieselbe Prüfung per API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateVerwandte Regeln
PEPPOL-EN16931-R001Geschäftsprozess-Kennung (BT-23) fehltPEPPOL-EN16931-R002No more than one note is allowed on document level, unless both the buyer and seller…PEPPOL-EN16931-R003Weder Käuferreferenz noch Bestellreferenz angegebenPEPPOL-EN16931-R004Spezifikationskennung ist nicht die Peppol-BIS-Billing-3.0-KennungPEPPOL-EN16931-R005Steuerwährung ist gleich der RechnungswährungPEPPOL-EN16931-R006Only one invoiced object is allowed on document levelPEPPOL-EN16931-R007Geschäftsprozess-Kennung hat das falsche FormatPEPPOL-EN16931-R008Dokument enthält leere Elemente
Häufige Fragen
Was bedeutet PEPPOL-EN16931-R040?
PEPPOL-EN16931-R040 ist eine Peppol-BIS-Billing-3.0-Regel: Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists
Wird meine Rechnung wegen PEPPOL-EN16931-R040 abgelehnt?
Ja. PEPPOL-EN16931-R040 ist als „fatal“ eingestuft; Validatoren (KoSIT, Peppol Access Points, ZRE/OZG-RE) weisen die Rechnung zurück, bis der Fehler behoben ist.
Für welche Formate gilt PEPPOL-EN16931-R040?
Rechnungen und Gutschriften im Peppol-Netzwerk (UBL) und, weil XRechnung die Peppol-Regeln übernimmt, jede XRechnung. Syntax: UBL und CII.
Quelle: Peppol BIS Billing 3.0.20 (November 2025). Katalog erzeugt aus dem offiziellen Schematron am 2026-10-14.