peppol-uae
June 3, 2026 · View on GitHub
If this project saved you some time or made your day a little easier, a star would mean a lot — it helps others find it too.
Peppol specific stuff for United Arab Emirates (UAE)
peppol-uae is part of my Peppol solution stack. See https://github.com/phax/peppol for other components and libraries in that area.
This contains a set of Java libraries. They are licensed under the Apache 2.0 license. The minimum requirement is Java 17.
The backing specifications are:
Submodules
This project consists of the following submodules (in alphabetic order)
peppol-uae-tdd- contains the main logic to create UAE TDD documents based on PINT AE documents as well as documentation- Main class to build a complete TDD from scratch is
PeppolUAETDD10Builder - To run the Schematron validation, use class
PeppolUAETDDValidator
- Main class to build a complete TDD from scratch is
peppol-uae-tdd-datatypes- contains the JAXB generated UAE TDD data model- Main class to read and write TDD XML is
PeppolUAETDD10Marshaller
- Main class to read and write TDD XML is
peppol-uae-testfiles- contains Peppol UAE specific test files as a reusable component- Main class is
PeppolUAETestFiles
- Main class is
Maven usage
Add the following to your pom.xml to use this artifact:, replacing x.y.z with the real version number.
<dependency>
<groupId>com.helger.peppol</groupId>
<artifactId>peppol-uae-tdd</artifactId>
<version>x.y.z</version>
</dependency>
Building
This project requires Apache Maven 3.x and Java 17 for building. Simply run
mvn clean install
to build the solution.
News and noteworthy
v1.0.0 - 2026-06-03
- This version suits the TDD 1.0.3 release
- Updated to AE TDD 1.0.3 Schematron
- Schematron message text corrections (ibr-tdd-17, ibr-tdd-21, ibr-tdd-30-1, ibr-tdd-31-1)
- Changed XPath namespace prefix from
inv:Invoicetoubl:Invoice(ibr-tdd-57) - Removed dead commented-out rule block (ibr-tdd-50)
- Note: No data model, code list, or business rule changes versus 1.0.2
- Made the method
PeppolUAETDD10Marshaller.getAllXSDspublic
v0.9.2 - 2026-01-27
- This version suits the TDD 1.0.2 release published at https://docs.peppol.eu/tdd/ae/v1.0.2/
- Building as a simple JAR file and not as a bundle
- Updated to AE TDD 1.0.2 Schematron
v0.9.1 - 2025-12-23
- This version suits the TDD 1.0.1 release published at https://docs.peppol.eu/tdd/ae/v1.0.1/
- Added updated Schematron 1.0.1
- Removed the mandatory check for "pxs:ReportedDocument" in case of a failed TDD (TDS)
- Added explicit check, that C5 participant ID must use scheme
0242 - Updated class
PeppolUAETDD10ReportedTransactionBuilderto properly handle an optionalReportedDocument - Improved inclusion of source Invoice and CreditNote as
SourceDocumentif they are not XSD compliant
v0.9.0 - 2025-11-28
- This version suits the TDD 1.0 release published at https://docs.peppol.eu/tdd/ae/v1.0.0/
- Updated to XML Schema 1.0.0
- Changed the namespace URI to
urn:peppol:schema:taxdata:1.0 - Added
schemaLocationattribute to XS imports
- Changed the namespace URI to
- Updated to Schematron 1.0.0
- Updated the pxs namespace URI according to the XSD
- The expected
CustomizationIDmust beurn:peppol:taxdata:ae-1 - The expected
ProfileIDmust beurn:peppol:taxreporting - The schemeID of the
ReceivingPartymust be0242 - The schemeID of the
ReportersRepresentativemust be0242 - Reworded rules, so that they refer to semantic rules instead of the XML artifacts
- Added checks that used currencies are in ISO 4217 codelist
v0.8.4 - 2025-11-16
- Updated to ph-commons 12.1.0
- Using JSpecify annotations
v0.8.3 - 2025-10-21
- Fixed an error in the
PeppolUAETDD10ReportedTransactionBuilder.initFrom(Invoice|CreditNote)using the wrong party as buyer
v0.8.2 - 2025-10-01
- The source documents attached to a TDD are now excluding all
EmbeddedDocumentBinaryObjectelements
v0.8.1 - 2025-09-23
- Updated Schematrons - now with real assertion ID prefixes
v0.8.0 - 2025-09-22
- Initial version
My personal Coding Styleguide | It is appreciated if you star the GitHub project if you like it.