Invoice line net amount required

Error BR-FXEXT-BR-24 Factur-X

Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131), if the "Subtype of invoice line item" (BT-X-8) has the value "DETAIL" or is not specified.

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

LineTotalAmount is missing from SpecifiedLineTradeSettlement/SpecifiedTradeSettlementLineMonetarySummation. This applies when LineStatusReasonCode is not specified or is DETAIL.

What the rule means

The net amount states the amount for the invoice line. Without it, the net value of the line is not provided.

Affected fields BG-25 BT-131 BT-X-8
Please add the net amount for the invoice line

The net amount is not provided for this invoice line. You can complete the line by adding LineTotalAmount.

What to do
  1. Check the status in AssociatedDocumentLineDocument.
  2. For a line with no status code or with DETAIL, add the amount using TradeLineItem.LineTotalAmount.
  3. Regenerate the invoice and validate it again.
What it looks like
✗ Triggers the message
<ram:SpecifiedLineTradeSettlement>
  <ram:SpecifiedTradeSettlementLineMonetarySummation/>
</ram:SpecifiedLineTradeSettlement>
✓ Correct
<ram:SpecifiedLineTradeSettlement>
  <ram:SpecifiedTradeSettlementLineMonetarySummation>
    <ram:LineTotalAmount>100.00</ram:LineTotalAmount>
  </ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
Check in FactoorSharp
  • AssociatedDocument.LineStatusReasonCode (BT-X-8)
  • LineStatusReasonCodes (BT-X-8)
  • TradeLineItem.LineTotalAmount (BT-131)
Technical details

The test requires SpecifiedLineTradeSettlement/SpecifiedTradeSettlementLineMonetarySummation/LineTotalAmount for lines without a status code and for lines with DETAIL.

Where the rule applies

The rule applies to an IncludedSupplyChainTradeLineItem invoice line whose AssociatedDocumentLineDocument has no LineStatusReasonCode or has the value DETAIL.

Context (rule/@context)
//ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument[ not(ram:LineStatusReasonCode) or ram:LineStatusReasonCode = 'DETAIL' ]
Test expression (assert/@test)
(../ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ ram:LineTotalAmount)