Provide payment due information for a positive amount due

Error BR-CO-25 EN 16931

In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.

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

When ram:DuePayableAmount is positive, both a due date in ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime and a payment terms description in ram:SpecifiedTradePaymentTerms/ram:Description are missing.

What the rule means

For a positive amount due, the invoice must state when payment is due or what payment terms apply. This gives the buyer the information needed to make the payment.

Affected fields BT-115 BT-9 BT-20
Please provide due information for the positive amount due

Your invoice has a positive amount due, but it does not say when or under what terms it must be paid. You can provide a due date or a description of the payment terms.

What to do
  1. Check the value of DuePayableAmount.
  2. In AddTradePaymentTerms(...), provide either a due date or a description of the payment terms.
  3. Generate the invoice again and validate it once more.
What it looks like
✗ Triggers the message
<ram:DuePayableAmount>100.00</ram:DuePayableAmount>
<ram:SpecifiedTradePaymentTerms/>
✓ Correct
<ram:DuePayableAmount>100.00</ram:DuePayableAmount>
<ram:SpecifiedTradePaymentTerms>
  <ram:Description>Payable within 30 days</ram:Description>
</ram:SpecifiedTradePaymentTerms>
Check in FactoorSharp
  • FacturXInvoice.AddTradePaymentTerms(description, dueDate, paymentTermsType, dueDays, percentage, baseAmount, actualAmount, maturityDate) (BT-20)
  • FacturXInvoice.ClearTradePaymentTerms() (BT-20)
  • FacturXInvoice.DuePayableAmount (BT-115)
  • FacturXInvoice.GetTradePaymentTerms() (BT-20)
  • FacturXInvoice.PaymentTerms (BT-20)
Technical details

The test reports an error only when number(//ram:DuePayableAmount) > 0 and neither ram:DueDateDateTime nor ram:Description is present under ram:SpecifiedTradePaymentTerms. For a non-positive amount due, the condition is satisfied.

Where the rule applies

The rule applies at invoice level. It checks ram:DuePayableAmount and the payment terms in ram:SpecifiedTradePaymentTerms.

Context (rule/@context)
/rsm:CrossIndustryInvoice
Test expression (assert/@test)
( number(//ram:DuePayableAmount) > 0 and ( (//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description) ) ) or not(number(//ram:DuePayableAmount) > 0)
Changes in the KoSIT validation rules
  • 2022-11-152022-11-15 · AddedTest to monitor implementation of BR-CO-25