Motif ou code du motif de la remise

Erreur BR-CO-21 EN 16931

Chaque remise au niveau du document (BG-20) doit contenir un motif de remise au niveau du document (BT-97) ou un code du motif de remise au niveau du document (BT-98), ou les deux.

Règle obligatoire : tant qu'elle n'est pas respectée, la facture est invalide et sera rejetée par les validateurs.
Ce qui ne va pas

La remise ne comporte ni le motif textuel ram:Reason ni le code du motif ram:ReasonCode. Au moins l’une de ces informations doit être présente ; les deux peuvent également être fournies.

Ce que signifie la règle

Le motif ou son code explique la remise. Cette information permet de comprendre la remise sur le plan commercial.

Champs concernés BG-20 BT-97 BT-98
Veuillez indiquer le motif de la remise

Le motif de la remise manque. Un motif textuel, un code du motif ou les deux peuvent préciser pourquoi elle a été accordée.

Que faire ?
  1. Pour la remise, ajoutez ram:Reason ou ram:ReasonCode ; vous pouvez aussi ajouter les deux.
  2. Pour le code du motif, vérifiez AllowanceReasonCodes ou TradeAllowance.ReasonCode ; pour le texte, vérifiez AbstractTradeAllowanceCharge.Reason.
  3. Vérifiez l’appel à AddTradeAllowance(...).
  4. Générez de nouveau la facture et vérifiez-la à nouveau.
À quoi cela ressemble
✗ Déclenche le message
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:Reason>Promotional allowance</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
À vérifier dans FactoorSharp
  • 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)
Détails techniques

Le test est satisfait si ram:Reason ou ram:ReasonCode est présent comme élément frère ; les deux éléments sont également autorisés.

Où la règle s'applique

La règle s’applique à une remise au niveau du document dans ram:SpecifiedTradeAllowanceCharge.

Message d'origine du Schematron
Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.
Contexte (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']
Expression de contrôle (assert/@test)
(../ram:Reason) or (../ram:ReasonCode)