BR-41EN 16931

BR-41: Positionsnachlass ohne Betrag

Ein Nachlass auf Positionsebene (BG-27) braucht ein Betragsfeld (BT-136). Der Fehler entsteht meist, wenn ein Prozentrabatt erfasst wird, aber der ausgerechnete Betrag nicht in die XML kommt.

Regeltext im Prüfregelwerk

Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136).

BG-27BT-136

BR-41 ist die Positions-Variante von BR-31: Ein Rabatt auf eine einzelne Rechnungszeile steht in der Datei, aber sein Betrag fehlt.

Was die Regel prüft

Ein Positionsnachlass (BG-27, BG = Business Group, eine Feldgruppe der Norm) ist ein Abzug, der nur eine Rechnungszeile betrifft, etwa 10 % Rabatt auf einen bestimmten Artikel. Sobald die Gruppe in einer Zeile vorhanden ist, muss sie den Betrag in BT-136 enthalten (BT = Business Term, das nummerierte Feld der Norm), als positive Zahl mit maximal zwei Nachkommastellen (BR-DEC-24).

Wichtig fürs Verständnis der Summen: Der Zeilennettobetrag (BT-131) muss den Positionsnachlass bereits abgezogen enthalten. Der Nachlass wird also nicht zusätzlich von der Dokumentsumme abgezogen, er erklärt nur, wie die Zeile auf ihren Nettobetrag kommt.

Anders als auf Dokumentenebene gibt es hier keine eigene Steuerkategorie-Pflicht: Der Nachlass übernimmt automatisch die Kategorie seiner Zeile (BT-151).

Warum sie in der Praxis fehlschlägt

Häufigster Auslöser: Die Software erfasst den Rabatt als Prozentsatz und schreibt nur diesen in die XML, ohne den daraus errechneten Betrag. Die Norm verlangt aber immer den absoluten Betrag; der Prozentsatz (BT-138) ist optional und nur zusätzlich erlaubt.

Zweiter Fall: Der Rabatt wird über einen reduzierten Einzelpreis abgebildet und trotzdem eine leere Nachlass-Gruppe angelegt, weil das Template den Block generell vorsieht. Dann steht eine Hülle ohne ActualAmount in der Zeile.

Dritter Fall: Negative Beträge. Wer den Nachlass mit Minuszeichen liefert, dessen Wert wird von manchen Bibliotheken verworfen, das Feld fehlt am Ende ganz.

So behebst du den Fehler

Entscheide dich pro Zeile für einen Weg: Entweder du weist den Rabatt als BG-27 mit Betrag in BT-136 aus (und BT-131 ist der bereits reduzierte Zeilenwert), oder du reduzierst einfach den Einzelpreis und lässt die Nachlass-Gruppe komplett weg. Beides ist normkonform; leere Gruppen sind es nicht.

In Belegschmied werden Positionsrabatte mit Betrag geführt und der Zeilennettobetrag daraus berechnet, der Fall entsteht dort nicht.

XML-Beispiel: vorher und nachher

<!-- verletzt BR-41: Positionsnachlass ohne ActualAmount (BT-136) -->
<ram:SpecifiedLineTradeSettlement>
  <ram:SpecifiedTradeAllowanceCharge>
    <ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
    <ram:Reason>Mengenrabatt</ram:Reason>
  </ram:SpecifiedTradeAllowanceCharge>
  <!-- … -->
</ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedLineTradeSettlement>
  <ram:SpecifiedTradeAllowanceCharge>
    <ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
    <ram:ActualAmount>20.00</ram:ActualAmount>
    <ram:Reason>Mengenrabatt</ram:Reason>
  </ram:SpecifiedTradeAllowanceCharge>
  <!-- … -->
</ram:SpecifiedLineTradeSettlement>

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.

Regeln, die oft zusammen auftreten

← Alle Fehlermeldungen im Überblick