BR-CO-24: Positionszuschlag ohne Begründung
Ein Zuschlag auf eine einzelne Rechnungsposition (BG-28) braucht einen Grund als Text (BT-144) oder Code (BT-145). Typischer Auslöser: Der Zuschlag wird nur als Betrag exportiert.
Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
Das ist die letzte der vier Begründungsregeln für Ab- und Zuschläge: Sie betrifft Zuschläge innerhalb einer einzelnen Rechnungsposition, etwa einen Expresszuschlag auf genau einen Artikel.
Was die Regel prüft
Jeder Zuschlag in einer Rechnungsposition (Gruppe BG-28; BG = Business Group, eine Feldgruppe der Norm EN 16931) muss einen Grund als Freitext (BT-144) oder als Code (BT-145, Codeliste UNTDID 7161) enthalten, oder beides. Stehen beide, müssen sie laut BR-CO-08 denselben Sachverhalt bezeichnen. Die Regel ist inhaltsgleich mit BR-44.
Die vier Geschwisterregeln decken systematisch alle Kombinationen ab: BR-CO-21/22 auf Dokumentebene, BR-CO-23/24 auf Positionsebene, jeweils einmal Nachlass und einmal Zuschlag. Der Mechanismus ist überall gleich, nur das betroffene Element unterscheidet sich.
Warum sie in der Praxis fehlschlägt
Positionszuschläge sind die seltenste der vier Varianten, entsprechend stiefmütterlich behandeln Programme sie: Wenn überhaupt, gibt es ein Zuschlagsfeld pro Zeile ohne Begründungsfeld, und der Export schreibt eine BG-28-Gruppe nur mit Betrag.
Zweiter Auslöser sind Schnittstellen, die Zuschläge aus einem Warenwirtschaftssystem übernehmen: Dort ist der Zuschlagstyp oft ein interner Schlüssel (z. B. „Z01"), der beim Mapping weder in einen UNTDID-7161-Code noch in einen Klartext übersetzt wird und deshalb einfach wegfällt.
So behebst du den Fehler
Trag zum Zuschlag einen kurzen Klartext ein, BT-144 allein genügt: „Expresszuschlag", „Kleinmengenzuschlag", „Legierungszuschlag". Interne Schlüssel deines Systems gehören nicht in das Code-Feld BT-145, dort sind nur Werte aus UNTDID 7161 zulässig; im Zweifel lass den Code weg und nutze nur den Text.
Prüfe auch hier, ob eine eigene Rechnungsposition die einfachere Abbildung wäre: Ein „Expresszuschlag" als normale Zeile mit Menge 1 umgeht die Regel vollständig und ist für Empfänger-Systeme leichter lesbar.
XML-Beispiel: vorher und nachher
Positionszuschlag nur mit Betrag:
<!-- verletzt BR-CO-24: weder Reason noch ReasonCode im Positionszuschlag -->
<ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>18.50</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
<!-- … -->
</ram:SpecifiedLineTradeSettlement>
Korrigiert mit Begründungstext (BT-144):
<ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>18.50</ram:ActualAmount>
<ram:Reason>Expresszuschlag</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.