Decimal places in the invoice line charge amount

Error BR-DEC-27 EN 16931

The allowed maximum number of decimals for the Invoice line charge amount (BT-141) 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 charge amount may have no more than two decimal places.

Affected fields BT-141
Please limit the decimal places in the invoice line charge amount

The invoice line charge 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>true</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:ActualAmount>1.234</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>true</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:ActualAmount>1.23</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
Check in FactoorSharp
  • AbstractTradeAllowanceCharge.ActualAmount (Line level charge: BT-141)
Technical details

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

Where the rule applies

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

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