At most two decimal places for the rounding amount

Error BR-DEC-17 EN 16931

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

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

ram:RoundingAmount 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 rounding amount is a monetary amount and, under this rule, may have no more than two decimal places.

Affected fields BT-114
Please enter the rounding amount with no more than two decimal places

The rounding 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:RoundingAmount.
  2. Make sure there are no more than two digits after the decimal point.
  3. Check the mapping to the RoundingAmount property.
  4. Generate the invoice again and validate it again.
What it looks like
✗ Triggers the message
<ram:RoundingAmount>0.456</ram:RoundingAmount>
✓ Correct
<ram:RoundingAmount>0.46</ram:RoundingAmount>
Check in FactoorSharp
  • FacturXInvoice.RoundingAmount (BT-114)
Technical details

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

Where the rule applies

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

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