Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-112 | Schematron ID: ibr-005-ae Fatal (error) cac:InvoicePeriod/cbc:DescriptionCode

Assert text: [ibr-005-ae]-Frequency of billing (BTAE-06) should be taken from the frequency of billing code list.

Test: ((not(contains(normalize-space(.), ' ')) and contains(' DLY WKY Q15 MTH Q45 Q60 QTR YRL HYR OTH ', concat(' ', normalize-space(.), ' '))))

Classification

Transaction Data.

What the Rule Is Checking

Where an invoice covers a recurring or continuous supply and states a billing frequency in BTAE-06, that value must be one of nine codes — daily, weekly, three fortnightly-to-monthly variants, quarterly, yearly, half-yearly, or other. A blank frequency isn't tested here; a populated one outside these nine tokens fails.

Why This Rule Exists

Frequency of billing is what distinguishes a one-off invoice that happens to reference a period from a genuinely recurring arrangement, and it's the field that later determines whether ibr-co-19's start-or-end-date requirement on the invoicing period is even meaningful to a downstream system trying to reconcile monthly rent against a July-only invoice versus a quarterly retainer. A frequency the receiving system can't parse defeats that reconciliation even though the invoice validates.

UAE Data Example

PASSES ✓

<cbc:DescriptionCode>MTH</cbc:DescriptionCode>

FAILS ✗

<cbc:DescriptionCode>MONTHLY</cbc:DescriptionCode>

A subscription billing engine that exports the human-readable label MONTHLY instead of the coded token MTH fails validation, even though the intent is unambiguous to a person reading the XML.

What Your ERP / IT Team Must Ensure

  • Map the billing engine's internal frequency values to the nine-token list explicitly — most subscription and contract billing modules store a descriptive label, not the coded form.
  • Confirm the three sub-monthly codes (Q15, Q45, Q60) are covered if the business issues mid-cycle or bi-monthly billing, since these are easy to overlook against the more familiar DLY/WKY/MTH/QTR/YRL set.
  • Use OTH deliberately rather than leaving the field unmapped when a genuine but uncommon frequency doesn't fit the other eight codes.
  • Test this field alongside ibr-co-19 (invoicing period presence), since the two commonly fail together when a periodic-billing mapping template is only partially built.

Related Rules