Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-113 | Schematron ID: ibr-006-ae Fatal (error) cbc:NatureCode

Assert text: [ibr-006-ae]-In Item Information (IBG-31) where Invoiced tax category code (ibt-151) is 'VAT Reverse charge', Type of goods or services (BTAE-09) MUST be selected from the Goods or services subject to RCM Code list.

Test: ((not(contains(normalize-space(.), ' ')) and contains(' DL8.48.8.2 DL8.48.8.1 DL8.48.3.1 DL8.48.3.2 DL8.48.3.3 ', concat(' ', normalize-space(.), ' '))))

Classification

Transaction Data / Tax Determination.

What the Rule Is Checking

Whenever an invoice line carries the VAT category code for reverse charge, the item information block must also carry a Type of goods or services code (BTAE-09) drawn from a five-value list under DL8.48. The rule doesn't fire on every line — only on the subset already flagged as reverse charge — and on those lines it demands one of exactly five coded values.

Why This Rule Exists

Reverse charge shifts the VAT accounting obligation from supplier to buyer, and it applies to a specific, legislatively defined set of goods and services categories rather than to reverse-charge transactions in general. BTAE-09 is what tells the authority — and the buyer's own tax engine — which of those categories justifies the shift on this particular line, rather than leaving reverse charge as an assertion the receiving system has to take on trust.

UAE Data Example

PASSES ✓

<cac:ClassifiedTaxCategory>
  <cbc:ID>AE</cbc:ID>
</cac:ClassifiedTaxCategory>
<cbc:NatureCode>DL8.48.3.1</cbc:NatureCode>

FAILS ✗

<cac:ClassifiedTaxCategory>
  <cbc:ID>AE</cbc:ID>
</cac:ClassifiedTaxCategory>
<cbc:NatureCode></cbc:NatureCode>

A line correctly flagged as reverse charge at the tax category level but left with an empty or freeform NatureCode fails, because the reverse-charge flag alone doesn't identify which RCM category applies — the item type code carries that information and the rule treats it as a companion requirement, not an optional annotation.

What Your ERP / IT Team Must Ensure

  • Build the tax determination engine to populate BTAE-09 as a linked output whenever it assigns a reverse-charge VAT category, not as a separately maintained field that can drift out of sync.
  • Map the five DL8.48 sub-codes against the actual RCM-eligible categories the business transacts in — this is a narrower list than the general reverse-charge scope and needs explicit legal confirmation per category, not assumption.
  • Route any reverse-charge line the mapping can't confidently classify to manual tax review rather than defaulting to one of the five codes.
  • Audit historical reverse-charge transactions for this field specifically if RCM handling was implemented before this rule was in scope for testing, since it's a companion field easy to miss on an otherwise-correct reverse-charge build.

Related Rules