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.
