BR-CO – Conditions and calculations
BR-CO-19: invoicing period (BG-14) without start or end date
ErrorEN 16931 business rule (CEN)
The rule's own wording
[BR-CO-19]-If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.Source: CEN EN 16931, version 1.3.16
Meaning of the rule
Your invoice names an invoicing period, but the group is empty: neither a start nor an end date is given. The norm allows both together or one of the two, but not none. A period without a date tells the recipient nothing and is rejected. Often the software creates the group from a template and fills the dates only when the order holds a service period; for single deliveries it stays empty.
What usually goes wrong
- The template always writes the group, but the order has no service period.
- The date stands in a free-text field instead of the date fields.
- Only the description code for the tax point date was set, without dates.
The fix in the XML
Enter in cac:InvoicePeriod at least cbc:StartDate or cbc:EndDate, preferably both, in the format YYYY-MM-DD; in CII ram:StartDateTime and ram:EndDateTime of the BillingSpecifiedPeriod. If there is no period, remove the group entirely.
<cac:InvoicePeriod>
</cac:InvoicePeriod><cac:InvoicePeriod>
<cbc:StartDate>2026-02-01</cbc:StartDate>
<cbc:EndDate>2026-02-28</cbc:EndDate>
</cac:InvoicePeriod>Questions and answers
Is a description code without a date enough in UBL?
In UBL yes, when only cbc:DescriptionCode is set; but that is the tax point date detail, not an invoicing period. For the period you need a date.
May the end date lie before the start date?
No. The end date must not precede the start date; BR-CO-19 only checks that at least one is present.
EN 16931 fields
- BG-14
- BT-73
- BT-74
See also
- BR-29
- BR-CO-20
- BR-IC-11
Check your invoice
The EN 16931 validator reports this rule with the line number and location – right in your browser, without upload.
The rule in detail
- UBL · Context (XPath)
cac:InvoicePeriod- UBL · Schematron test
exists(cbc:StartDate) or exists(cbc:EndDate) or (exists(cbc:DescriptionCode) and not(exists(cbc:StartDate)) and not(exists(cbc:EndDate)))- CII · Context (XPath)
//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod- CII · Schematron test
(ram:StartDateTime) or (ram:EndDateTime)
Explanation written on 14 September 2026