Invoice line charge total only once

Error FX-SCH-A-001140 Factur-X

Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.

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

ram:ChargeTotalAmount occurs more than once in ram:SpecifiedTradeSettlementLineMonetarySummation.

What the rule means

ram:ChargeTotalAmount gives the total charges for the invoice line. Multiple occurrences would provide more than one value for that total.

Please include the invoice line charge total only once

The total charges appear more than once in an invoice line’s settlement. This element may occur there no more than once.

What to do
  1. Look for repeated ram:ChargeTotalAmount elements in ram:SpecifiedTradeSettlementLineMonetarySummation.
  2. Make sure this element occurs there no more than once.
  3. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<ram:SpecifiedTradeSettlementLineMonetarySummation>
  <ram:ChargeTotalAmount>10.00</ram:ChargeTotalAmount>
  <ram:ChargeTotalAmount>20.00</ram:ChargeTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
✓ Correct
<ram:SpecifiedTradeSettlementLineMonetarySummation>
  <ram:ChargeTotalAmount>10.00</ram:ChargeTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
Technical details

The XPath counts ram:ChargeTotalAmount elements in the current ram:SpecifiedTradeSettlementLineMonetarySummation; the test passes when there is at most one.

Where the rule applies

The rule applies to the monetary summation in an invoice line’s settlement and checks ram:ChargeTotalAmount there.

Context (rule/@context)
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation
Test expression (assert/@test)
count(ram:ChargeTotalAmount)<=1