PEPPOL-EN16931-R130: Einheit der Preis-Basismenge weicht von der Rechnungsmenge ab
Der Einheitencode der Preis-Basismenge (BT-150) muss mit dem der abgerechneten Menge (BT-130) übereinstimmen. Meist exportiert die Software zwei verschiedene Codes für dieselbe Einheit.
Unit code of price base quantity MUST be same as invoiced quantity.
Menge und Preis einer Position müssen sich auf dieselbe Einheit beziehen, sonst ist der Positionsbetrag nicht nachrechenbar. Diese Regel vergleicht deshalb die beiden Einheitencodes.
Was die Regel prüft
Jede abgerechnete Menge (BT-129; BT steht für Business Term, das nummerierte Feld der Norm) trägt einen Einheitencode aus der UN/ECE-Codeliste (BT-130), etwa H87 für Stück, HUR für Stunde oder MTR für Meter. Gibt die Position zusätzlich eine Preis-Basismenge an (BT-149), hat auch die einen Einheitencode (BT-150). Beide Codes müssen identisch sein: 12 Stunden zu einem Preis „je 1 Stunde" passt, 12 Stunden zu einem Preis „je 1 Stück" nicht.
Warum sie in der Praxis fehlschlägt
Fast nie steckt ein fachlicher Widerspruch dahinter, sondern zwei Codes für denselben Begriff. Die Codeliste kennt mehrere stückartige Einheiten, vor allem C62 (unit) und H87 (piece). Wenn der Artikelstamm die Menge mit H87 exportiert, das Preismodul aber hart C62 als Standard schreibt, sind beide fachlich „Stück" und trotzdem verschieden, und der Validator schlägt an.
Zweiter Auslöser: Die Basismenge wird ungefragt mitexportiert (typisch als „1 C62"), obwohl der Artikel in einer ganz anderen Einheit abgerechnet wird, etwa Stunden oder Quadratmeter. Das Feld ist optional, viele Programme schreiben es trotzdem immer.
So behebst du den Fehler
Der einfachste Weg: Wenn du keine Preiseinheiten wie „je 100 Stück" nutzt, lass die Basismenge komplett weg. Ohne BT-149 gibt es auch keinen Einheitenvergleich, der Preis gilt automatisch je Einheit der abgerechneten Menge.
Brauchst du die Basismenge, setz ihren Einheitencode auf exakt denselben Wert wie bei der Menge. Prüfe dazu im Artikelstamm, welche Einheit dort hinterlegt ist, und ob deine Software für Menge und Preis unterschiedliche Standardcodes verwendet. Einmal korrigiert, betrifft das alle künftigen Rechnungen mit diesem Artikel.
XML-Beispiel: vorher und nachher
Die Menge ist in Stunden (HUR) angegeben, die Basismenge mit dem Standardcode C62:
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>85.00</ram:ChargeAmount>
<!-- verletzt PEPPOL-EN16931-R130: C62 statt HUR -->
<ram:BasisQuantity unitCode="C62">1</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="HUR">12</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
Korrigiert: Beide Einheitencodes stimmen überein (oder die Basismenge entfällt ganz):
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>85.00</ram:ChargeAmount>
<ram:BasisQuantity unitCode="HUR">1</ram:BasisQuantity>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="HUR">12</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
Rechnung selbst prüfen
Lade deine Datei hoch und sieh in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.