Grund oder Code für einen Zuschlag angeben

Fehler BR-FXEXT-BR-38 Factur-X

Jeder Zuschlag oder jede Steuer auf Dokumentenebene (BG-21) muss einen Grund für den Zuschlag oder die Steuer auf Dokumentenebene (BT-104) oder einen Code für den Grund für den Zuschlag auf Dokumentenebene (BT-105) oder einen Code für eine nicht umsatzsteuerliche Steuer auf Dokumentenebene (BT-177) oder sowohl einen Grund als auch einen Code enthalten.

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

Beim SpecifiedTradeAllowanceCharge mit ChargeIndicator auf true fehlt sowohl ein Reason als auch ein ReasonCode. Dadurch ist für den Zuschlag weder ein Grund noch ein Grundcode angegeben.

Was die Regel bedeutet

Ein Zuschlag auf Dokumentenebene benötigt einen Grund, einen Grundcode oder beides. Diese Angabe beschreibt den Zuschlag fachlich.

Betroffene Felder BG-21 BT-104 BT-105 BT-177
Bitte geben Sie für den Zuschlag einen Grund oder Grundcode an

Für einen Zuschlag auf Dokumentenebene fehlt ein Grund und ein Grundcode. Mit einer dieser Angaben lässt sich der Zuschlag näher beschreiben.

Was ist zu tun?
  1. Ergänzen Sie beim betreffenden Zuschlag einen Grund oder einen Grundcode.
  2. Prüfen Sie die Werte für ChargeReasonCodes, TradeCharge.ReasonCode oder AbstractTradeAllowanceCharge.Reason.
  3. Prüfen Sie den Aufruf von AddTradeCharge(...) für den Zuschlag.
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
So sieht es aus
✗ Führt zur Meldung
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>true</ram:ChargeIndicator>
</ram:SpecifiedTradeAllowanceCharge>
✓ In Ordnung
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>true</ram:ChargeIndicator>
  <ram:Reason>Delivery fee</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
In FactoorSharp prüfen
  • ChargeReasonCodes (Document level charge: BT-105)
  • TradeCharge.ReasonCode (Document level charge: BT-105)
  • AbstractTradeAllowanceCharge.Reason (Document level charge: BT-104)
  • FacturXInvoice.AddTradeCharge(basisAmount, currency, actualAmount, chargePercentage, reason, taxTypeCode, taxCategoryCode, taxPercent, reasonCode) (BG-21)
  • FacturXInvoice.AddTradeeCharge(basisAmount, currency, actualAmount, chargePercentage, reason, taxTypeCode, taxCategoryCode, taxPercent, reasonCode) (BG-21)
Technische Details

Der Test prüft am SpecifiedTradeAllowanceCharge mit ChargeIndicator auf true, ob mindestens eines der Geschwisterelemente Reason oder ReasonCode vorhanden ist.

Wo die Regel greift

Die Regel gilt für einen Zuschlag auf Dokumentenebene im Bereich ApplicableHeaderTradeSettlement, der durch ChargeIndicator als Zuschlag gekennzeichnet ist.

Originalmeldung aus dem Schematron
Each Document level charge or tax (BG-21) shall contain a Document level charge or tax reason (BT-104) or a Document level charge reason code (BT-105) or Document level non-VAT tax code (BT-177), or both reason and code.
Kontext (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']
Prüfausdruck (assert/@test)
(../ram:Reason) or (../ram:ReasonCode)