BR-42: Grund eines Positionsnachlasses fehlt
Jeder Nachlass auf Positionsebene (BG-27) braucht einen Grund als Text (BT-139) oder Code (BT-140).
- Regelwerk
- EN 16931 (CEN)
- Syntax
- UBL und CII
- Betroffene Felder
- BG-27, BT-139, BT-140
Offizieller Regeltext
Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140).
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
- UBL-Rechnung: Fehler
- UBL-Gutschrift: Fehler
- CII: Fehler
Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.
Typische Ursachen
Positionsrabatte werden nur als Betrag übertragen.
So behebst du den Fehler
Grund und/oder Code (UNTDID 5189) am Positionsnachlass ergänzen.
Der Validator meldet denselben Sachverhalt zusätzlich als BR-CO-23.
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-42 auch: BR-CO-23.
Beispiel in UBL
Änderung gegenüber der gültigen Rechnung: Grund und Code des Positionsnachlasses (BT-139/BT-140) entfernt.
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">29.98</cbc:Amount><cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Aktionsrabatt</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">29.98</cbc:Amount>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: br-42-positionsnachlass-ohne-grund_ubl.xml (falsch) und positionsrabatt_ubl.xml (richtig).
Beispiel in CII
Änderung gegenüber der gültigen Rechnung: Grund und Code des Positionsnachlasses (BT-139/BT-140) entfernt.
<ram:BasisAmount>299.80</ram:BasisAmount>
<ram:ActualAmount>29.98</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
<ram:SpecifiedTradeSettlementLineMonetarySummation> <ram:BasisAmount>299.80</ram:BasisAmount>
<ram:ActualAmount>29.98</ram:ActualAmount>
<ram:ReasonCode>95</ram:ReasonCode>
<ram:Reason>Aktionsrabatt</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
<ram:SpecifiedTradeSettlementLineMonetarySummation>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: br-42-positionsnachlass-ohne-grund_cii.xml (falsch) und positionsrabatt_cii.xml (richtig).
Testdateien zu BR-42
- br-42-positionsnachlass-ohne-grund_ubl.xml – Grund und Code des Positionsnachlasses (BT-139/BT-140) entfernt
- br-42-positionsnachlass-ohne-grund_cii.xml – Grund und Code des Positionsnachlasses (BT-139/BT-140) entfernt
Technische Details: Kontext und Prüfausdruck aus dem Schematron
CII
Kontext:
//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']
Prüfausdruck:
(../ram:Reason) or (../ram:ReasonCode)
UBL
Kontext:
//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] | //cac:CreditNoteLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
Prüfausdruck:
exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)
Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.