Rule at a Glance

ID Severity Context (XPath)
Series ref. BR-114 | Schematron ID: ibr-007-ae Fatal (error) cbc:ProfileExecutionID (root)

Assert text: [ibr-007-ae]-When Invoice Transaction-type code (BTAE-02) has value 1XXXXXXX (Free trade zone), then providing value in Beneficiary ID (BTAE-01) MUST be provided.

Test: not(matches(cbc:ProfileExecutionID, "^1[01]{6}$")) or cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID

Classification

Transaction Data / Conditional (BTAE-02-driven).

What the Rule Is Checking

BTAE-02 is an eight-position transaction-type flag string, and this rule tests one position: the first character. When that character is set to 1 — meaning the supply involves a free trade zone — the invoice must also carry a Beneficiary ID in BTAE-01. Every other combination of flag positions is untouched by this particular rule.

Why This Rule Exists

Free zone transactions sit outside mainland VAT treatment in ways that depend on who is actually receiving the supply inside the zone, which is not always the same party as the buyer named elsewhere on the invoice. Beneficiary ID exists to name that receiving party explicitly, and without it a free-zone-flagged invoice asserts a special treatment the authority has no way to verify against a specific beneficiary.

UAE Data Example

PASSES ✓

<cbc:ProfileExecutionID>10000000</cbc:ProfileExecutionID>
...
<cac:PartyIdentification>
  <cbc:ID>100123456700003</cbc:ID>
</cac:PartyIdentification>

FAILS ✗

<cbc:ProfileExecutionID>10000000</cbc:ProfileExecutionID>
<!-- no Beneficiary ID present -->

An invoice correctly flagged as a free trade zone transaction at the header level but missing the beneficiary identifier fails, even if every other field is complete — this is a conditional companion field, not an independent optional one, in the same pattern as BTAE-06 (BR-112) and BTAE-09 (BR-113).

What Your ERP / IT Team Must Ensure

  • Confirm the ERP or billing engine that sets the free-trade-zone bit in BTAE-02 also has access to the beneficiary's identifier — these often live in different modules (order management versus customer master) and need an explicit join.
  • Treat the eight BTAE-02 positions as independent conditional triggers during mapping design, not a single flag — free trade zone, disclosed agent billing, summary invoicing and e-commerce each carry their own companion-field requirement elsewhere in this rule pack.
  • Validate free-zone invoices in a staging environment against real beneficiary data before go-live, since this scenario is comparatively rare in transaction volume and easy to leave unconfirmed until it fails in production.
  • Cross-check against ibr-137-ae and ibr-138-ae, which apply the identical conditional pattern to disclosed-agent and summary-invoice flags on the same BTAE-02 string.

Related Rules