Zum Inhalt springen

BR-CO – Bedingungen und Berechnungen

BR-CO-07: Grund und Grundcode eines Positionsnachlasses passen nicht

FehlerGeschäftsregel EN 16931 (CEN)

Originaltext der Regel

[BR-CO-07]-Invoice line allowance reason code (BT-140) and Invoice line allowance reason (BT-139) shall indicate the same type of allowance reason.

Quelle: CEN EN 16931, Version 1.3.16

Bedeutung der Regel

Ein Nachlass in einer Rechnungsposition darf einen Grund als Text und als Code aus UNTDID 5189 tragen; beide müssen dieselbe Art von Nachlass bezeichnen, etwa Aktionsrabatt und Code 66. Die Norm stellt diese Anforderung, überlässt die Einhaltung aber dem Aussteller, weil kein Programm den Sinn eines Textes prüfen kann. In Prüfberichten erscheint die Regel deshalb nicht. Achten Sie trotzdem darauf: Positionsrabatte werden vom Empfänger oft einzeln kontrolliert.

Korrektur im XML

Setzen Sie je Positionsnachlass den passenden Code aus UNTDID 5189 und einen dazu passenden Text, oder nur eine der beiden Angaben. In UBL stehen sie in cac:InvoiceLine/cac:AllowanceCharge in cbc:AllowanceChargeReasonCode und cbc:AllowanceChargeReason.

Vorher – fehlerhaft
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>100</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Aktionsrabatt</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">5.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
Nachher – korrigiert
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>66</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Aktionsrabatt</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">5.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>

Fragen und Antworten

Welche Codes aus UNTDID 5189 sind üblich?

95 für Mengenrabatt, 66 für Aktions- oder Sonderrabatt, 100 für Sonderabkommen und 88 für Materialzuschlag-Abschlag; die vollständige Liste führt die Codeliste.

Gilt die Regel auch, wenn ich nur den Code angebe?

Dann kann nichts widersprechen: Die Regel betrifft nur den Fall, dass Text und Code beide vorhanden sind.

Weitere typische Ursachen

  • Der Grundcode wird für alle Positionen aus einer Voreinstellung übernommen.
  • Der Grundtext stammt aus der Artikelbeschreibung, nicht aus dem Rabattgrund.
  • Beim Kopieren einer Position blieb der alte Code stehen.

Felder der EN 16931

  • BT-139
  • BT-140
  • BG-27

Siehe auch

Rechnung prüfen

Der XRechnung-Validator meldet diese Regel mit Zeilennummer und Fundstelle – direkt in Ihrem Browser, ohne Upload.

Zum XRechnung-Validator

Die Regel im Detail
UBL · Kontext (XPath)
//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()] | //cac:CreditNoteLine/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
UBL · Schematron-Test
true()
CII · Kontext (XPath)
//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']
CII · Schematron-Test
true()

Erklärung erstellt am 14.09.2026