Release notes for PINT AE Self-Billing

Version 1.0.4

Maintained by United Arab Emirates (UAE) Peppol Authority

Release Date

2026-06-02

Status

Final

What’s new in this release?

  • Schematron Validation Corrections

    • Corrected validation logic for Reverse charge VAT rate handling.

    • Fixed Standard rated VAT consistency validation to ensure all Standard rated VAT categories use the mandatory 5% VAT rate.

    • Corrected VAT subtotal evaluation for invoices containing multiple VAT categories.

    • Improved validation of permitted VAT categories for out-of-scope invoice types.

    • Corrected ProfileID pattern validation to prevent malformed business process identifiers from passing validation.

  • Validator Stability Improvements

    • Added additional numeric validation safeguards to prevent runtime failures caused by malformed decimal and VAT percentage values.

  • Validation Message Improvements

    • Corrected outdated BT-ID references and formatting inconsistencies.

    • Improved terminology consistency, punctuation, capitalization, and wording clarity across multiple validation messages.

  • Documentation Updates

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

  • Sample Document Enhancements

    • Added new invoice and credit note examples covering additional VAT categories, allowance and charge scenarios, identifier variants, and Volume Discount credit note handling.

    • Added timezone (+04:00) to IssueTime elements across existing sample files.

Overview

This release introduces validation corrections, validator robustness improvements, validation message refinements, and documentation updates identified during the PINT-AE 2026-Q2 quality review.

The release primarily focuses on improving validation accuracy, implementation consistency, and validator stability.

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

Version Information

PINT General 1.1.3

PINT AE

1.0.4

Applies to

PINT AE Self-Billing

Reviewed

-

Changes

Data Model

  • No change.

Documentation

Document Section Change Description Reason

Specification files and release notes

Various

Grammar, markup, terminology, and typographical corrections.

Documentation quality and consistency improvements.

Code Lists

  • No change.

Schematron Rules

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

aligned-ibrp-ae-06

cac:AllowanceCharge/cac:TaxCategory[cbc:ID='AE']/cbc:Percent

Corrected

Document level allowance VAT rate (ibt-96) MUST be zero when category is "Reverse charge".

Corrected validation logic to require a VAT rate of exactly zero for Reverse charge transactions.

ibr-190-ae

//cac:TaxCategory[cbc:ID='S']/cbc:Percent

Corrected

All Standard rated VAT rates MUST be 5.00.

Corrected validation logic to ensure all Standard rated VAT categories consistently apply the mandatory 5% VAT rate.

ibr-105-ae

cac:TaxTotal/cac:TaxSubtotal

Corrected

Exactly one VAT breakdown for category N (Standard rate additional VAT).

Corrected VAT subtotal evaluation logic for invoices containing multiple VAT categories.

ibr-122-ae

//cac:TaxCategory/cbc:ID, //cac:ClassifiedTaxCategory/cbc:ID

Corrected

When Invoice type code is "Out of scope of VAT" or "Credit note related to goods or services", ALL VAT categories MUST be E, O, or Z.

Corrected category validation logic to ensure only permitted VAT categories are used for out-of-scope invoice types.

aligned-ibrp-002-ae

/*/cbc:ProfileID

Corrected

Business process (ibt-023) MUST start with urn:peppol:bis:billing or urn:peppol:bis:selfbilling.

Corrected ProfileID pattern validation to prevent invalid values from passing validation.

ibr-102-ae

cac:TaxSubtotal/cac:TaxCategory[cbc:ID='N']

Corrected

Taxable amount validation for Standard rate additional VAT breakdown.

Corrected an XPath formatting issue affecting VAT breakdown validation.

Validator Stability Improvements
Rule ID Syntax (XML location) Change Business Rule Reason

aligned-ibrp-s-08

cac:TaxSubtotal/cac:TaxCategory[cbc:ID='S']

Improved

VAT category taxable amount validation for Standard rated.

Added additional numeric validation checks to prevent validator runtime failures caused by malformed VAT percentage values.

aligned-ibrp-s-09

cac:TaxSubtotal/cac:TaxCategory[cbc:ID='S']

Improved

VAT category tax amount = taxable amount × rate.

Added additional numeric validation safeguards for VAT percentage, taxable amount, and tax amount calculations.

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

aligned-ibrp-s-10

cac:TaxSubtotal/cac:TaxCategory[cbc:ID='S']

Message

Standard rate breakdown MUST not have exemption reason.

Corrected outdated BT-ID references in the validation message.

ibr-133-ae

cac:TaxScheme/cbc:ID

Message

VAT scheme code validation.

Corrected BT-ID formatting in the validation message.

ibr-137-ae

cbc:ProfileExecutionID — Disclosed Agent

Message

Principal ID (BTAE-14) MUST be provided for Disclosed Agent billing.

Corrected terminology in the validation message.

ibr-176-ae

cbc:ProfileExecutionID — Disclosed Agent

Message

Seller VAT and Principal ID MUST differ.

Corrected terminology in the validation message.

ibr-143-ae

cac:AccountingSupplierParty/…​/cac:PostalAddress

Message

Seller postal address completeness.

Corrected wording in the validation message for clarity and consistency.

ibr-128-ae

cac:PostalAddress

Message

Country subdivision MUST be one of (AUH, DXB, SHJ, UAQ, FUJ, AJM, RAK).

Improved wording clarity and consistency in the validation message.

ibr-145-ae

cac:InvoiceLine, cac:CreditNoteLine

Message

Each Invoice line MUST have a VAT category code.

Corrected punctuation in the validation message.

ibr-184-ae

cac:Item — CommodityCode='G'

Message

Item classification identifier required for Goods.

Corrected punctuation formatting in the validation message.

ibr-185-ae

cac:Item — CommodityCode='S'

Message

Service accounting code required for Services.

Corrected punctuation formatting in the validation message.

ibr-186-ae

cac:Item — CommodityCode='B'

Message

Both identifiers required for Both.

Corrected punctuation formatting in the validation message.

ibr-119-ae

cac:TaxSubtotal

Message

VAT category rate required except for exempt/not-subject.

Corrected logical wording in the validation message.

ibr-116-ae

cbc:ProfileExecutionID — Margin scheme

Message

Margin scheme tax category validation.

Corrected formatting inconsistency in the validation message.

aligned-ibrp-ae-01-ae

/ubl:Invoice, /cn:CreditNote

Message

Reverse charge breakdown presence.

Corrected spacing inconsistency in the validation message.

ibr-007-ae

cbc:ProfileExecutionID — Free trade zone

Message

Beneficiary ID required for FTZ.

Simplified and clarified validation message wording.

ibr-173-ae, ibr-180-ae, ibr-181-ae

Various

Message

Legal registration identifier type validation.

Standardized capitalization and terminology in validation messages.

ibr-191-ae

cac:PaymentMeans/cbc:PaymentMeansCode

Message

Payment means required except for credit notes and deemed supply.

Corrected incomplete and inconsistent validation message wording.

aligned-ibrp-ae-06:

Previous Behavior: Reverse charge VAT validations could incorrectly accept non-zero VAT rates.

New Behavior: Validation logic now requires Reverse charge VAT rates to be exactly 0.

Justification: Improves validation accuracy for Reverse charge transactions and prevents invalid VAT rates from being accepted.

ibr-190-ae:

Previous Behavior: Invoices could incorrectly pass validation when only some Standard rated VAT categories used the required 5% VAT rate.

New Behavior: Validation logic now verifies that all Standard rated VAT categories consistently use the mandatory 5% VAT rate.

Justification: Improves VAT rate consistency validation and prevents mixed-rate scenarios from being accepted.

ibr-105-ae:

Previous Behavior: Invoices containing multiple VAT categories could incorrectly fail VAT breakdown validation.

New Behavior: VAT subtotal evaluation logic was corrected to validate only the relevant VAT category breakdowns.

Justification: Prevents false validation failures for valid multi-category invoices.

ibr-122-ae:

Previous Behavior: Out-of-scope invoice types could incorrectly pass validation while containing disallowed VAT categories.

New Behavior: Validation logic now correctly enforces the permitted VAT category set for out-of-scope invoice types.

Justification: Improves consistency and compliance of VAT category validation for out-of-scope transactions.

aligned-ibrp-002-ae:

Previous Behavior: Invalid ProfileID values containing partial matching text could incorrectly pass validation.

New Behavior: ProfileID validation was tightened to ensure values correctly begin with the required Peppol business process identifiers.

Justification: Prevents malformed business process identifiers from being accepted.

aligned-ibrp-s-08 / aligned-ibrp-s-09:

Previous Behavior: Malformed or non-numeric VAT values could trigger validator runtime failures instead of standard validation errors.

New Behavior: Additional numeric validation safeguards were introduced before decimal conversion processing.

Justification: Improves validator stability and ensures malformed input produces validation errors instead of runtime exceptions.

Samples

Sample Change Description Reason

Positive invoice examples

Added

Added 11 new invoice examples covering AE, E, O, and Z VAT categories, document-level allowances and charges, and Buyer PAS, Seller PAS, and Seller TIN identifier variants.

Expanded implementation and validation coverage.

Volume-discount-credit-note.xml

Added

Added new credit note example covering the VD (Volume Discount) reason code scenario of ibr-055-ae.

Improved Credit Note scenario coverage.

Existing sample files

Updated

Added timezone (+04:00) to IssueTime elements across 13 existing sample files.

Improved consistency with timezone-aware date and time handling.

Action Items for Implementers

  • Update validation environments with the corrected Schematron validation artefacts.

  • Review and retest validation scenarios related to:

    • Reverse charge VAT rate validation.

    • Standard rated VAT consistency validation.

    • Multi-category VAT breakdown handling.

    • Out-of-scope invoice VAT category validation.

    • Handling of malformed decimal and VAT percentage values.

  • Update internal test data if it previously relied on validation behaviour that was overly permissive or incorrect.

  • Review newly added sample documents for additional implementation guidance and test coverage scenarios.

  • 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.3-hotfix

Maintained by

The United Arab Emirates (UAE) Peppol Authority

Release Date

2026-03-25

Status

Published

What’s new in this release?

  • Schematron bug fixes

Rule Error corrected

ibr-143-ae

cac:AccountingBuyerParty

ibr-143-ae

Seller postal address completeness

ibr-116-ae

Margin scheme tax category

ibr-149-ae

CompanyID

ibr-150-ae

CompanyID

ibr-136-ae

Buyer legal reg ID

ibr-177-ae

cbc:ProfileExecutionID

ibr-183-ae

Buyer company ID type validation

ibr-133-ae

VAT scheme code - Absolute path missing

ibr-121-ae

Exempt rate shall not be provided

aligned-ibrp-o-11-ae

Not-subject-to-VAT rate not provided

ibr-163-ae

Wrong element cac:TaxAmount

ibr-115-ae

Document level allowance tax category code (IBT-095) cannot be 'Standard rate additional VAT

ibr-114-ae

Document level charge VAT category code (IBT-102) cannot be 'Standard rate additional VAT

ibr-122-ae

When Invoice type code

ibr-157-ae

InvoiceTypeCode Schematron validation Error

ibr-120-ae

In a VAT breakdown (IBG-23) where VAT category code (IBT-118) is 'Zero Rated', VAT category Rate (IBT-119) shall equal to 0

ibr-186-ae

Item classification identifier (ibt-158) and Service accounting code validation

ibr-002-ae

Currency Exchange Rate Decimal Validation : ibr-002-ae

ibr-124-ae

Credit Note: InvoiceTypeCode Schematron validation Error

ibr-123-ae

Credit Note: InvoiceTypeCode Schematron validation Error

ibr-158-ae

Credit Note: InvoiceTypeCode Schematron validation Error

ibr-151-ae

Credit Note: InvoiceTypeCode Schematron validation Error

ibr-055-ae

Credit Note: InvoiceTypeCode Schematron validation Error

ibr-166-ae

Enforcement of BTAE-09 for Reverse Charge

aligned-ibrp-ae-05, aligned-ibrp-ae-06 and aligned-ibrp-ae-07

Incorrect Validation Trigger for AE Reverse-Charge VAT Percent 0

ibr-163-ae

Clarification Request: Peppol PINT-AE Administrative Aspects and Tags

ibr-159-ae

fixed (cbc:DocumentCurrencyCode != "AED" and (exists(//cac:TaxExchangeRate/cbc:CalculationRate))) or cbc:DocumentCurrencyCode = "AED"

ibr-146-ae

Modify rule so that it allows rounding of allowances and charges amount to two digits

ibr-136-ae

PINT AE (Billing and Self-Billing) - Schematron Rule validation gap

Version 1.0.2-hotfix

Maintained by

The United Arab Emirates (UAE) Peppol Authority

Release Date

2026-01-28

Status

Published

What’s new in this release?

  • Schematron bug fixes, missing rules added

    • IBR-154-AE.

    • IBR-134-AE.

    • IBR-191-AE.

    • BTAE-04.

Version 1.0.2

Maintained by

The United Arab Emirates (UAE) Peppol Authority

Release Date

2025-12-08

Status

Review

What’s new in this release?

  • Aligned with the PINT General 1.1.2 release updates

    • A new Schematron rule on cbc:CustomizationID to restrict wildcard character.

    • Code list updates.

  • PINT-AE Schematron bug fixes.

Overview

This release includes updates to the Peppol specification covering the Data Model, BIS documentation, Compliance, Specialisation, Code Lists, and Schematron rules. The objective is to improve semantic clarity, validation precision, and implementation support.

Version Information

PINT Billing

1.1.2

PINT AE Self-Billing

1.0.2

Applies to

PINT AE Self-Billing

Reviewed

-

Changes

Data Model

  • No change

Documentation

  • No change

Code List

Code List Code Change Description Justification

ICD

0241

Added

Added as part of regular ICD code list updates.

Added as part of regular ICD code list updates.

ICD

0242

Added

OpenPeppol Service Provider Identification Scheme (SPIS).

Part of regular code list updates.

ICD

0243

Added

Added as part of regular ICD code list updates.

Added as part of regular ICD code list updates.

ICD

0244

Added

Tax Identification (Tax ID), Nigeria.

New country addition.

EAS

0244

Added

Tax Identification (Tax ID), Nigeria.

New country addition.

ISO3166-1:Alpha2

BS

Change

Name/Description update.

The correct and official way to refer to the country.

ISO4217

CNH

Added

Renminbi (offshore).

New currency addition.

ISO4217

CUC

Removed

Deprecated.

The currency code CUC (Cuban convertible peso) is Deprecated.

Schematron Rules

Rule ID Syntax (XML location) Change Business Rule Reason

IBR-SR-63

cbc:CustomizationID

Added

Specification identifier must not contain the wildcard character '*'

New rule to block using wildcard character in customizationID

IBR-154-AE

cbc:ProfileExecutionID

Modified — enforce length and permitted values

cbc:ProfileExecutionID MUST be exactly 8 digits and the value MUST be one of the allowed values (for example 00000000 or 00000001).

The previous Schematron did not enforce length; single-digit values (e.g. 0 or 1) were accepted. Add both length (8 digits) and discrete-value validation.

IBR-134-AE

/CreditNote[1] — Seller VAT Identifier (e.g. cac:AccountingSupplierParty/…​/cbc:CompanyID)

Corrected element context (InvoiceTypeCode → CreditNoteTypeCode) and strengthened presence rule

Seller VAT Identifier (cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme[cac:TaxScheme/cbc:ID = "VAT"]/cbc:CompanyID) MUST be present except when the Credit Note Type Code (cbc:CreditNoteTypeCode) indicates "Out of scope of VAT" or "Credit note related to goods or services".

Rule previously referenced cbc:InvoiceTypeCode while applied to CreditNote; fix makes the rule check cbc:CreditNoteTypeCode and enforces mandatory presence only in the correct cases.

IBR-191-AE

/CreditNote[1] — Payment Means Type Code (cac:PaymentMeans/cbc:PaymentMeansCode / IBT-081)

Corrected element context (InvoiceTypeCode → CreditNoteTypeCode) and clarified exceptions

ibt-081 (Payment means type code) MUST be provided, except when the Credit Note Type Code (cbc:CreditNoteTypeCode) is 'Credit note' or 'Credit note related to goods', or when the Invoice transaction-type code (BTAE-002) equals X1XXXXXX (Deemed supply).

The Schematron referenced cbc:InvoiceTypeCode under CreditNote validation; change to cbc:CreditNoteTypeCode and update exception logic so the rule skips in appropriate credit-note/deemed-supply cases.

BTAE-04

cac:TaxExchangeRate/cbc:CalculationRate (syntax binding)

Schematron rule update

Currency exchange rate MUST appear under cac:TaxExchangeRate/cbc:CalculationRate as per agreed binding; examples and schematron updated to validate this location.

Examples and Schematron previously used cac:PricingExchangeRate, causing mismatch between syntax binding, samples and validation. Schematron to use TaxExchangeRate and examples accordingly.

IBR-SR-63:

Previous Behavior: No validation was enforced on cbc:CustomizationID to restrict wildcard character.

New Behavior: cbc:CustomizationID Specification identifier must not contain the wildcard character '*'.

Justification: In general terms the busdox looks for an exact match, whereas DDTS uses a wildcard and looks for first match through a sequence. The wildcard is only used when registering the receiving capability, not in the document.

IBR-154-AE:

Previous Behavior: cbc:ProfileExecutionID length/value were not validated; single-digit values (e.g. 0, 1) passed validation.

New Behavior: cbc:ProfileExecutionID MUST be exactly 8 digits and only permitted values (for example 00000000, 00000001) are accepted. Schematron updated to validate both length and allowed values.

Justification: Prevents malformed ProfileExecutionID values and ensures only supported execution-profile values are accepted.

IBR-134-AE:

Previous Behavior: Rule applied during CreditNote validation referenced cbc:InvoiceTypeCode, and Seller VAT Identifier presence was not consistently enforced.

New Behavior: Rules now check cbc:CreditNoteTypeCode in the /CreditNote[1] context and enforce that Seller VAT Identifier is present except for the explicit CreditNote type exceptions.

Justification: Credit note validation must reference CreditNoteTypeCode (not InvoiceTypeCode) so presence/exception logic is evaluated correctly.

IBR-191-AE:

Previous Behavior: Payment means type code rules for credit notes referenced cbc:InvoiceTypeCode, leading to incorrect application of exceptions and false positives/negatives.

New Behavior: Schematron now references cbc:CreditNoteTypeCode and includes the exception for transaction-type code X1XXXXXX (Deemed supply). Payment means code is required except in the specified exceptions.

Justification: Fixes systemic mis-reference and aligns validation with business rules for credit notes and deemed-supply scenarios.

BTAE-04:

Previous Behavior: Syntax binding and examples used cac:PricingExchangeRate while documentation/syntax intended cac:TaxExchangeRate. This mismatch caused validation failures.

New Behavior: Syntax binding confirmed as cac:TaxExchangeRate/cbc:CalculationRate. Schematron and examples updated to validate and demonstrate TaxExchangeRate usage.

Justification: Aligns sample XML, syntax binding and Schematron so examples validate and the binding matches the intended business meaning.

Action Items for Implementers

  • Update your messages to comply with the new Schematron rule IBR-SR-63. If your current implementation already meets this rule, no changes are needed.

Support

For support and clarification:

Version 1.0.1

Release date

2025-07-31

COMPLIANCE CRITERIA

  • Compliance criteria modified to not requiring support for negative invoices in UAE.

DATA MODEL

  • Cardinality for BTAE-03 Credit note reason set to 1..1 from 0..1

  • Name of ibt-007 changed from "VAT tax point date" to "VAT point date"

SCHEMATRON

  • Corrections in context for rules ibr-132-ae and ibr-148-ae. Examples updated accordingly.

EDITORIAL and CLEANUP

  • Removed code list UNECE2005, not used in any UAE business term.

  • Rule ibr-164-ae removed, redundant because BTAE-08 is mandatory.

  • Text in rule ibr-119-ae expanded for clarification. No change to Schematron.

  • Textual edits to several rules without changing context or schematron for rules: ibr-115-ae, ibr-120-ae, ibr-121-ae, ibr-124-ae, ibr-134-ae, ibr-135-ae, ibr-137-ae, ibr-138-ae, ibr-139-ae, ibr-141-ae, ibr-145-ae, ibr-149-ae, ibr-152-ae, ibr-153-ae, ibr-175-ae, ibr-176-ae, ibr-177-ae, ibr-179-ae.

  • Name of IBT-032 changed to "Seller tax registration identifier", to be in line with the definition.

Version 1.0.0

Release date

2025-06-10

  • Initial Release

  • This release covers the self-billing process for the UAE Peppol Authority specification.