Provide at least one invoicing period date

Error BR-CO-19 EN 16931

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.

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

ram:BillingSpecifiedPeriod is present but contains neither ram:StartDateTime nor ram:EndDateTime. No boundary date is therefore provided for the invoicing period.

What the rule means

At least one date is required to define the invoicing period in time. A start date or an end date is sufficient; both are not mandatory.

Affected fields BG-14 BT-73 BT-74
Please add a start or end date for the invoicing period

The invoicing period is included, but both its start and end dates are missing. Either date is enough to define a boundary for the period.

What to do
  1. Add either ram:StartDateTime or ram:EndDateTime to ram:BillingSpecifiedPeriod.
  2. For a start date, check FacturXInvoice.BillingPeriodStart; for an end date, check FacturXInvoice.BillingPeriodEnd.
  3. Regenerate the invoice and validate it again.
What it looks like
✗ Triggers the message
<ram:BillingSpecifiedPeriod/>
✓ Correct
<ram:BillingSpecifiedPeriod>
  <ram:StartDateTime>
    <udt:DateTimeString format="102">20250101</udt:DateTimeString>
  </ram:StartDateTime>
</ram:BillingSpecifiedPeriod>
Check in FactoorSharp
  • FacturXInvoice.BillingPeriodEnd (BT-74)
  • FacturXInvoice.BillingPeriodStart (BT-73)
Technical details

The XPath checks whether the ram:StartDateTime or ram:EndDateTime element is present. It does not require both dates to be set.

Where the rule applies

The rule applies to the invoicing period ram:BillingSpecifiedPeriod in the document-level settlement. It checks whether a start date or an end date is present.

Context (rule/@context)
//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod
Test expression (assert/@test)
(ram:StartDateTime) or (ram:EndDateTime)