Skip to content

PEPPOL-EN16931-R110: Start of the line period (BT-134) is before the invoicing period

Official message

[PEPPOL-EN16931-R110] Start date of line period MUST be within invoice period.

XRechnung (CII) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[PEPPOL-EN16931-R110] Start date of line period MUST be within invoice period.

XRechnung (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
XRechnung (CII), XRechnung (UBL)

What does this mean?

Start date of line period MUST be within invoice period: if an invoicing period start date (BT-73) is given, the invoice line period start date (BT-134) must not be before it. The line period starts earlier.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. CII: ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime against ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime. UBL: cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate against cac:InvoicePeriod/cbc:StartDate.

Typical causes

Services from an earlier period were included in the invoice without adjusting the invoicing period.
Day and month were swapped in the date.

How to fix the error

Choose the invoicing period start date (BT-73) so that it is not after the earliest line start, or correct the date of the line.
If lines do not belong to the invoicing period, invoice them separately.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form, "Experte" view, check the field "Abrechnungszeitraum Start (BT-73)" (invoicing period start) in section "Datum & Zeiträume" (dates and periods) and "Zeitraum Start (BT-134)" (period start) of the line in section "Rechnungspositionen (BG-25)" (invoice lines); the line start must not be before the invoicing period start.

Example

Wrong

<ram:BillingSpecifiedPeriod>
  <ram:StartDateTime>
    <udt:DateTimeString format="102">20260201</udt:DateTimeString>
  </ram:StartDateTime>
</ram:BillingSpecifiedPeriod>
...
<ram:SpecifiedLineTradeSettlement>
  <ram:BillingSpecifiedPeriod>
    <ram:StartDateTime>
      <udt:DateTimeString format="102">20260115</udt:DateTimeString>
    </ram:StartDateTime>
  </ram:BillingSpecifiedPeriod>
  ...
</ram:SpecifiedLineTradeSettlement>

Correct

<ram:BillingSpecifiedPeriod>
  <ram:StartDateTime>
    <udt:DateTimeString format="102">20260115</udt:DateTimeString>
  </ram:StartDateTime>
</ram:BillingSpecifiedPeriod>
...
<ram:SpecifiedLineTradeSettlement>
  <ram:BillingSpecifiedPeriod>
    <ram:StartDateTime>
      <udt:DateTimeString format="102">20260115</udt:DateTimeString>
    </ram:StartDateTime>
  </ram:BillingSpecifiedPeriod>
  ...
</ram:SpecifiedLineTradeSettlement>
For developers: test expression per syntax

XRechnung (CII) (CII)

Context: rsm:SupplyChainTradeTransaction[ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime]/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime

udt:DateTimeString >= ../../../../ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString

XRechnung (UBL) (UBL)

Context: ubl-invoice:Invoice[cac:InvoicePeriod/cbc:StartDate]/cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate | ubl-creditnote:CreditNote[cac:InvoicePeriod/cbc:StartDate]/cac:CreditNoteLine/cac:InvoicePeriod/cbc:StartDate

xs:date(text()) >= xs:date(../../../cac:InvoicePeriod/cbc:StartDate)

Related validation rules

Last updated:
Explanation of the validation rule, not legal or tax advice.