Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-70 Fatal (error) /ubl:Invoice | /cn:CreditNote
Schematron ID: ibr-087  |  Field: ibt-149 — Item price base quantity

Classification

Transaction Data — the constraint is on a value carried on the line at the point of billing, and it is a value most ERP systems populate from the item master without anyone looking at it.

What the Rule Is Checking

Where cac:Price/cbc:BaseQuantity is present, its decimal value must be strictly greater than zero. Zero fails. A negative fails. The rule permits the element to be absent entirely at the generic PINT level, which is where a UAE implementer needs to stop reading the base profile and check the jurisdiction rules.

Base quantity is the unit of pricing. Where an item is priced at AED 250 per 100 units, the price amount is 250 and the base quantity is 100. Where the item is priced per single unit, the base quantity is 1. It is the denominator that converts a price into a line value.

Why This Rule Exists

The UAE profile makes this field compulsory. Rule ibr-126-ae asserts that within Price Details (IBG-29), both the item price base quantity (IBT-149) and the item gross price (IBT-148) must be present. So on a UAE invoice the element is always there, which means ibr-087 always runs, which means the value must always be a positive number.

The arithmetic explains why. UAE rule ibr-147-ae calculates the line net amount as the invoiced quantity multiplied by the item net price divided by the base quantity, plus charges, less allowances, rounded to two decimals. A base quantity of zero puts a division by zero into the middle of the line total calculation. Rather than let that propagate into a tax total, the profile stops the document at the base quantity itself.

The practical exposure is in item master data rather than in billing. A base quantity of zero is almost never typed by a user; it arrives from a migrated item record where the field was empty in the source system and mapped to a numeric default. It then sits dormant until the first invoice for that item, at which point the document fails validation and the item has to be corrected under time pressure.

Standard / Code List

Not applicable. The value is a decimal, constrained only by sign. The accompanying @unitCode attribute draws on UN/ECE Recommendation 20 and is governed by a separate rule.

UAE Data Example

PASSES ✓: <cbc:PriceAmount currencyID="AED">250.00</cbc:PriceAmount> with <cbc:BaseQuantity unitCode="H87">100</cbc:BaseQuantity> for an item priced at AED 250 per hundred pieces.

PASSES ✓: A base quantity of 1 for a consultancy day rate priced per unit.

FAILS ✗: <cbc:BaseQuantity unitCode="H87">0</cbc:BaseQuantity>, carried forward from an item master field that was blank at migration.

FAILS ✗: A negative base quantity on a credit note, produced by a routine that flips the sign on every numeric field when reversing an invoice.

What Your ERP / IT Team Must Ensure

  • Set a positive default and a not-null, greater-than-zero constraint on the pricing base quantity in the item master, then run the check across the existing catalogue rather than only on new records.
  • Exclude base quantity from any credit-note sign-reversal logic. Quantities and amounts reverse; the pricing denominator does not.
  • Reconcile the migrated item catalogue against source pricing units before go-live, treating a zero or empty base quantity as a blocking data-quality defect.
  • Confirm the field is populated on every line, since ibr-126-ae makes it mandatory in the UAE profile even where the base PINT rules would allow its absence.
  • Test the line net amount calculation in ibr-147-ae against the same data, because a base quantity that is positive but wrong produces a document that validates and a line total that is incorrect.

Related Rules

UAE rule ibr-126-ae makes both base quantity and gross price mandatory in Price Details, and ibr-147-ae defines the line net amount formula that consumes this value. The unit code attached to the base quantity is constrained by its own rule, covered next in this series.