BR-38: Zuschlag auf Dokumentenebene ohne Grund
Ein Zuschlag auf Dokumentenebene (BG-21) braucht einen Grund als Freitext (BT-104) oder als Code (BT-105). Meist bleibt das Bezeichnungsfeld in der Software leer.
Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).
Der Empfänger einer Rechnung soll nachvollziehen können, wofür er einen Aufschlag zahlt. Deshalb verlangt BR-38 für jeden Dokumentzuschlag eine Begründung, wahlweise als Text oder als Code.
Was die Regel prüft
Jeder Zuschlag auf Dokumentenebene (BG-21, BG = Business Group, eine Feldgruppe der Norm) muss mindestens eines dieser beiden Felder füllen (BT = Business Term, das nummerierte Feld der Norm):
- BT-104, ein Freitext wie „Versandkosten" oder „Mindermengenzuschlag"
- BT-105, ein Code aus der Codeliste UNTDID 7161 (z. B.
FCfür Freight charge)
Beides zusammen ist erlaubt; dann müssen Text und Code dieselbe Art von Zuschlag bezeichnen, das prüft BR-CO-06 nach.
Warum sie in der Praxis fehlschlägt
Der Standardfall: Versand- oder Verpackungskosten werden als nackter Betrag erfasst, das Bezeichnungsfeld bleibt leer, und die Software schreibt den Zuschlag ohne Reason in die XML. Auf dem PDF-Layout steht „Versandkosten" vielleicht als Tabellenbeschriftung, aber das strukturierte Feld ist trotzdem leer.
Zweiter Fall: Der Grund wird als leeres Element geschrieben (<ram:Reason/>), etwa weil ein Template den Knoten immer anlegt. Dann meldet der Validator neben BR-38 oft auch die Regel gegen leere Elemente (PEPPOL-EN16931-R008).
Dritter Fall: Es wird ein Reason-Code verwendet, der nicht aus der Codeliste UNTDID 7161 stammt, etwa ein interner Artikelcode. Manche Validatoren werten das als fehlenden Code, dann schlägt BR-38 an, obwohl „irgendwas" im Feld steht.
So behebst du den Fehler
Trag einen kurzen, verständlichen Freitext in BT-104 ein. Für deutsche B2B-Rechnungen reicht das immer, der Code BT-105 ist nur nötig, wenn dein Empfänger Zuschlagsarten maschinell auswertet. Gute Texte benennen die Leistung konkret: „Versandkosten", „Anfahrtspauschale", „Verpackung Mehrweggebinde".
Belegschmied verlangt beim Anlegen eines Zuschlags eine Bezeichnung und schreibt sie als BT-104 in die XML.
XML-Beispiel: vorher und nachher
<!-- verletzt BR-38: weder Reason (BT-104) noch ReasonCode (BT-105) -->
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>15.00</ram:ActualAmount>
<!-- … -->
</ram:SpecifiedTradeAllowanceCharge>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>15.00</ram:ActualAmount>
<ram:Reason>Anfahrtspauschale</ram:Reason>
<!-- … -->
</ram:SpecifiedTradeAllowanceCharge>
Rechnung selbst prüfen
Laden Sie Ihre Datei hoch und sehen Sie in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.
Regeln, die oft zusammen auftreten
← Alle Fehlermeldungen im Überblick
Gepflegt von Emilio Irmscher, Gründer von Belegschmied. Über den Autor