BR-TMP-3Wenn BT-149 (Item price base quantity) sowohl in GrossPriceProductTradePrice als auch in NetPriceProductTradePrice vorhanden ist, müssen die Werte identisch sein.

Offizieller Regeltext

Wenn BT-150 (unit of measure code) auf dem NetPrice-Pfad vorhanden ist, muss es auch auf dem GrossPrice-Pfad vorhanden und identisch sein.

Steht die Preisbasismenge (BT-149) sowohl beim Bruttopreis als auch beim Nettopreis einer Position, müssen beide Werte identisch sein — und trägt der Nettopreis eine Maßeinheit (BT-150), muss der Bruttopreis dieselbe tragen.

Schweregrad
Fehler
Gilt für
CII
Regelwerk
v2026-08-31
Geprüft am

Geschrieben und gegen das offizielle KoSIT-Regelwerk geprüft von Dmytro Yalanskyi, NormAPI.

Warum tritt BR-TMP-3 auf?

Der Bruttopreis wird häufig nachträglich ergänzt, wenn ein Rabatt auf Positionsebene abgebildet werden soll. Die Basismenge wird dabei aus einer anderen Quelle gefüllt oder ganz weggelassen, und schon widersprechen sich die beiden Preisblöcke. Die Regel gibt es nur in CII, weil nur dort Brutto- und Nettopreis je eine eigene Basismenge tragen — in UBL existiert das Paar nicht, das sich widersprechen könnte. Beim Maßeinheitencode weicht der Ausdruck außerdem vom Regeltext ab: verlangt wird dort, dass eine Einheit am Nettopreis auch am Bruttopreis steht; geprüft wird nur, dass zwei vorhandene Einheiten übereinstimmen. Fehlt sie am Bruttopreis, besteht die Rechnung.

Was der Validator prüft

Der Ausdruck, den das offizielle KoSIT-Regelwerk auswertet — nicht paraphrasiert, sondern aus der ausgelieferten Schematron-Datei gelesen.

CII
not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity and ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity) or (ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity = ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity and (not(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity/@unitCode and ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity/@unitCode) or ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity/@unitCode = ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity/@unitCode))

Quelle: Regelwerk v2026-08-31

Wie behebt man BR-TMP-3?

Füllen Sie ram:BasisQuantity in GrossPriceProductTradePrice und NetPriceProductTradePrice aus demselben Feld, einschließlich des unitCode-Attributs. Wenn Sie keine abweichende Basismenge brauchen, lassen Sie sie in beiden Blöcken weg statt nur in einem.

Im XML

Ausschnitt in CII — die Regel gilt nur für diese Syntax.

Fehlerhaft
<ram:GrossPriceProductTradePrice>
  <ram:ChargeAmount>100.00</ram:ChargeAmount>
  <ram:BasisQuantity unitCode="C62">1</ram:BasisQuantity>
</ram:GrossPriceProductTradePrice>
<ram:NetPriceProductTradePrice>
  <ram:ChargeAmount>90.00</ram:ChargeAmount>
  <ram:BasisQuantity unitCode="C62">10</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>
Korrigiert
<ram:GrossPriceProductTradePrice>
  <ram:ChargeAmount>100.00</ram:ChargeAmount>
  <ram:BasisQuantity unitCode="C62">10</ram:BasisQuantity>
</ram:GrossPriceProductTradePrice>
<ram:NetPriceProductTradePrice>
  <ram:ChargeAmount>90.00</ram:ChargeAmount>
  <ram:BasisQuantity unitCode="C62">10</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>

Verwandte Regeln

NormAPI liefert technische Validierung, keine Steuer- oder Rechtsberatung.