Skip to content

BR-CO – Conditions and calculations

BR-CO-25: amount due without due date and payment terms

ErrorEN 16931 business rule (CEN)

Official message

[BR-CO-25]-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.

Source: CEN EN 16931, version 1.3.16

How to fix it

Set cbc:DueDate with the due date or cac:PaymentTerms/cbc:Note with the conditions of settlement, preferably both. In CII they stand in ram:SpecifiedTradePaymentTerms as DueDateDateTime and Description.

Before – invalid
<cac:LegalMonetaryTotal>
  <cbc:PayableAmount currencyID="EUR">1115.51</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
After – corrected
<cbc:DueDate>2026-03-31</cbc:DueDate>
<cac:PaymentTerms>
  <cbc:Note>Payable within 30 days without deduction</cbc:Note>
</cac:PaymentTerms>
<cac:LegalMonetaryTotal>
  <cbc:PayableAmount currencyID="EUR">1115.51</cbc:PayableAmount>
</cac:LegalMonetaryTotal>

What the message means

Your invoice asks for money but does not say by when: there is neither a due date nor a text with the conditions of settlement. The norm requires, for a positive amount due, at least one of the two, so that the recipient knows when to pay and reminders have a basis. If both are missing, the invoice is rejected. Invoices with an amount of zero and credit notes are not affected.

Common causes

  • The due date stands only in the PDF layout, not in the XML.
  • The conditions of settlement were placed in the footer as an image or free text.
  • For immediate settlement neither date nor text was set.

Frequently asked

Where does the due date stand in the UBL document?

In cbc:DueDate directly under the root element, after the invoice type; not inside the payment terms.

How do I state an early payment discount in the payment terms?

In XRechnung with the fixed pattern #SKONTO#TAGE=14#PROZENT=2.00# in cbc:Note.

Fields concerned

  • BT-115
  • BT-9
  • BT-20

Related rules

Check your invoice

The EN 16931 validator reports this rule with the line number and location – right in your browser, without upload.

Open the EN 16931 validator

Technical details
UBL · Context (XPath)
/ubl:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount
UBL · Schematron test
((. > 0) and (exists(//cbc:DueDate) or exists(//cac:PaymentTerms/cbc:Note))) or (. <= 0)
CII · Context (XPath)
/rsm:CrossIndustryInvoice
CII · Schematron test
(number(//ram:DuePayableAmount) > 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount)>0)

Explanation written on 14 September 2026