Document-level allowance amount

Error BR-31 EN 16931

Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

The allowance is missing ram:ActualAmount, which specifies the document-level allowance amount (BT-92).

What the rule means

The amount quantifies the allowance deducted from the invoice amounts. Without it, the document-level allowance is not fully specified.

Affected fields BG-20 BT-92
Please provide the document-level allowance amount

No amount is provided for a document-level allowance. Add the amount so the allowance is fully described.

What to do
  1. Add the allowance amount in ram:ActualAmount.
  2. Check the value of AbstractTradeAllowanceCharge.ActualAmount.
  3. Regenerate the invoice and validate it again.
What it looks like
✗ Triggers the 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:ActualAmount>10.00</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
Check in FactoorSharp
  • AbstractTradeAllowanceCharge.ActualAmount (Document level allowance: BT-92)
  • FacturXInvoice.AddTradeAllowance(basisAmount, currency, actualAmount, chargePercentage, reason, taxTypeCode, taxCategoryCode, taxPercent, reasonCode) (BG-20)
  • FacturXInvoice.GetTradeAllowances() (BG-20)
  • FacturXInvoice.TradeAllowanceCharges (BG-20)
  • AbstractTradeAllowanceCharge (Document level allowance: BG-20)
Technical details

For each ram:SpecifiedTradeAllowanceCharge identified as an allowance by ram:ChargeIndicator, the test checks for a sibling ram:ActualAmount.

Where the rule applies

The rule applies to an allowance in ram:SpecifiedTradeAllowanceCharge at document level, identified as an allowance by ram:ChargeIndicator.

Context (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator='false']
Test expression (assert/@test)
(../ram:ActualAmount)