PEPPOL-EN16931-R046Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.
Offizieller Regeltext
Wird ein Bruttopreis angegeben, muss der Nettopreis genau daraus folgen: Bruttopreis minus Preisnachlass, ohne Toleranz. Die drei Zahlen beschreiben eine einzige Rechnung und müssen aufgehen.
- Schweregrad
- Fehler
- Gilt für
- CII, UBL
- Regelwerk
- v2026-08-31
- Geprüft am
Geschrieben und gegen das offizielle KoSIT-Regelwerk geprüft von Dmytro Yalanskyi, NormAPI.
Warum tritt PEPPOL-EN16931-R046 auf?
Der Nettopreis kommt aus der Preisfindung und ist bereits gerundet; Bruttopreis und Nachlass werden zur Nachvollziehbarkeit ergänzt und stammen aus der Konditionspflege. Zwischen beiden liegt oft ein Cent — und der reicht: verglichen wird mit einem schlichten Gleichheitszeichen auf Dezimalzahlen, ohne jede Toleranz. Die Rechenregeln der Norm sind da großzügiger, BR-CO-17 etwa lässt eine ganze Währungseinheit zu. In CII kommen zwei Eigenheiten dazu: ein fehlender Nachlass wird über u:decimalOrZero als 0 gerechnet, und von mehreren angewandten Nachlässen zählt nur der erste.
Was der Validator prüft
Der Ausdruck, den das offizielle KoSIT-Regelwerk auswertet — nicht paraphrasiert, sondern aus der ausgelieferten Schematron-Datei gelesen. UBL und CII adressieren verschiedene Dokumentbäume, deshalb steht dieselbe Regel je Syntax anders da.
- UBL
not(cbc:BaseAmount) or xs:decimal(../cbc:PriceAmount) = xs:decimal(cbc:BaseAmount) - xs:decimal(cbc:Amount)- CII
not(ram:ChargeAmount) or xs:decimal(../ram:NetPriceProductTradePrice/ram:ChargeAmount) = xs:decimal(ram:ChargeAmount) - u:decimalOrZero(ram:AppliedTradeAllowanceCharge/ram:ActualAmount[1])
Quelle: Regelwerk v2026-08-31
Wie behebt man PEPPOL-EN16931-R046?
Leiten Sie cbc:PriceAmount aus cbc:BaseAmount minus cbc:Amount des Preis-Abschlags ab (UBL) beziehungsweise ram:ChargeAmount minus ram:ActualAmount in CII. Wenn Sie den Bruttopreis nicht belegen können, lassen Sie ihn und den Nachlass weg — der Nettopreis allein genügt.
Im XML
Ausschnitt in UBL. Der CII-Pfad steht oben im Text — dieselbe Änderung, andere Elementnamen.
<cac:Price>
<cbc:PriceAmount currencyID="EUR">105.00</cbc:PriceAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">110.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price><cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">110.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price>Verwandte Regeln
NormAPI liefert technische Validierung, keine Steuer- oder Rechtsberatung.