Skip to content

BR-30: Invoice line period end date (BT-135) is before the start date (BT-134)

Official message

[BR-30] If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).

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

[BR-30] If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).

EN 16931 (UBL) · Error · Message language: English · Version: xrechnung-3.0.2-validator-configuration-2026-08-31

[BR-30] If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).

Factur-X / ZUGFeRD EN 16931 · Error · Message language: English · Version: Factur-X 1.08 / ZUGFeRD 2.4
Severity
Error The invoice is invalid and may be rejected by the recipient.
Applies to
EN 16931 (CII), EN 16931 (UBL), Factur-X / ZUGFeRD EN 16931
Affected fields
BT-134, BT-135

What does this mean?

If both the invoice line period start date (BT-134) and end date (BT-135) of an invoice line are given, the end date shall not be before the start date; both may be equal.

Typical causes

The line's start and end date were swapped.
Day and month were mixed up.
CII: A date is not in format 102 (YYYYMMDD).

How to fix the error

For the line concerned, enter start and end date so that the end is equal to or later than the start.
CII: ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod with ram:StartDateTime and ram:EndDateTime (format="102"), UBL: cac:InvoiceLine/cac:InvoicePeriod with cbc:StartDate and cbc:EndDate.
Generate and validate the invoice again.

In E-Rechnungsfreund

In the invoice form ("Experte" view), section "Rechnungspositionen (BG-25)" (invoice lines), check the fields "Zeitraum Start (BT-134)" (period start) and "Zeitraum Ende (BT-135)" (period end) of the line concerned.

Example

Wrong

<ram:SpecifiedLineTradeSettlement>
  ...
  <ram:BillingSpecifiedPeriod>
    <ram:StartDateTime>
      <udt:DateTimeString format="102">20260430</udt:DateTimeString>
    </ram:StartDateTime>
    <ram:EndDateTime>
      <udt:DateTimeString format="102">20260401</udt:DateTimeString>
    </ram:EndDateTime>
  </ram:BillingSpecifiedPeriod>
  ...
</ram:SpecifiedLineTradeSettlement>

Correct

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

EN 16931 (CII) (CII)

Context: //ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod

(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)

EN 16931 (UBL) (UBL)

Context: cac:InvoiceLine/cac:InvoicePeriod | cac:CreditNoteLine/cac:InvoicePeriod

(exists(cbc:EndDate) and exists(cbc:StartDate) and xs:date(cbc:EndDate) >= xs:date(cbc:StartDate)) or not(exists(cbc:StartDate)) or not(exists(cbc:EndDate))

Factur-X / ZUGFeRD EN 16931 (CII)

Technical ID in the source: FX-SCH-A-000212

Context: //ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod

(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)

Related validation rules

  • BR-01: Specification identifier (BT-24) is missing
  • BR-02: Invoice number (BT-1) is missing
  • BR-03: Invoice issue date (BT-2) is missing
  • BR-04: Invoice type code (BT-3) is missing
  • BR-05: Invoice currency code (BT-5) is missing
  • BR-06: Seller name (BT-27) is missing

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