Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-36 Fatal (error) cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=true]
Schematron ID: ibr-043  |  Field: IBT-141 (Invoice line charge amount), cbc:Amount

Classification

Transaction Data — this rule is the line-level counterpart to BR-35. Where BR-35 requires an amount on a document-level charge (IBG-21), this rule requires an amount on a charge attached to an individual invoice line (IBG-28). A single invoice can carry both: a document-level delivery fee applied to the whole shipment, and a separate line-level charge — for example, expedited handling on one specific item.

What the Rule Is Checking

Where an AllowanceCharge element with ChargeIndicator true sits inside an InvoiceLine or CreditNoteLine, the rule requires that cbc:Amount is present. A line-level charge with a reason but no amount fails, mirroring the logic that already applies to BR-35 at document level.

Why This Rule Exists

Line-level charges are how PINT-AE represents item-specific surcharges — a rush-order fee on one product line, a customisation charge for a specific service, or a packaging cost that applies to one line rather than the invoice as a whole. The invoice line net amount, governed separately by BR-24, is calculated using the line quantity, unit price, and any line-level allowances or charges. Without a defined amount, that calculation has no figure to add, and the line total cannot be verified against the document-level summation rules that check the sum of all line net amounts against the invoice's declared line extension total.

As with allowances, the taxable value of each line after charges are added is what determines the VAT due on that line. A line-level charge without an amount leaves that taxable value understated by the value of the surcharge that should have been included.

UAE Data Example

PASSES ✓: Invoice line for a single custom-configured unit at 800.00 AED, with a line-level AllowanceCharge, ChargeIndicator = true, Amount = 50.00 AED, reason "Custom configuration fee". Amount present; rule passes.

PASSES ✓: Invoice line with no AllowanceCharge block. No line-level charge is being applied; the rule does not fire.

FAILS ✗: Invoice line with an AllowanceCharge, reason code populated, ChargeIndicator = true, but no Amount. Fatal error — the line surcharge has no quantified value.

What Your ERP / IT Team Must Ensure

  • Verify that line-item surcharge functionality in your billing or sales module always writes a concrete amount into the line-level charge structure, rather than storing only a reason code that is meant to be resolved elsewhere.
  • Where a surcharge is configured as a percentage against a single line, confirm the extraction logic calculates the resulting amount and populates cbc:Amount directly — a percentage alone does not satisfy this rule.
  • Test invoices that combine a line-level allowance and a line-level charge on the same line — for example, a bulk discount and a rush-order fee stacked on one item — to confirm each block independently carries its own amount.
  • Reconcile line-level charge amounts against the line net amount (IBT-131, BR-24) in pre-submission validation, since the two figures must be mathematically consistent.

Related Rules

BR-35 (ibr-036) applies the equivalent amount requirement at document level (IBG-21). BR-38 (ibr-044) requires that the same line-level charge also carries a reason or reason code. BR-32 (ibr-041) applies the equivalent rule to a line-level allowance rather than a charge.