BR-DEC-23: BT-131 mit mehr als zwei Nachkommastellen

Für BT-131 (Nettobetrag einer Position) sind höchstens zwei Nachkommastellen erlaubt.

Regelwerk
EN 16931 (CEN)
Syntax
UBL und CII
Betroffene Felder
BT-131

Offizieller Regeltext

The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.

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

Die Software rechnet intern mit mehr Nachkommastellen und gibt den Wert ungerundet aus, oder Beträge werden mit einem festen Format wie 0.000 geschrieben. Auch 99.750 zählt als drei Nachkommastellen, obwohl der Wert gleich bleibt.

So behebst du den Fehler

Beträge vor der Ausgabe kaufmännisch auf zwei Nachkommastellen runden und mit höchstens zwei Nachkommastellen schreiben. Für Einzelpreise (BT-146) gilt diese Grenze nicht.

In UBL meldet der Validator zusätzlich UBL-DT-01 (Beträge mit höchstens zwei Nachkommastellen).

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-DEC-23 auch: UBL-DT-01.

Beispiel in UBL

Änderung gegenüber der gültigen Rechnung: Nettobetrag einer Position (BT-131) mit drei Nachkommastellen.

Falsch – ab Zeile 143
<cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode="H87">5</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">99.750</cbc:LineExtensionAmount>
<cac:Item>
  <cbc:Name>Bit-Set 32-teilig</cbc:Name>
Richtig – ab Zeile 143
<cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode="H87">5</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">99.75</cbc:LineExtensionAmount>
<cac:Item>
  <cbc:Name>Bit-Set 32-teilig</cbc:Name>

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

  • BR-DEC-23 The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2. Fundstelle: /Invoice[1]/InvoiceLine[2]
  • UBL-DT-01 Amounts shall be decimal up to two fraction digits Fundstelle: /Invoice[1]/InvoiceLine[2]/LineExtensionAmount[1]

Vollständige Dateien im Testkorpus: br-dec-23-positionsbetrag-drei-nachkommastellen_ubl.xml (falsch) und standard_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Nettobetrag einer Position (BT-131) mit drei Nachkommastellen.

Falsch – ab Zeile 79
  </ram:ApplicableTradeTax>
  <ram:SpecifiedTradeSettlementLineMonetarySummation>
    <ram:LineTotalAmount>99.750</ram:LineTotalAmount>
  </ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
Richtig – ab Zeile 79
  </ram:ApplicableTradeTax>
  <ram:SpecifiedTradeSettlementLineMonetarySummation>
    <ram:LineTotalAmount>99.75</ram:LineTotalAmount>
  </ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>

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

  • BR-DEC-23 The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2. Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[2]

Vollständige Dateien im Testkorpus: br-dec-23-positionsbetrag-drei-nachkommastellen_cii.xml (falsch) und standard_cii.xml (richtig).

Testdateien zu BR-DEC-23

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

//ram:IncludedSupplyChainTradeLineItem

Prüfausdruck:

string-length(substring-after(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,'.'))<=2

UBL

Kontext:

cac:InvoiceLine | cac:CreditNoteLine

Prüfausdruck:

string-length(substring-after(cbc:LineExtensionAmount,'.'))<=2

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