Grund oder Grundcode des Abschlags

Fehler BR-33 EN 16931

[BR-33] - Jeder Abschlag auf Dokumentenebene (BG-20) muss einen Grund für den Abschlag auf Dokumentenebene (BT-97) oder einen Code für den Grund für den Abschlag auf Dokumentenebene (BT-98) haben.

Pflichtregel: Solange sie verletzt ist, ist die Rechnung ungültig und wird von Validatoren abgewiesen.
Was nicht stimmt

Für den Abschlag fehlt sowohl die textliche Begründung ram:Reason als auch der Grundcode ram:ReasonCode. Mindestens eine dieser Angaben muss vorhanden sein.

Was die Regel bedeutet

Der Grund oder Grundcode beschreibt, warum der Abschlag gewährt wird. Damit wird der Abschlag fachlich nachvollziehbar angegeben.

Betroffene Felder BG-20 BT-97 BT-98
Bitte nennen Sie einen Grund für den Abschlag

Für den Abschlag fehlt eine Begründung. Sie können einen Textgrund, einen Grundcode oder beide Angaben verwenden.

Was ist zu tun?
  1. Ergänzen Sie für den Abschlag entweder ram:Reason oder ram:ReasonCode; Sie können auch beide Angaben ergänzen.
  2. Prüfen Sie für den Grundcode AllowanceReasonCodes oder TradeAllowance.ReasonCode und für den Text AbstractTradeAllowanceCharge.Reason.
  3. Prüfen Sie den Aufruf von AddTradeAllowance(...).
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
So sieht es aus
✗ Führt zur Meldung
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
</ram:SpecifiedTradeAllowanceCharge>
✓ In Ordnung
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:Reason>Promotional allowance</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
In FactoorSharp prüfen
  • AllowanceReasonCodes (Document level allowance: BT-98)
  • TradeAllowance.ReasonCode (Document level allowance: BT-98)
  • AbstractTradeAllowanceCharge.Reason (Document level allowance: BT-97)
  • FacturXInvoice.AddTradeAllowance(basisAmount, currency, actualAmount, chargePercentage, reason, taxTypeCode, taxCategoryCode, taxPercent, reasonCode) (BG-20)
  • FacturXInvoice.GetTradeAllowances() (BG-20)
Technische Details

Der Test ist erfüllt, wenn mindestens eines der Geschwisterelemente ram:Reason oder ram:ReasonCode vorhanden ist.

Wo die Regel greift

Die Regel gilt für einen Abschlag auf Dokumentenebene in ram:SpecifiedTradeAllowanceCharge.

Originalmeldung aus dem Schematron
Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).
Kontext (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']
Prüfausdruck (assert/@test)
(../ram:Reason) or (../ram:ReasonCode)