Decimal places in the invoice line allowance amount

Error BR-DEC-24 EN 16931

The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.

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

The value in ram:ActualAmount has more than two decimal places.

What the rule means

The invoice line allowance amount may have no more than two decimal places.

Affected fields BT-136
Please limit the decimal places in the invoice line allowance amount

The invoice line allowance amount has more than two decimal places. You can resolve this by adjusting the value in ram:ActualAmount to the permitted number of decimal places.

What to do
  1. Check the value of AbstractTradeAllowanceCharge.ActualAmount.
  2. Make sure the amount has no more than two decimal places.
  3. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:ActualAmount>1.234</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:ActualAmount>1.23</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
Check in FactoorSharp
  • AbstractTradeAllowanceCharge.ActualAmount (Line level allowance: BT-136)
Technical details

The check counts the characters after the decimal point in the first ram:ActualAmount element of the allowance and permits no more than two.

Where the rule applies

The rule applies to ram:ActualAmount for an allowance in ram:SpecifiedTradeAllowanceCharge on an invoice line.

Context (rule/@context)
//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'false']
Test expression (assert/@test)
string-length(substring-after(../ram:ActualAmount[1],'.'))<=2