Version 1.0.4

Maintained by United Arab Emirates (UAE) Peppol Authority

Release Date

2026-07-29

Status

Final

What’s new in this release?

  • Schematron Validation Logic Corrections

    • ibr-tdd-17 now independently enforces both the presence of the Receiver Endpoint Scheme identifier and the SPIS value 0242, aligning the implementation with the semantic model cardinality (1..1).

    • ibr-tdd-33 now applies the same export exclusion as the PINT AE Billing rule IBR-135-AE, closing the alignment gap between the Billing and TDD layers.

  • Schematron Message Corrections

    • Completed truncated or generic validation messages so that every message names the business term, business group, and concrete element path (ibr-tdd-21, ibr-tdd-22, ibr-tdd-40, ibr-tdd-44, ibr-tdd-45, ibr-tdd-47, ibr-tdd-55).

    • Renamed the internal variable $checkForReportedDocument to $isFailedTransmission for clarity; the ibr-tdd-22 message now states the 'F' (Failed transmission) exemption.

  • Semantic Model Corrections

    • Removed the dangling ibr-tdd-50 rule reference from the Buyer VAT identifier (ibt-048), which rendered as an empty Business Rules entry.

    • Added the ibr-tdd-55 rule reference to btae-20 so the rule appears on the term page.

    • Clarified in the definition of tdg-02 (REPORTED DOCUMENT) that the group may only be omitted for 'F' (Failed transmission) documents.

  • Syntax Binding Corrections

    • Removed the unrelated tdt-005 reference from the pxs:ReportingParty binding, which caused an incorrect additional syntax binding to be shown on the IBR-TDD-05 rule page.

Overview

This release addresses findings raised during an external implementer review of the UAE Tax Data Document (TDD) specification version 1.0.3.

The release focuses on tightening two Schematron assertions (ibr-tdd-17, ibr-tdd-33), completing truncated or generic validation messages, and correcting semantic model and syntax binding metadata that produced misleading documentation pages.

Only the TDD artefacts are affected. The Billing and Self-Billing specifications are unchanged.

Version Information

TDD AE 1.0.4

Applies to

UAE Tax Data Document

Reviewed

-

Changes

Data Model

Term Section Change Description Reason

tdg-02 (REPORTED DOCUMENT)

Semantic Model

Definition now states that the group may only be omitted when the Tax Data Document type code (tdt-006) is 'F' (Failed transmission).

The conditional behaviour implemented in ibr-tdd-22 was not visible in the Semantic Model, so implementers could not determine when the Reported Document may be omitted.

ibt-048 (Buyer VAT identifier)

Semantic Model

Removed the rule reference to ibr-tdd-50.

The rule was removed in v1.0.3; the dangling reference rendered as an empty IBR-TDD-50 entry on the Business Rules page.

btae-20

Semantic Model

Added a rule reference to ibr-tdd-55.

Ensures the rule appears on the btae-20 term page.

Documentation

Document Section Change Description Reason

Syntax Binding

pxs:ReportingParty

Removed the incorrect tdt-005 reference and declared the plain cardinality 1..1.

The IBR-TDD-05 rule page listed pxs:TaxData / pxs:ReportingParty as an additional syntax binding although the rule only validates pxs:TaxData / cbc:IssueTime.

Code Lists

  • No change.

Schematron Rules

Validation Logic Corrections
Rule ID Syntax (XML location) Change Business Rule Reason

ibr-tdd-17

cbc:EndpointID/@schemeID

Logic + Message

Receivers Endpoint Scheme identifier (tdt-008-1) MUST be present and MUST refer to an SPIS (0242).

The previous assertion passed when the scheme identifier was missing, relying on ibr-tdd-16 being evaluated beforehand. The rule now independently enforces presence and value, matching the semantic model cardinality (1..1).

ibr-tdd-33

cac:AccountingCustomerParty

Logic + Message

The BUYER (ibg-07) MUST be present when the Invoice transaction type code (BTAE-02) is other than XXXXXXX1 (Exports).

Alignment with PINT AE Billing rule IBR-135-AE, which exempts export transactions from the mandatory Buyer identification requirement. The same export exclusion is now reflected at the TDD level.

Validation Message Corrections
Rule ID Syntax (XML location) Change Business Rule Reason

ibr-tdd-21

cbc:ID/@schemeID

Message

Reporters Representative ID Scheme identifier (tdt-009-1), if present, MUST refer to an SPIS (0242).

The conditional form is the correct form for an optional attribute; the message now says so explicitly.

ibr-tdd-22

pxs:ReportedDocument

Message

The REPORTED DOCUMENT (tdg-02) MUST be present, except when the Tax Data Document type code (tdt-006) is 'F' (Failed transmission).

The message now states the exemption. The internal variable was renamed from $checkForReportedDocument to $isFailedTransmission. No change to validation behaviour.

ibr-tdd-40

cac:AccountingSupplierParty/cac:Party

Message

The SELLER (ibg-04) PARTY DETAILS element (cac:AccountingSupplierParty/cac:Party) MUST be present.

The previous message was generic ("The /cac:Party element MUST be present") and relied on a runtime variable; it now names the business group and the concrete element path.

ibr-tdd-44

cac:PartyTaxScheme/cbc:CompanyID

Message

The Seller VAT identifier (ibt-031) or the Seller tax registration identifier (ibt-032) MUST be present.

The previous message opened with runtime variables which rendered in the documentation as "The () MUST be present". The message now opens with a complete, static sentence naming both candidate business terms and the element path.

ibr-tdd-45

cac:PartyTaxScheme/cac:TaxScheme/cbc:ID

Message

The Tax scheme code of the Seller VAT identifier (ibt-031-1) or of the Seller tax registration identifier (ibt-032-1) MUST be present.

Same cause as ibr-tdd-44; the message now opens with a complete, static sentence.

ibr-tdd-47

cac:AccountingCustomerParty/cac:Party

Message

The BUYER (ibg-07) PARTY DETAILS element (cac:AccountingCustomerParty/cac:Party) MUST be present.

Same cause as ibr-tdd-40; the message now names the business group and the concrete element path.

ibr-tdd-55

pxs:CustomContent

Message

The CUSTOM CONTENT (pxs:CustomContent) with the supplied Business term identifier MUST use the simple cbc:Value element.

The previous message rendered in the documentation as "The MUST use the simple cbc:Value element". The message now names the element and the supplied business term identifier and states explicitly that the complex cec:ExtensionContent element is not allowed in the UAE.

ibr-tdd-17 — independent enforcement of the SPIS scheme identifier:

Previous Behavior: test="not(exists(cbc:EndpointID/@schemeID)) or (cbc:EndpointID/@schemeID = '0242')" — the assertion passed when the schemeID attribute was completely missing, so a document such as <cbc:EndpointID>AE123</cbc:EndpointID> satisfied the rule.

New Behavior: test="exists(cbc:EndpointID/@schemeID) and normalize-space(cbc:EndpointID/@schemeID) = '0242'" — the attribute must be present and must equal 0242.

Justification: Aligns the Schematron implementation with the semantic model cardinality (1..1) of tdt-008-1 and the stated business requirement that the Receiver Endpoint Scheme identifier must be present and identify an SPIS. ibr-tdd-21 keeps its conditional form, which is the correct form for the optional tdt-009-1 attribute, and its message now says so.

ibr-tdd-33 — export exclusion aligned with IBR-135-AE:

Previous Behavior: The BUYER group (ibg-07) was required for all reported documents, with no export exclusion, while the Billing rule IBR-135-AE exempts export transactions (Invoice transaction type code BTAE-02 = XXXXXXX1) from the mandatory Buyer identification requirement.

New Behavior: The BUYER group is required unless the reported transaction is an export, determined from the Invoice transaction type code (cbc:ProfileExecutionID matching ^[01]{7}1$) of the embedded source document, using the same pattern as IBR-135-AE.

Justification: The TDD should be aligned with PINT AE. Applying the same export exclusion at the TDD level maintains a consistent structure and avoids discrepancies between the Billing and TDD reporting layers.

ibr-tdd-22 — variable rename and documented exemption:

Previous Behavior: test="exists(pxs:ReportedDocument) or ($checkForReportedDocument)" — the assertion could pass without pxs:ReportedDocument, but neither the message nor the Semantic Model explained under which circumstances the group may be omitted.

New Behavior: test="exists(pxs:ReportedDocument) or $isFailedTransmission" — the variable has been renamed to $isFailedTransmission, the message states the exemption, and the semantic model definition of tdg-02 explains that 'F' (Failed transmission) is the only case in which the group may be absent.

Justification: Transparency for implementers. No change to validation behaviour.

Action Items for Implementers

  • Update validation environments to use the latest TDD Schematron artefacts.

  • Documents omitting the Receiver Endpoint Scheme identifier (cbc:EndpointID/@schemeID under pxs:ReceivingParty) will now fail ibr-tdd-17 in addition to ibr-tdd-16.

  • TDDs reporting export transactions (BTAE-02 = XXXXXXX1) are no longer required to include the BUYER (ibg-07) group.

  • Review validation message mappings if your implementation relies on exact message text matching.

  • No code list or syntax (XSD) changes have been introduced in this release.

Support

For support and clarification: OpenPeppol UAE Peppol Authority support.

Version 1.0.3

Maintained by United Arab Emirates (UAE) Peppol Authority

Release Date

2026-05-25

Status

Final

What’s new in this release?

  • Schematron Message Corrections

    • Corrected validation message typos for SPIS (Service Provider Identification Scheme) references.

    • Corrected invalid business term references from idt- to ibt-.

  • Namespace Prefix Standardization

    • Replaced non-standard inv namespace prefix with the conventional ubl prefix for the UBL Invoice namespace.

    • Updated related XPath expressions throughout the TDD Schematron artefacts.

  • Schematron Cleanup

    • Removed commented-out dead rule block ibr-tdd-50, previously disabled due to conflict with IBR-135-AE.

  • Documentation Improvements

    • Applied grammar, terminology, data type, and markup corrections across TDD specification files and release notes.

Overview

This release addresses findings identified during a comprehensive QA audit of the UAE Tax Data Document (TDD) specification.

The release primarily focuses on Schematron message corrections, namespace consistency improvements, cleanup of obsolete validation artefacts, and documentation quality enhancements.

No new business rules, syntax extensions, or semantic data model changes are introduced in this release.

Version Information

TDD AE 1.0.3

Applies to

UAE Tax Data Document

Reviewed

-

Changes

Data Model

  • No change.

Documentation

Document Section Change Description Reason

TDD specification files and release notes

Various

Grammar, terminology, markup, and data type corrections.

Documentation quality and consistency improvements.

Code Lists

  • No change.

Schematron Rules

Validation Message Corrections
Rule ID Syntax (XML location) Change Business Rule Reason

ibr-tdd-17

cbc:EndpointID/@schemeID

Message

Receiver Endpoint Scheme identifier MUST refer to an SPIS.

Corrected typo from SPID to SPIS (Service Provider Identification Scheme).

ibr-tdd-21

cbc:ID/@schemeID

Message

Reporter Representative ID Scheme identifier MUST refer to an SPIS.

Corrected typo from SPID to SPIS.

ibr-tdd-30-1

cbc:DocumentCurrencyCode

Message

Document currency code MUST be coded according to the code list.

Corrected invalid business term reference from (idt-005) to (ibt-005).

ibr-tdd-31-1

cbc:TaxCurrencyCode

Message

Accounting currency code MUST be coded according to the code list.

Corrected invalid business term reference from (idt-006) to (ibt-006).

Schematron Cleanup and Namespace Alignment
Rule ID Syntax (XML location) Change Business Rule Reason

ibr-tdd-50

cbc:CompanyID

Removed

The Buyer VAT identifier (ibt-048) MUST be present.

Removed commented-out dead rule block previously disabled due to conflict with IBR-135-AE.

ibr-tdd-57

/ubl:Invoice, /cn:CreditNote

Updated

Document root validation.

XPath updated from inv:Invoice to ubl:Invoice following namespace prefix standardization.

Namespace prefix standardization:

Previous Behavior: The TDD Schematron bound prefix inv to the UBL Invoice namespace (urn:oasis:names:specification:ubl:schema:xsd:Invoice-2). Billing and self-billing Schematron artefacts use the conventional ubl prefix for the same namespace.

New Behavior: The namespace prefix was standardized from inv to ubl throughout peppol-ae-tdd.sch. All XPath expressions referencing inv:Invoice were updated to ubl:Invoice.

Justification: Aligns with OASIS UBL naming conventions and with the billing and self-billing Schematron artefacts, reducing implementation inconsistency across UAE Peppol specifications.

ibr-tdd-17 / ibr-tdd-21 — SPID → SPIS:

Previous Behavior: Validation messages referred to SPID, which is not a defined acronym.

New Behavior: Validation messages now correctly reference SPIS (Service Provider Identification Scheme, code 0242).

Justification: SPIS is the official terminology used in the Peppol ICD code list and previous release documentation. The previous wording could cause confusion for implementers.

ibr-tdd-30-1 / ibr-tdd-31-1 — idt → ibt:

Previous Behavior: Validation messages referenced (idt-005) and (idt-006), which are non-existent business term identifiers.

New Behavior: Validation messages now correctly reference (ibt-005) (Document currency code) and (ibt-006) (Accounting currency code).

Justification: The idt- prefix does not exist in the semantic data model. The correct prefix is ibt- (Invoice Business Term).

Action Items for Implementers

  • Update validation environments to use the latest TDD Schematron artefacts.

  • If validation tooling or custom XPath processing references the inv: namespace prefix, update references to use ubl: instead.

  • Review validation message mappings if your implementation relies on exact message text matching.

  • No new business rules or semantic model changes have been introduced in this release.

Support

For support and clarification: OpenPeppol UAE Peppol Authority support.

Version 1.0.2

Release date

2026-01-27

  • The document type identifier scheme in section 3.1.2 was corrected from peppol-doctype-wildcard to busdox-docid-qns

  • Fixed an error in the Schematron in the regular expression that is supposed to check the time values

Version 1.0.1

Release date

2025-12-23

  • Error correction for TDS usage

  • Added new section "Tax Data Document Status functionality"

  • The cardinality of tdg-02 (REPORTED DOCUMENT) was changed from 1..1 to 0..1

Version 1.0.0

Release date

2025-11-29

  • First version of UAE Tax Data Document