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.
<cac:LegalMonetaryTotal>
<cbc:PayableAmount currencyID="EUR">1115.51</cbc:PayableAmount>
</cac:LegalMonetaryTotal><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.
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