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).
Official rule text
[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).
Where the rule applies
| Rule set | Document type | Severity |
|---|---|---|
| XRechnung with the CEN EN 16931 rules (3.0.2) KoSIT, CEN | EN16931 XRechnung (UBL Invoice), EN16931 XRechnung Extension (UBL Invoice), EN16931 XRechnung CVD (UBL Invoice), EN16931 XRechnung (UBL CreditNote), EN16931 XRechnung CVD (UBL CreditNote), EN16931 XRechnung (CII), EN16931 XRechnung Extension (CII), EN16931 XRechnung CVD (CII), EN16931 (UBL Invoice), EN16931 (UBL CreditNote), EN16931 (CII) | fatal |
| ZUGFeRD / Factur-X (2.5.2) FeRD, FNFE-MPE | Factur-X BASIC WL (CII), Factur-X BASIC (CII), Factur-X EN 16931 (CII), Factur-X EXTENDED (CII) | error |
| Peppol BIS Billing 3.0 (3.0-2026.5) OpenPeppol | Peppol BIS Billing 3.0 (UBL Invoice), Peppol BIS Billing 3.0 (UBL CreditNote) | fatal |
| French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04) FNFE-MPE | EXTENDED-CTC-FR (CII), EXTENDED-CTC-FR (UBL Invoice), EXTENDED-CTC-FR (UBL CreditNote) | fatal |
| CIUS-RO (1.0.9) Romanian Ministry of Finance | CIUS-RO (UBL Invoice), CIUS-RO (UBL CreditNote), CIUS-RO (CII): EN 16931 only | fatal |
| HR-CIUS (eRačun) (1.0.4) Croatian Tax Administration | HR-CIUS (UBL Invoice), HR-CIUS (UBL CreditNote) | fatal |
Fatal and error findings make the invoice invalid (valid: false); warnings and information do not.
Business terms concerned (EN 16931)
BT-73BT-74
Technical check
- Syntax
- UBL · CIUS-RO (1.0.9), French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04), HR-CIUS (eRačun) (1.0.4), Peppol BIS Billing 3.0 (3.0-2026.5), XRechnung with the CEN EN 16931 rules (3.0.2)
- Context
cac:InvoicePeriod- Test (must be true)
(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))
- Syntax
- CII · CIUS-RO (1.0.9), French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04), XRechnung with the CEN EN 16931 rules (3.0.2), ZUGFeRD / Factur-X (2.5.2)
- Context
//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod- Test (must be true)
(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)
How the API reports this rule
Every finding of POST /v1/validate carries the rule id, severity, message, location (XPath) and rule set, and links this page (docUrl):
{
"severity": "fatal",
"ruleId": "BR-29",
"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).",
"xpath": "/…",
"source": "schematron:xrechnung@3.0.2",
"docUrl": "https://einvoice-api.eu/rules/br-29.html"
}Check an invoice against this rule and every other rule of the rule set – in the browser, without sign-up.
Rule text and severity are taken unchanged from the official rule set; this page is generated from the API's configuration. Not legal advice.