BR-26: Nettopreis einer Position fehlt

Jede Position braucht einen Nettopreis (BT-146).

Regelwerk
EN 16931 (CEN)
Syntax
UBL und CII
Betroffene Felder
BG-25, BT-146

Offizieller Regeltext

Each Invoice line (BG-25) shall contain the Item net price (BT-146).

Regeltext aus den Validierungsartefakten zu EN 16931 in Version 1.3.16 (CEN/TC 434, veröffentlicht von ConnectingEurope), Lizenz EUPL 1.2; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31.

Schweregrad

Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.

Typische Ursachen

Es wird nur der Positionsbetrag exportiert, nicht der Einzelpreis.

So behebst du den Fehler

Den Nettoeinzelpreis übermitteln (UBL cac:Price/cbc:PriceAmount, CII ram:NetPriceProductTradePrice/ram:ChargeAmount).

Fehlt der Preis ganz, meldet der Validator zusätzlich BR-27, weil sich „nicht negativ“ dann nicht prüfen lässt. In CII kommen CII-SR-439 (genau ein Nettopreis je Position) und PEPPOL-EN16931-R008 hinzu, wenn ram:SpecifiedLineTradeAgreement leer zurückbleibt.

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.

Bei den Beispielen meldet der Validator außer BR-26 auch: BR-27, CII-SR-439, PEPPOL-EN16931-R008.

Beispiel in UBL

Änderung gegenüber der gültigen Rechnung: Nettopreis einer Position (BT-146) entfernt.

Falsch – ab Zeile 157 · markierte Zeilen fehlen hier
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
<cac:InvoiceLine>
Richtig – ab Zeile 157
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">19.95</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>
<cac:InvoiceLine>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-26 Each Invoice line (BG-25) shall contain the Item net price (BT-146). Fundstelle: /Invoice[1]/InvoiceLine[2]
  • BR-27 The Item net price (BT-146) shall NOT be negative. Fundstelle: /Invoice[1]/InvoiceLine[2]

Vollständige Dateien im Testkorpus: br-26-nettopreis-fehlt_ubl.xml (falsch) und standard_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Nettopreis einer Position (BT-146) entfernt.

Falsch – ab Zeile 64
  <ram:Name>Bit-Set 32-teilig</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement/>
<ram:SpecifiedLineTradeDelivery>
  <ram:BilledQuantity unitCode="H87">5</ram:BilledQuantity>
Richtig – ab Zeile 64
  <ram:Name>Bit-Set 32-teilig</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
  <ram:NetPriceProductTradePrice>
    <ram:ChargeAmount>19.95</ram:ChargeAmount>
  </ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
  <ram:BilledQuantity unitCode="H87">5</ram:BilledQuantity>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-26 Each Invoice line (BG-25) shall contain the Item net price (BT-146). Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[2]
  • BR-27 The Item net price (BT-146) shall NOT be negative. Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[2]
  • CII-SR-439 ChargeAmount should exist maximum once Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[2]/SpecifiedLineTradeAgreement[1]
  • PEPPOL-EN16931-R008 Document MUST not contain empty elements. Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[2]/SpecifiedLineTradeAgreement[1]

Vollständige Dateien im Testkorpus: br-26-nettopreis-fehlt_cii.xml (falsch) und standard_cii.xml (richtig).

Testdateien zu BR-26

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

//ram:IncludedSupplyChainTradeLineItem

Prüfausdruck:

(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)

UBL

Kontext:

cac:InvoiceLine | cac:CreditNoteLine

Prüfausdruck:

exists(cac:Price/cbc:PriceAmount)

Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.