Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-45 Fatal (error) /ubl:Invoice | /cn:CreditNote
Schematron ID: ibr-053  |  Field: cbc:TaxCurrencyCode (IBT-006) and cac:TaxTotal/cbc:TaxAmount (IBT-111)

Classification

Contextual — the rule only fires on invoices that declare a Tax accounting currency code (IBT-006). Invoices issued and taxed in a single currency, with no cbc:TaxCurrencyCode element, never encounter it.

What the Rule Is Checking

The schematron test reads: every currency declared in cbc:TaxCurrencyCode must be matched by a cac:TaxTotal/cbc:TaxAmount whose currencyID attribute carries that same currency. Declaring a tax accounting currency is therefore a commitment: the document must contain an Invoice total Tax amount expressed in that accounting currency (IBT-111), alongside the tax total in the invoice currency itself.

Why This Rule Exists

An invoice can be priced in one currency while the tax it carries is accounted for in another. The Tax accounting currency code exists precisely for that split: it tells the recipient and the authority which currency the tax amount must ultimately be settled and reported in. A document that declares the split but only supplies the tax amount in the invoice currency leaves the receiving system unable to book the tax figure without performing its own conversion, which reintroduces the rounding and rate-selection ambiguity the field was designed to remove. For UAE transactions invoiced in a foreign currency, this is the mechanism that carries the AED tax figure inside the document itself.

UAE Data Example

PASSES ✓: An invoice with <cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode> and <cbc:TaxCurrencyCode>AED</cbc:TaxCurrencyCode> carries two cac:TaxTotal blocks: one with <cbc:TaxAmount currencyID="USD">500.00</cbc:TaxAmount> and a second with <cbc:TaxAmount currencyID="AED">1836.25</cbc:TaxAmount>.

FAILS ✗: The same invoice declares TaxCurrencyCode AED but supplies only the USD tax total — a common outcome when an ERP's e-invoicing extract maps the tax currency field from the company configuration but the AED-converted tax amount was never added to the output structure.

What Your ERP / IT Team Must Ensure

Foreign-currency invoicing is where this rule earns its place in test plans. The invoice extract must populate a second tax total, in the tax accounting currency, whenever the tax currency field is set — and suppress the tax currency field entirely when no conversion applies, rather than defaulting it. Confirm the conversion is performed at document generation with the correct rate source, and include at least one foreign-currency invoice in UAT for every billing entity that prices in anything other than AED.

Related Rules

This rule governs the presence of the accounting-currency tax total. The arithmetic rules on tax totals and line-level VAT amounts apply independently in the invoice currency; see the series posts on the tax total calculation rules for that layer.