BR-29: Invoicing period end date (BT-74) is before the start date (BT-73)
Official message
[BR-29] If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).
[BR-29] If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).
[BR-29] If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).
- 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-73, BT-74
What does this mean?
If both the invoicing period start date (BT-73) and end date (BT-74) are given, the end date shall not be before the start date; both may be equal.
Typical causes
Start and end date were swapped.
Day and month were mixed up, e.g. 03/04 instead of 04/03.
CII: A date is not in format 102 (YYYYMMDD).
How to fix the error
Check start and end date and enter them so that the end is equal to or later than the start.
CII: ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod with ram:StartDateTime and ram:EndDateTime (format="102"), UBL: cac:InvoicePeriod with cbc:StartDate and cbc:EndDate.
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form ("Experte" view), section "Datum & Zeiträume" (dates and periods), check the fields "Abrechnungszeitraum Start (BT-73)" (period start) and "Abrechnungszeitraum Ende (BT-74)" (period end).
Example
Wrong
<ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260331</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime>
<udt:DateTimeString format="102">20260301</udt:DateTimeString>
</ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
Correct
<ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260301</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime>
<udt:DateTimeString format="102">20260331</udt:DateTimeString>
</ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
For developers: test expression per syntax
EN 16931 (CII) (CII)
Context: //ram:ApplicableHeaderTradeSettlement/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: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-000059
Context: //ram:ApplicableHeaderTradeSettlement/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
Last updated:
Explanation of the validation rule, not legal or tax advice.