BR-CO-22: Zuschlag auf Dokumentebene ohne Begründung
Ein Zuschlag auf Rechnungsebene (BG-21), etwa Versand- oder Anfahrtskosten, braucht einen Grund als Text (BT-104) oder Code (BT-105). Fehlt beides, schlägt die Prüfung fehl.
Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.
Zuschläge auf die gesamte Rechnung, typisch Versandkosten, Anfahrtspauschale oder Mindermengenzuschlag, müssen dem Empfänger sagen, wofür sie berechnet werden. Ein Betrag allein genügt nicht.
Was die Regel prüft
Jeder Zuschlag auf Dokumentebene (Gruppe BG-21; BG = Business Group, eine Feldgruppe der Norm EN 16931) muss einen Grund als Freitext (BT-104) oder einen Grund-Code (BT-105) aus der Codeliste UNTDID 7161 enthalten, gern auch beides. Stehen Text und Code zusammen, müssen sie laut BR-CO-06 denselben Sachverhalt bezeichnen.
Die Regel ist das Zuschlags-Gegenstück zu BR-CO-21 (Nachlässe) und inhaltsgleich mit BR-38. Auf Positionsebene prüft BR-CO-24 dasselbe.
Warum sie in der Praxis fehlschlägt
Versandkosten sind der Klassiker: Viele Programme führen sie als Sonderfeld außerhalb der Positionsliste und mappen sie beim XML-Export in eine BG-21-Gruppe, übernehmen aber nur den Betrag. Die Bezeichnung „Versandkosten" aus dem PDF-Layout landet nicht im strukturierten Feld ram:Reason.
Zweiter Auslöser: Ein pauschaler Zuschlag wird manuell als „sonstige Position" mit leerer Beschreibung angelegt. Auf dem Papier fällt das kaum auf, in der XML fehlt dann genau das Feld, das die Regel verlangt.
So behebst du den Fehler
Gib jedem Zuschlag eine kurze Bezeichnung, der Freitext BT-104 allein genügt: „Versandkosten", „Anfahrt", „Mindermengenzuschlag". Einen Code aus UNTDID 7161 brauchst du nur, wenn dein Empfänger ihn fordert; dann müssen Code und Text zusammenpassen.
Überleg auch, ob der Zuschlag nicht besser eine normale Rechnungsposition wäre. Eine Position „Anfahrtspauschale" mit Menge 1 ist ebenso zulässig, für viele Empfänger-Systeme sogar einfacher zu verarbeiten und von dieser Regel gar nicht betroffen. In Belegschmied ist der Grund bei Zuschlägen ein Pflichtfeld.
XML-Beispiel: vorher und nachher
Zuschlag mit Betrag, aber ohne Begründung (der ChargeIndicator steht bei Zuschlägen auf true):
<!-- verletzt BR-CO-22: weder Reason noch ReasonCode vorhanden -->
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>12.90</ram:ActualAmount>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
Korrigiert mit Begründungstext (BT-104):
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>12.90</ram:ActualAmount>
<ram:Reason>Versandkosten</ram:Reason>
<ram:CategoryTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
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.