Indiquez un motif ou un code pour une majoration

Erreur BR-FXEXT-BR-38 Factur-X

Chaque frais ou taxe au niveau du document (BG-21) doit contenir un motif du frais ou de la taxe au niveau du document (BT-104), ou un code du motif du frais au niveau du document (BT-105), ou un code de taxe hors TVA au niveau du document (BT-177), ou à la fois un motif et un code.

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

Le SpecifiedTradeAllowanceCharge dont ChargeIndicator est défini à true ne contient ni Reason ni ReasonCode. Aucun motif ni code de motif n’est donc indiqué pour la majoration.

Ce que signifie la règle

Une majoration au niveau du document nécessite un motif, un code de motif ou les deux. Cette information décrit la majoration sur le plan métier.

Champs concernés BG-21 BT-104 BT-105 BT-177
Veuillez indiquer un motif ou un code de motif pour la majoration

Il manque à une majoration au niveau du document un motif et un code de motif. L’une ou l’autre de ces informations permet de décrire la majoration.

Que faire ?
  1. Ajoutez un motif ou un code de motif à la majoration concernée.
  2. Vérifiez les valeurs de ChargeReasonCodes, TradeCharge.ReasonCode ou AbstractTradeAllowanceCharge.Reason.
  3. Vérifiez l’appel à AddTradeCharge(...) pour cette majoration.
  4. Générez à nouveau la facture et vérifiez-la de nouveau.
À quoi cela ressemble
✗ Déclenche le message
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>true</ram:ChargeIndicator>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>true</ram:ChargeIndicator>
  <ram:Reason>Delivery fee</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
À vérifier dans FactoorSharp
  • 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)
Détails techniques

Pour un SpecifiedTradeAllowanceCharge dont ChargeIndicator est défini à true, le test vérifie la présence d’au moins un des éléments frères Reason ou ReasonCode.

Où la règle s'applique

La règle s’applique à une majoration au niveau du document dans ApplicableHeaderTradeSettlement, identifiée comme une majoration par ChargeIndicator.

Message d'origine du 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.
Contexte (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='true']
Expression de contrôle (assert/@test)
(../ram:Reason) or (../ram:ReasonCode)