Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-119 | Schematron ID: ibr-104-ae Fatal (error) cac:InvoiceLine | cac:CreditNoteLine

Assert text: [ibr-104-ae]-An Invoice line (IBG-25), where Line VAT Information (IBG-30) is present then Invoice line amount in AED (BTAE-10) and VAT Line amount in AED (BTAE-08) must be provided.

Test: not(exists(cac:Item/cac:ClassifiedTaxCategory)) or (exists(cac:Item/cac:ClassifiedTaxCategory) and exists(cac:ItemPriceExtension/cac:TaxTotal/cbc:TaxAmount) and exists(cac:ItemPriceExtension/cbc:Amount))

Classification

Transaction Data / Conditional (line-VAT-driven).

What the Rule Is Checking

Any invoice or credit note line that carries a Classified Tax Category — the line-level VAT classification block — must also carry two AED-denominated amounts inside the Item Price Extension: the VAT line amount (BTAE-08) and the invoice line amount (BTAE-10). A line with no tax category at all is exempt from the check; a line with a tax category but missing either AED figure fails.

Why This Rule Exists

UAE e-invoicing requires every invoice to state its tax-relevant amounts in AED regardless of the invoice's transaction currency, because the FTA's VAT reporting and reconciliation runs entirely in dirhams. Once a line asserts a VAT category, that line is making a tax claim, and a tax claim without a stated AED value for both the line amount and the VAT amount on it cannot be reconciled against the return — this is the AED-anchoring counterpart to the currency precision rule covered in BR-115.

UAE Data Example

PASSES ✓

<cac:ClassifiedTaxCategory>
  <cbc:ID>S</cbc:ID>
  <cbc:Percent>5</cbc:Percent>
</cac:ClassifiedTaxCategory>
<cac:ItemPriceExtension>
  <cbc:Amount currencyID="AED">1000.00</cbc:Amount>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="AED">50.00</cbc:TaxAmount>
  </cac:TaxTotal>
</cac:ItemPriceExtension>

FAILS ✗

<cac:ClassifiedTaxCategory>
  <cbc:ID>S</cbc:ID>
  <cbc:Percent>5</cbc:Percent>
</cac:ClassifiedTaxCategory>
<cac:ItemPriceExtension>
  <cbc:Amount currencyID="AED">1000.00</cbc:Amount>
  <!-- no TaxTotal/TaxAmount -->
</cac:ItemPriceExtension>

The failing line states the AED line amount but omits the AED VAT amount, so it fails even though a VAT percentage is declared on the tax category — the rule wants the calculated AED figure stated explicitly, not left for a downstream system to derive from the percentage.

What Your ERP / IT Team Must Ensure

  • Ensure the ERP's tax determination engine always writes both AED fields together as a single unit whenever it assigns a line-level tax category — treat them as one mandatory pair in the invoice line template, not two independently optional fields.
  • For foreign-currency invoices, confirm the AED conversion happens at the line-item calculation step and is stored, not computed only at the document total level, since this rule checks line-level presence specifically.
  • Cross-check against ibr-147-ae, which validates the arithmetic of the line net amount itself, and ibr-111-ae and ibr-145-ae, which govern the tax category and rate on the same line context — all fire off the same InvoiceLine/CreditNoteLine rule block.
  • Build a pre-submission validation step that flags any tax-categorised line missing either AED figure before the invoice reaches the ASP, rather than relying on the ASP's own schematron pass to surface the gap.

Related Rules