Rule at a Glance

ID Severity Context (XPath)
BR-29 Fatal (error) ubl:Invoice/cac:InvoicePeriod
Schematron ID: ibr-029  |  Fields: IBT-073 (Invoicing period start date), IBT-074 (Invoicing period end date), cbc:StartDate / cbc:EndDate

Classification

Transaction Data — BR-29 is a temporal constraint on the document-level invoicing period. Where most PINT-AE rules check field presence or value format, BR-29 checks the logical relationship between two date fields. The rule belongs to a small group of cross-field consistency checks that cannot be satisfied by validating each field independently.

What the Rule Is Checking

The test is: if both EndDate and StartDate exist, then EndDate >= StartDate. The rule is conditional in both directions: if only the start date is provided (IBT-073) and the end date is absent, the rule passes. If only the end date is provided (IBT-074) and the start date is absent, the rule also passes. The constraint activates only when both dates are present, at which point the end date must be the same as or later than the start date.

The dates must be in ISO 8601 format (YYYY-MM-DD). The comparison is a calendar date comparison, not a datetime comparison — so two invoices with the same calendar date as both start and end would represent a one-day period and would pass.

Why This Rule Exists

Invoicing period data (IBG-14) serves the VAT accounting function. For UAE VAT purposes, the tax point of a supply may be determined by the date of supply, the date of the invoice, or the date of payment — and for continuous supplies (such as subscriptions, retainers, or rental agreements), the invoicing period defines the supply period against which the tax point is assessed. An invoicing period where the end date precedes the start date is logically incoherent — it describes a period of negative duration, which cannot correspond to any actual supply.

The risk is not hypothetical. ERP date mapping errors — particularly where start and end date fields from a billing system are extracted in reverse order, or where a system populates dates from a template that was configured incorrectly — produce exactly this failure mode. The rule catches the error before the invoice reaches Corner 5, preventing a VAT period record that cannot be reconciled with the underlying accounting.

UAE Data Example

PASSES ✓: StartDate = 2027-01-01, EndDate = 2027-01-31. A one-month service period. End date is later than start date; rule passes.

PASSES ✓: StartDate = 2027-03-15, EndDate = 2027-03-15. A single-day period. End date equals start date; rule passes.

PASSES ✓: No InvoicePeriod block present. The invoicing period group is optional; BR-29 does not apply.

FAILS ✗: StartDate = 2027-02-28, EndDate = 2027-02-01. End date precedes start date by 27 days. Fatal error — the invoice will not clear Corner 2 validation.

What Your ERP / IT Team Must Ensure

  • Confirm the field mapping for IBT-073 and IBT-074 against the source fields in your ERP billing or contract management module. The labels "from date" and "to date" vary by ERP — verify which populates which PINT-AE field.
  • For subscription or retainer billing, test the period extraction for invoices generated at the end of a billing cycle. Some systems populate the period retrospectively, using the previous period's end date as the current period's start, which can produce edge-case date mismatches.
  • Where billing periods cross month boundaries or year-end, confirm that the year component of both dates is populated correctly. A date extraction error that produces 2026-12-01 as the end date and 2027-01-01 as the start date will fail BR-29.
  • If the invoicing period is not relevant to a transaction type (e.g. a one-time product sale), ensure the InvoicePeriod block is simply omitted rather than populated with empty or default dates — a default date of 0001-01-01 would fail the rule.
  • The companion rule BR-30 (ibr-030) applies the same logic to invoice line level periods (IBT-134, IBT-135). Where line-level period data is also populated, both rules must pass independently.

Related Rules

BR-30 (ibr-030) — The same temporal constraint applies at invoice line level: if both Invoice line period start date (IBT-134) and end date (IBT-135) are provided, the end date must be equal to or later than the start date. IBR-097 also constrains the invoicing period group to occur at most once at document level.