Skip to content

BR-CO – Conditions and calculations

BR-CO-20: invoice line period (BG-26) without start or end date

ErrorEN 16931 business rule (CEN)

Official message

[BR-CO-20]-If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.

Source: CEN EN 16931, version 1.3.16

What the message means

A line of your invoice names a period of its own, but without a start and an end date. As at invoice level: a period needs at least one of the two dates, otherwise it is meaningless and the invoice is rejected. Line periods are meant for subscriptions, maintenance contracts or hourly billing; for single services the group is dispensable. Check whether your software writes the group empty from a template.

How to fix it

Fill in cac:InvoiceLine/cac:InvoicePeriod at least cbc:StartDate or cbc:EndDate, in CII the line's BillingSpecifiedPeriod with StartDateTime or EndDateTime. Lines without a period get no group.

Before – invalid
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cac:InvoicePeriod>
  </cac:InvoicePeriod>
</cac:InvoiceLine>
After – corrected
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cac:InvoicePeriod>
    <cbc:StartDate>2026-02-01</cbc:StartDate>
    <cbc:EndDate>2026-02-28</cbc:EndDate>
  </cac:InvoicePeriod>
</cac:InvoiceLine>

Frequently asked

Can I state the period at invoice level only instead?

Yes, when it applies to all lines. Line periods pay off when lines bill different periods.

May the line's end date precede its start date?

No, a period with the dates swapped is rejected as well. BR-CO-20 only requires at least one date to be present.

Also seen when …

  • The line template contains the period group, but the dates are not filled.
  • The period stands only in the line text, not in the date fields.
  • In mixed invoices every line gets the group, single deliveries included.

Fields concerned

  • BG-26
  • BT-134
  • BT-135
  • BG-25

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)
cac:InvoiceLine/cac:InvoicePeriod | cac:CreditNoteLine/cac:InvoicePeriod
UBL · Schematron test
exists(cbc:StartDate) or exists(cbc:EndDate)
CII · Context (XPath)
//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod
CII · Schematron test
(ram:StartDateTime) or (ram:EndDateTime)

Explanation written on 14 September 2026