PEPPOL-EN16931-R046: Nettopreis passt nicht zum Bruttopreis
Ist ein Bruttopreis angegeben, muss der Nettopreis Bruttopreis minus Preisnachlass sein.
- Regelwerk
- XRechnung (KoSIT)
- Syntax
- UBL und CII
- Betroffene Felder
- –
Offizieller Regeltext
Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.
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 Nettopreis wird mit einem anderen Rabatt berechnet als dem übertragenen Preisnachlass.
So behebst du den Fehler
Nettopreis (BT-146), Preisnachlass (BT-147) und Bruttopreis (BT-148) aufeinander abstimmen.
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: Nettopreis ungleich Bruttopreis minus Preisnachlass.
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">2</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">22.95</cbc:BaseAmount>
</cac:AllowanceCharge><cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">3</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">22.95</cbc:BaseAmount>
</cac:AllowanceCharge>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-r046-nettopreis-passt-nicht_ubl.xml (falsch) und positionsrabatt_ubl.xml (richtig).
Beispiel in CII
Änderung gegenüber der gültigen Rechnung: Nettopreis ungleich Bruttopreis minus Preisnachlass.
<udt:Indicator>false</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>2</ram:ActualAmount>
</ram:AppliedTradeAllowanceCharge>
</ram:GrossPriceProductTradePrice> <udt:Indicator>false</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>3</ram:ActualAmount>
</ram:AppliedTradeAllowanceCharge>
</ram:GrossPriceProductTradePrice>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-r046-nettopreis-passt-nicht_cii.xml (falsch) und positionsrabatt_cii.xml (richtig).
Testdateien zu PEPPOL-EN16931-R046
- peppol-r046-nettopreis-passt-nicht_ubl.xml – Nettopreis ungleich Bruttopreis minus Preisnachlass
- peppol-r046-nettopreis-passt-nicht_cii.xml – Nettopreis ungleich Bruttopreis minus Preisnachlass
Technische Details: Kontext und Prüfausdruck aus dem Schematron
CII
Kontext:
rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice
Prüfausdruck:
not(ram:ChargeAmount) or xs:decimal(../ram:NetPriceProductTradePrice/ram:ChargeAmount) = xs:decimal(ram:ChargeAmount) - u:decimalOrZero(ram:AppliedTradeAllowanceCharge/ram:ActualAmount[1])
UBL
Kontext:
cac:Price/cac:AllowanceCharge
Prüfausdruck:
not(cbc:BaseAmount) or xs:decimal(../cbc:PriceAmount) = xs:decimal(cbc:BaseAmount) - xs:decimal(cbc:Amount)
Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.