At most two decimal places for the paid amount

Error BR-DEC-16 EN 16931

The allowed maximum number of decimals for the Paid amount (BT-113) is 2.

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

ram:TotalPrepaidAmount contains more than two characters after a decimal point. The test counts the characters after the first point, so a value with three decimal places violates the rule.

What the rule means

The paid amount is a monetary amount and, under this rule, may have no more than two decimal places.

Affected fields BT-113
Please enter the paid amount with no more than two decimal places

The paid amount has more than two decimal places. You can adjust the value to the permitted precision.

What to do
  1. Check the value of ram:TotalPrepaidAmount.
  2. Make sure there are no more than two digits after the decimal point.
  3. Check the mapping to the TotalPrepaidAmount property.
  4. Generate the invoice again and validate it again.
What it looks like
✗ Triggers the message
<ram:TotalPrepaidAmount>12.345</ram:TotalPrepaidAmount>
✓ Correct
<ram:TotalPrepaidAmount>12.34</ram:TotalPrepaidAmount>
Check in FactoorSharp
  • FacturXInvoice.TotalPrepaidAmount (BT-113)
Technical details

In the ram:SpecifiedTradeSettlementHeaderMonetarySummation context, the rule checks whether the substring after the point in ram:TotalPrepaidAmount has a length of at most two.

Where the rule applies

The rule applies to ram:TotalPrepaidAmount within the invoice header monetary summation.

Context (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Test expression (assert/@test)
string-length(substring-after(ram:TotalPrepaidAmount,'.'))<=2