Skip to content

PEPPOL-EN16931-R111: End of the line period (BT-135) is after the invoicing period

Official message

[PEPPOL-EN16931-R111] End 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-R111] End 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?

End date of line period MUST be within invoice period: if an invoicing period end date (BT-74) is given, the invoice line period end date (BT-135) must not be after it. The line period ends later.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. CII: ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime against ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime. UBL: cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate against cac:InvoicePeriod/cbc:EndDate.

Typical causes

Services from a later 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 end date (BT-74) so that it is not before the latest line end, 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 Ende (BT-74)" (invoicing period end) in section "Datum & Zeiträume" (dates and periods) and "Zeitraum Ende (BT-135)" (period end) of the line in section "Rechnungspositionen (BG-25)" (invoice lines); the line end must not be after the invoicing period end.

Example

Wrong

<ram:BillingSpecifiedPeriod>
  ...
  <ram:EndDateTime>
    <udt:DateTimeString format="102">20260131</udt:DateTimeString>
  </ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
...
<ram:SpecifiedLineTradeSettlement>
  <ram:BillingSpecifiedPeriod>
    ...
    <ram:EndDateTime>
      <udt:DateTimeString format="102">20260215</udt:DateTimeString>
    </ram:EndDateTime>
  </ram:BillingSpecifiedPeriod>
  ...
</ram:SpecifiedLineTradeSettlement>

Correct

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

XRechnung (CII) (CII)

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

udt:DateTimeString <= ../../../../ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString

XRechnung (UBL) (UBL)

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

xs:date(text()) <= xs:date(../../../cac:InvoicePeriod/cbc:EndDate)

Related validation rules

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