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.
[PEPPOL-EN16931-R111] End date of line period MUST be within invoice period.
- 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
- PEPPOL-EN16931-R001: Business process type (BT-23) is missing
- PEPPOL-EN16931-R005: VAT accounting currency (BT-6) equals the invoice currency (BT-5)
- PEPPOL-EN16931-R008: The invoice contains empty elements
- PEPPOL-EN16931-R010: Buyer electronic address (BT-49) is missing
- PEPPOL-EN16931-R020: Seller electronic address (BT-34) is missing
- PEPPOL-EN16931-R040: Allowance or charge amount does not match base amount and percentage
Last updated:
Explanation of the validation rule, not legal or tax advice.