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.
A set of preconfigured rules for PHIVE (Philip Helger Integrative Validation Engine) - pronounced [ˈfaɪv].
This project is part of my Peppol solution stack. See https://github.com/phax/peppol for other components and libraries in that area.
All projects found in here rely on the PHIVE validation engine provided by https://github.com/phax/phive
The foundational, XSD-only document formats live in the separate repository phive-rules-foundations since v4.5.0. Their Maven and VES coordinates are unchanged.
- pure UN/CEFACT CII
- pure OASIS UBL
- ebInterface (AT)
- Facturae (ES)
- FatturaPA (IT)
- Finvoice (FI)
- KSeF (PL)
- OECD Common Reporting Standard (CRS)
- OSA (HU)
- TEAPPS (FI)
The outdated rule sets live in the separate repository phive-rules-legacy since v4.6.0. Their Maven and VES coordinates are unchanged.
- older Peppol rule sets (
phive-rules-peppol-legacy) - legacy Danish OIOUBL rule sets - 1.12.3 up to 1.17.1, 2.0.2 and 3.0.1 (
phive-rules-oioubl-legacy) - the legacy aggregator
phive-rules-all-legacy
This project is divided into sub-projects each keeping tracking of one document type set:
- phive-rules-api - Shared UBL/CII helper classes; depends on
phive-rules-foundation-api(from phive-rules-foundations) which provides the validation rules registration SPI and the core helpers - phive-rules-cius-dk - Validation rules for the Danish Peppol CIUS (since v4.5.7)
- phive-rules-cius-pt - Validation rules for the Portuguese EN 16931 CIUS (since v1.0.11)
- phive-rules-cius-ro - Validation rules for the Romanian EN 16931 CIUS (since v2.1.14)
- phive-rules-ehf - Validation rules for Norwegian EHF (Norwegian public procurement)
- phive-rules-en16931 - Validation rules for the EN 16931 (European e-Invoicing norm based on CEN TC 434)
- phive-rules-energieefactuur - Validation rules for Dutch Energie eFactuur
- phive-rules-eracun - Validation rules for Croatian eRacun (since v4.1.11) and Croatian eIzvjestavanje (e-reporting; since v4.6.2)
- phive-rules-france - Validation rules for France (since v4.0.1)
- phive-rules-isdoc - Validation rules for ISDOC (since v2.0.2)
- phive-rules-oioubl - Validation rules for Danish OIOUBL - the current rule set only; the older ones are in phive-rules-legacy since v4.6.0
- phive-rules-peppol - the Peppol specific rules - always the latest two rule sets
- phive-rules-peppol-pint - the Peppol PINT specific rules (since v4.4.0 as separate module - previously in
phive-rules-peppol) - phive-rules-peppol-italy - Peppol Italy specific rules (since v2.1.1)
- phive-rules-peppol-taxdata - Peppol Tax Data Document (TDD) rules, extracted from phive-rules-peppol (since v4.4.0)
- phive-rules-serbia - Validation rules for the Serbian SEF (SRBDT) EN 16931 CIUS and SEO logistics documents (since v4.3.9)
- phive-rules-setu - Dutch SETU selected standards (since v3.0.4)
- phive-rules-simplerinvoicing - Dutch Simplerinvoicing support from https://github.com/Simplerinvoicing/validation
- phive-rules-singapore - Validation rules for the Singapore IRAS GST InvoiceNow data submission (since v4.6.1)
- phive-rules-svefaktura - Validation rules for Swedish Svefaktura (since v1.0.6)
- phive-rules-turkey - Validation rules for Turkey UBL-TR / e-Fatura (since v4.3.1)
- phive-rules-ublbe - Validation rules for Belgium e-FFF/UBL.BE
- phive-rules-xrechnung - Validation rules for German XRechnung
- phive-rules-zatca - Validation rules for Saudi Arabian ZATCA/FATOORA format (since v3.2.7)
- phive-rules-zugferd - Validation rules for German ZuGFERD and French Factur-X (XML part only) (since v3.2.2)
Aggregator module:
- phive-rules-all - Aggregator depending on all current (non-legacy) modules with
PhiveRulesValidation.initPhiveRulesto register them all at once (since v4.4.0)
The legacy aggregator phive-rules-all-legacy moved to phive-rules-legacy in v4.6.0.
The Java code in this project is licensed under the Apache 2 license. The code of the validation artefacts used may use a different license.
Add the following to your pom.xml to use this artifact, replacing x.y.z with the latest version:
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-cius-pt</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-cius-ro</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-ehf</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-en16931</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-energieefactuur</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-eracun</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-france</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-isdoc</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-oioubl</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-peppol</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-peppol-pint</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-peppol-taxdata</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-peppol-italy</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-serbia</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-setu</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-simplerinvoicing</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-singapore</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-svefaktura</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-turkey</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-ublbe</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-xrechnung</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-zatca</artifactId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-zugferd</artifactId>
<version>x.y.z</version>
</dependency>Alternate usage as a Maven BOM:
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-parent-pom</artifactId>
<version>x.y.z</version>
<type>pom</type>
<scope>import</scope>
</dependency>Instead of depending on the individual modules, you can use one of the aggregator modules to register many rule sets at once.
Use phive-rules-all to get all current (non-legacy) validation rules:
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-all</artifactId>
<version>x.y.z</version>
</dependency>and register them all in a single call, in the proper order:
final ValidationExecutorSetRegistry <IValidationSourceXML> aRegistry = new ValidationExecutorSetRegistry <> ();
PhiveRulesValidation.initPhiveRules (aRegistry);To additionally register the legacy rule sets, depend on phive-rules-all-legacy from phive-rules-legacy and call PhiveRulesLegacyValidation.initPhiveRulesLegacy afterwards (the current rules must be registered first):
<dependency>
<groupId>com.helger.phive.rules</groupId>
<artifactId>phive-rules-all-legacy</artifactId>
<version>x.y.z</version>
</dependency>final ValidationExecutorSetRegistry <IValidationSourceXML> aRegistry = new ValidationExecutorSetRegistry <> ();
PhiveRulesValidation.initPhiveRules (aRegistry);
PhiveRulesLegacyValidation.initPhiveRulesLegacy (aRegistry);Alternatively, every module on the classpath that ships an IValidationRulesRegistrarSPI implementation (that is, all rule modules) can be discovered and registered automatically - including the correct ordering of modules that depend on each other - via a single call (since v4.4.0):
final ValidationExecutorSetRegistry <IValidationSourceXML> aRegistry = new ValidationExecutorSetRegistry <> ();
ValidationRulesRegistrar.registerAllValidationRules (aRegistry);If you wonder why the Peppol version differs from the original version numbers - this is because I started versioning the Peppol artefacts before OpenPeppol did. As OpenPeppol is only changing the "micro" version part (3.0.x), whereas I started using the "minor" part (3.x) from the beginning, I could never take over the official version numbers because their version number would always "smaller" then any old version from my numbering scheme. I hope that with the introduction of PINT, the versioning problem will be solved.
v4.6.4 - work in progress
- Updated to phive-rules-foundations 5.0.6
phive-rules-allnow also registers the new Brazilian validation rules ofphive-rules-brazilfrom phive-rules-foundations (NF-e/NFC-e, CT-e, MDF-e, NFCom, NF3e, BP-e, NFAg, NFGas and NFS-e, Group IDbr.gov.nfe)
v4.6.3 - 2026-09-30
- Added the France PPF Flux 10 validation rules v1.1, VES coordinate
fr.ctc.flux10:report:1.1, and deprecated the 1.0 rules. See issue #90. The rules are taken from the AIFE package "AIFE - PPF_Flux10_v1.1", which contains the Schematron filePPF_Flux10_1_8_v0_3.schonly. The AIFE XSDs are unchanged - they are still the ones fromXSD_Flux10.zip. The only change is to ruleG1.53, both for invoices (Invoice) and for aggregated transactions (Transactions):- The check that the total amount without VAT equals the sum of the VAT taxable amounts is now applied for every currency - previously it was only applied if the currency was
EUR - The check that the total VAT amount equals the sum of the VAT subtotal amounts is still only applied if the currency is
EUR
- The check that the total amount without VAT equals the sum of the VAT taxable amounts is now applied for every currency - previously it was only applied if the currency was
- Added the Croatian eRacun validation rules v1.0.4, VES coordinates
hr.gov.porezna.eracun:ubl-invoice:1.0.4andhr.gov.porezna.eracun:ubl-creditnote:1.0.4, and deprecated the 1.0.2 rules. See issue #93. The rules are taken from the Porezna uprava packageHRUBLSchematron_13032026-2.zip("Validator - dorađena verzija - u primjeni od 15.3.2026.", 2026-03-13). Changes compared to 1.0.3:- The OIB check function also validates the 11 digit format itself
- The OIB checks of the supplier, customer and tax representative VAT identifiers use
cac:PartyTaxSchemerule contexts; the supplier rule now has the correct IDHR-BR-53(previouslyHR-BR-54) HR-BR-56moved to a different rule context- The payment due date rule has its own
cac:PaymentMeanscontext and no longer applies if nocbc:PaymentDueDateis present (previously: if the payable amount is not positive) - The number format helper (at most 30 digits and 10 decimals) was rewritten
- Added the SG BIS Order Balance validation rules v1.0.2 (released 2026-06-08, mandatory from 2026-09-08), VES coordinate
org.peppol.sg:order-balance:1.0.2, and deprecated the 1.0 rules. See issue #91. The previous VES version1.0corresponds to the upstream version 1.0.0; the upstream version 1.0.1 was not added separately. The only changes are updated code lists (currency codes, units of measure, ISO 6523 ICD and EAS), aligned with the latest Peppol BIS Billing 3 release - Added the SETU TimeCard validation rules v1.4.2, VES coordinate
nl.setu:timecard:1.4.2, and deprecatednl.setu:timecard:1.4. See issue #94. The only change is the new valueBreakin the code listSETU_CL_HourTypes(upstream change log "07/10/2024 v1.4.2"). The Assignment, HumanResource and StaffingOrder rules are unchanged and stay at version 1.4 - Updated the Peppol Italy (AGID) validation rules
it.peppol:*:3.2.1in place to the AGID packages re-published on 2026-08-17, which are based on Peppol BIS Billing 3.0.21. See issue #92. AGID changed the content without changing the version number, so the VES coordinates are unchanged. The AGID specific invoice and credit note rules are unchanged. The Order, Despatch Advice, Order Response and Order Agreement rules were updated to the latest Peppol BIS Post-Award rules (e.g. newPEPPOL-COMMON-R042,PEPPOL-COMMON-R052andPEPPOL-COMMON-R053, removedPEPPOL-COMMON-R048, updated code lists) - Added the EHF Post-Award G3 validation rules of release 2026-09-29 in the new class
EHFValidationG3_2026_09, and deprecatedEHFValidationG3_2023_02. See issue #95. All VES versions were increased by one:no.ehf.g3:*:3.0.4, andno.ehf.g3:despatch-advice:3.0.3andno.ehf.g3:payment-request:3.0.3. Relevant upstream rule changes since release 2023-02:- Release 2024-09-18 added about 4130
EHF-QII-G1-*rules (Qualified Item Information) to Catalogue, Punch Out, Order Agreement, Order Response and Advanced Order Response - Release 2026-08-13 updated the CEN and Peppol BIS Billing rules used by Forward Billing and Reminder, and added EHF Self-Billing 3.0
- The releases 2026-01-14, 2026-01-22 and 2026-09-29 contain no rule changes
- Release 2024-09-18 added about 4130
- Added the EHF Self-Billing 3.0 validation rules, VES coordinates
no.ehf.g3:invoice-self-billing:3.0.0andno.ehf.g3:creditnote-self-billing:3.0.0. They are based on the EN 16931 1.3.16 UBL rules, because the EHF package only contains the Self-Billing specific rules. Thereforephive-rules-ehfnow depends onphive-rules-en16931, andEHFValidationSPIdeclares the EN 16931 1.3.16 VES as prerequisites
v4.6.2 - 2026-09-28
- Added the Croatian eIzvjestavanje (e-reporting) XML Schema validation rules to
phive-rules-eracun, VES coordinatehr.gov.porezna.eracun:eizvjestavanje:1.0. See issue #89. This is an addition and not a change of the existinghr.gov.porezna.eracun:ubl-invoiceandhr.gov.porezna.eracun:ubl-creditnoterule sets - the eIzvjestavanje messages are not UBL documents and have no EN 16931 base. The XML Schema is taken unmodified from theeIzvjestavanjeSchema.zipattached to that issue - the packaged state of 2026-02-09, with 2026-01-30 as the last entry of the change log inside the schema. The VES version1.0is theversionattribute of that schema. It covers all four message pairs of the service:EvidentirajNaplatu(payments),EvidentirajOdbijanje(rejections),EvidentirajIsporukuZaKojuNijeIzdanERacunandOvlastenjaFiskalizacije. There is no Schematron for these messages, so the XML Schema is the only validation layer. A single VES covers all of them, because the XML Schema validation layer accepts every global element declared in the schema and cannot be restricted to a single root element. Among other things this validates the payment method codenacinPlacanjaagainst its allowed valuesT,OandZ, which was the reported gap.phive-rules-eracunnow depends onph-xsds-xmldsig, because the schema requires ads:Signaturein every message.
v4.6.1 - 2026-09-25
- Recreated 521 of the 580 pre-compiled Schematron XSLTs with ph-schematron 10.1.0 - every version of every rule set that has its Schematron source in this repository.
Most of the committed files were still the output of much older ph-schematron versions.
This changes the emitted SVRL:
svrl:active-patternis now empty, as the SVRL grammar requires. It no longer carries the non-standard attribute@document- only the ISO conformant@documentsis emitted - and the pattern title is no longer emitted as ansvrl:textchild of it. Code that read the pattern title from the SVRL report has to use the@idor@nameattribute ofsvrl:active-patterninstead.- The stray
xsl:apply-templatescall insidesvrl:active-patternis gone, so no further child elements can end up in it. - The text of a
svrl:diagnostic-referenceis now wrapped in ansvrl:textelement instead of being a direct text child. - The generated pattern traversal now selects
@*|*instead of*, so Schematron rules with an attributecontextare evaluated at all. See ph-schematron #123 - that fix is in ph-schematron since v6.2.6, but the affected XSLTs were older than that. Except where noted below, no rule text and no XPath expression of any rule set changed. This was verified by comparing the canonical XML of every regenerated file against its predecessor, so that attribute order, indentation and XML escaping are ignored.
- The Peppol Tax Data Document Oman 1.0.0 XSLT now matches its own Schematron source again.
The committed XSLT had been built from a different revision than the committed
.sch, so it still contained the ruleibr-tdd-59and was missing the currency codesANGandBGN. - The ZUGFeRD 2.5 XSLTs are intentionally left as they are.
They are the prebuilt XSLTs from the ZUGFeRD distribution, and that distribution's own
.schfiles describe four patterns fewer and reference differently named code database files, so regenerating them would silently drop validation rules. - Not regenerated because they have no Schematron source in this repository - they are taken from their respective upstream distributions: all XSLTs of
phive-rules-en16931andphive-rules-svefaktura, the XSLs ofphive-rules-zatca, and ZUGFeRD 2.1. - Updated to phive-rules-foundations 5.0.4, which adds the new module
phive-rules-crswith the OECD Common Reporting Standard (CRS) XML Schema, VES coordinatesorg.oecd.ties:crs:2.0andorg.oecd.ties:crs:3.0. It is registered byPhiveRulesValidation.initPhiveRuleslike all other foundational modules. See issue #57. - Added the Singapore IRAS GST InvoiceNow data submission validation rules in the new module
phive-rules-singapore, VES coordinatesg.gov.iras:invoicenow-gst:2026.9.8. See issue #57. The rules are taken from the GST InvoiceNow requirement resources of the IRAS C5 accreditation package, state of 2026-09-08. IRAS does not maintain a version number in the Schematron - its title has been claiming "v0.3.4" since January 2025 - so the date of the last entry of the accompanying changelog is used as the version. The validated document is the complete SBDH envelope and not the contained UBL Invoice or Credit Note, because the rulesIRASC5-001toIRASC5-004have the SBDH header as their context. The XML Schema layer is applied to the parts of the envelope rather than to the envelope as a whole: the SBDH header and every contained Invoice and Credit Note is validated separately withValidationExecutorXSDPartial. That is necessary because a single submission may carry more than one UBL document ("bulk" submission), whereas theStandardBusinessDocumentof the SBDH 1.3 XML Schema declares a singlexs:any. As a side effect the SBDH envelope is now mandatory - an unwrapped UBL Invoice is rejected, whereas the Schematron alone reports nothing at all for it, because its envelope rules simply do not match.
v4.6.0 - 2026-09-23
- Moved the legacy validation rules out into the separate repository phive-rules-legacy, so that the current rules can be built and released without the accumulated weight of all historic rule sets. All Maven and VES coordinates are unchanged.
phive-rules-peppol-legacyandphive-rules-all-legacymoved there unchanged- The legacy Danish OIOUBL rule sets moved into the new module
phive-rules-oioubl-legacythere.phive-rules-oioublretains only the current 1.17.2 rule set; the deprecated 1.12.3, 1.13.0, 1.13.2, 1.14.2, 1.15.0-rc, 1.15.1, 1.15.2, 1.16.1, 1.17.0-rc and 1.17.1 rule sets (VES groupdk.oioubl) are now registered byOIOUBLValidationOlderin packagecom.helger.phive.oioubl.legacy OIOUBLLegacyValidation(VES groupdk.oioubl.legacy, versions 2.0.2 and 3.0.1) moved from packagecom.helger.phive.oioubltocom.helger.phive.oioubl.legacyinphive-rules-oioubl-legacyOIOUBLValidationSPIno longer declares any prerequisite and no longer registers the legacy OIOUBL rules, sophive-rules-oioublno longer depends onphive-rules-en16931- The Peppol
openpeppol2024.5 and 2024.11 Schematron XSLTs moved fromphive-rules-peppoltophive-rules-peppol-legacy- they were only referenced by the legacy rule sets, but had been left behind when those rule sets were moved in v4.1.2 - This reduces the
phive-rules-oioublJAR from 15.0 MB to 2.3 MB and the total size of all deployed JARs from 34.6 MB to roughly 17 MB
phive-rules-peppol-legacynow declaresph-ubl21andph-ubl23explicitly instead of inheriting them fromphive-rules-peppol- The test sources are no longer deployed to Maven Central. The
-test-sources.jarartefacts contained all the sample documents and Schematron rule sources and made up 135 of the 175 MB of the Central bundle (phive-rules-ublbealone shipped a 0.67 MB JAR next to a 53.67 MB test sources JAR), without being usable by anyone. The bundle is now roughly 40 MB.
v4.5.7 - 2026-09-22
- Added the Peppol BIS Billing Singapore 2026.6 rules (aka BIS 3.0.17, released 2026-06-08), VES coordinates
eu.peppol.bis3.sg.ubl:invoice:2026.6andeu.peppol.bis3.sg.ubl:creditnote:2026.6, and deprecated the 2024.12 (aka BIS 3.0.14) rules. See issue #88. The rules are taken from SG-BIS-Billing3-Schematron.zip and are marked as valid from 2026-09-08, the mandatory use date stated in the SG release notes. It contains the accumulated changes of BIS 3.0.15 (2025-05-21), 3.0.16 (2025-12-11) and 3.0.17:- The eight Singapore GST rules
BR-106-GST-SG,BR-107-GST-SG,BR-108-GST-SG,BR-109-GST-SG,BR-111-GST-SG,BR-112-GST-SG,BR-113-GST-SGandUBL-SR-53-SGwere raised from "warning" to "fatal" - this may break existing validation workflows, please evaluate the impact - The rules
BR-CO-25,BR-66,BR-67andUBL-CR-631were removed to align with Peppol BIS Billing 3 UBL-CR-674now testscbc:PrimaryAccountNumberIDinstead of the non-existingcbc:PrimaryAccountNumber, so the rule is effective at allUBL-SR-22now uses the context relative pathcac:PartyName/cbc:Nameinstead ofcac:Party/cac:PartyName/cbc:Name, so the rule is effective at allPEPPOL-EN16931-R051also takescac:TaxSubtotal/cbc:TaxAmountinto account- All assertion messages of
SG-Subset-PEPPOL-EN16931-UBL.schare now prefixed with the rule identifier in brackets (e.g.[PEPPOL-EN16931-R001]-), matching the CEN ruleset convention - Code lists updated: document type codes (
BR-CL-01), currency codes (BR-CL-03,BR-CL-04,BR-CL-05), ICD (BR-CL-10,BR-CL-11,BR-CL-21,BR-CL-26), item classification identifiers (BR-CL-13) and the electronic address schemes (BR-CL-25andPEPPOL-EN16931-CL008)
- The eight Singapore GST rules
- The test file "SG INV example 07 - Foreign buyer.xml" of the Singapore 2026.6 examples is not part of the test files, because it uses the Buyer electronic address scheme
0193that was removed from thePEPPOL-EN16931-CL008code list in BIS 3.0.17 - Added the Peppol ViDA Pilot Tax Data Document (TDD) 1.1.0 validation rules (2026-09-14) in
phive-rules-peppol-taxdata, VES coordinateorg.peppol.taxdata:vida:1.1.0, and deprecated the 1.0.0 rules. The rules are taken from ViDA TDD v1.1.0. Requirespeppol-vida0.11.0, because the TDD 1.1.0 XSD is bound by the newPeppolViDATDD110Marshaller. The first two changes are backwards incompatible, so Tax Data Documents that passed against 1.0.0 need to be regenerated:- The new mandatory Invoice Transmission UUID (TDT-018), carried as
pxs:TransmissionUUIDinsidepxs:ReportedTransaction- new rulesibr-tdd-88andibr-tdd-89 - The Invoice UUID (TDT-017) is now calculated from the Seller VAT identifier (BT-31), the invoice type code (BT-03), the invoice number (BT-01) and the invoice issue date (BT-02) - previously the Seller identifier (BT-29) was used instead of BT-31. The new rule
ibr-tdd-87only checks that it is a version 5 UUID - New buy side rules
ibr-tdd-90toibr-tdd-93: when the Reporter role (TDT-012) isC3, BT-110, BT-112, BT-117, BT-118, BT-119 and - if BT-006 is present - BT-111 are mandatory ibr-tdd-05now really enforces the time zone on the Tax Data Document issue time (TDT-005); the previous regular expression made the offset optional- Several inherited CEN EN 16931 and Peppol rules were repaired, because they could not match a TDD: the VAT breakdown rules
BR-{AE,E,G,K,Z,S,O,AF,AG}-08/09/10andPEPPOL-EN16931-R051were anchored at the document root (/*/cac:TaxTotal/...), which ispxs:TaxDatain a TDD; the German rulesDE-R-001,DE-R-016,DE-R-017,DE-R-026andDE-R-031had a duplicated path segment (.../pxs:ReportedDocument/pxs:ReportedDocument);UBL-CR-674tested for the non-existing elementcbc:PrimaryAccountNumberinstead ofcbc:PrimaryAccountNumberID; andNL-R-007accepted acac:PaymentMeansanywhere in the document instead of only in the reported document
- The new mandatory Invoice Transmission UUID (TDT-018), carried as
- The three "WithoutTaxes" example documents of the ViDA TDD 1.1.0 specification are not part of the test files, because they are not XSD valid: they contain a
cac:TaxTotalwithoutcbc:TaxAmountand acac:TaxSubtotalwithoutcbc:TaxAmount, but both are mandatory in UBL 2.1 - The France CTC CII rules
fr.ctc:cii:1.4.0,fr.ctc:cii:1.4.0-03andfr.ctc:cii:1.4.0-04no longer build on the EN 16931 CII VESeu.cen.en16931:cii:1.3.16, but reference the CII D22B XML Schema and the EN 16931 CII 1.3.16 Schematron directly. The XML Schema validation therefore uses CII D22B instead of the CII D16B inherited from the EN 16931 VES - the applied Schematron rules are unchanged. See issue #87. - The France Extended CTC CII rules
fr.ctc:extended-cii:1.4.0,fr.ctc:extended-cii:1.4.0-03andfr.ctc:extended-cii:1.4.0-04now use the CII D22B XML Schema instead of the Factur-X EXTENDED XML Schema (1.0.9 / ZUGFeRD 2.5 resp. 1.0.9-2 / ZUGFeRD 2.5.2). See issue #87. - Updated to ph-cii 4.1.3, so that the CII D22B XML Schema is now the UN/CEFACT "uncoupled" variant instead of the "coupled" one.
It affects all
fr.ctc:cii:*andfr.ctc:extended-cii:*rules, becausephive-rules-franceis the only module using CII D22B. The uncoupled variant does not enforce the UN/CEFACT code list enumerations of the qualified data types, leaving the code list checks to the Schematron rules. This is what step 1 of the FNFE explanatory note demands, because EN 16931 deviates from the UN/CEFACT code lists for the allowance and charge reason codes. The CDAR D22B XML Schema used byfr.ctc:cdar:*was already uncoupled and is unchanged - Added the France PPF Flux 1 validation rules v1.1 (2026-09-17), VES coordinates
fr.ctc.flux1:ubl-invoice-demarrage:1.1,fr.ctc.flux1:ubl-creditnote-demarrage:1.1,fr.ctc.flux1:cii-demarrage:1.1,fr.ctc.flux1:ubl-invoice-cible:1.1,fr.ctc.flux1:ubl-creditnote-cible:1.1andfr.ctc.flux1:cii-cible:1.1, and deprecated the 0.2 rules. The rules are taken from the AIFE package "AIFE - PPF_Flux1_v1.1". The previous VES version0.2was named after the Schematron files of the "v1.0" package, which carried the internal versionv0_2- from this release on the AIFE file version matches the package version. The AIFE XSDs are unchanged - they are still the ones published with the Flux 1 v1.0 package. All four Schematrons (UBL and CII, each Démarrage and Cible) received the identical set of changes:- The rules
F1-START-VENDEUR-TVA-G2.33andF1-START-ACHETEUR-TVA-G2.33were removed - the seller resp. buyer VAT identifier is no longer mandatory when their legal identifier uses the scheme0002(SIREN) or0223(UE_HORS_FRANCE) G2.01on the seller country code no longer rejectsEL, and its message now namesELas the code required for Greece. Note that the buyer and the delivery country code checks of the same rule still rejectELand still nameGR, so the rule set contradicts itself in that regardG1.53now usesxs:decimal()instead ofnumber()for the total comparisons, to avoid rounding differences caused by the number representation. It also takes the total VAT amount in the invoice currency (BT-5) - CII previously hard coded EUR and UBL took everycac:TaxTotal/cbc:TaxAmountG1.12was rewritten: if BT-5 is EUR, exactly one total VAT amount (BT-110) in EUR is expected; if BT-5 is not EUR, exactly two are required - one in BT-5 and one in EUR. Previously only the presence of an EUR amount was checkedG2.32was rewritten and now rejects an invoice whose VAT category codes are allO, or are allEtogether with a CGI 261 exemption reason code, or are a mixture ofOandE
- The rules
- The France PPF Flux 1 XSD resources were moved from
/external/schemas/flux1/0.2/to/external/schemas/flux1/1.0/, because they are versioned by the AIFE XSD package (v1.0) and not by the Schematron rules version. Both the 0.2 and the 1.1 rules reference them - Added the new submodule
phive-rules-cius-dkwith the Danish Peppol CIUS validation rules 1.17.0 (2026-08-03), VES coordinatesdk.gov.erst.cius-dk:ubl-invoice:1.17.0anddk.gov.erst.cius-dk:ubl-creditnote:1.17.0. The rules are taken from thePEPPOL_DK_CIUS_2026-08-03_v1.17.0package of Nemhandel / Erhvervsstyrelsen and are marked as valid from 2026-08-17 12:00 CET, the mandatory use date stated in the release announcement. The rules build oneu.peppol.bis3:invoice:2026.5resp.eu.peppol.bis3:creditnote:2026.5(Peppol BIS Billing 3.0.21), sophive-rules-peppolis a prerequisite of the new module. The CEN EN 16931 and Peppol Schematrons shipped in the Danish ZIP are not used - onlyDK-EN16931-UBL.schis taken from it. Note that this Danish Schematron currently contains no active rule -DK-R-008andDK-R-009are commented out upstream, so the CIUS-DK rules presently validate exactly like the underlying Peppol BIS Billing rules. The VES exist so that Danish senders and receivers have a stable coordinate to reference - The Danish
PEPPOL_BIS3-Otherpackage (version 1.2.14) is intentionally not included: it only redistributes the Peppol BIS3 Schematrons for the non-Billing documents, whichphive-rules-peppolalready provides aseu.peppol.bis3:*:2026.5(Peppol BIS 3.0.17) - Added Factur-X validation rules for the France CTC 1.4.0.04 rule set, VES coordinates
fr.ctc:facturx-basicwl:1.4.0-04,fr.ctc:facturx-en16931:1.4.0-04andfr.ctc:facturx-extended:1.4.0-04. They are built like the plain CII rules: the Factur-X profile XML Schema, then the Factur-X profile Schematron, then theBR-FR-Flux2-Schematron-CIIrules of 1.4.0.04. They are marked as valid from 2026-10-01, like the other 1.4.0.04 rules. Only these 3 profiles exist, because the FNFE package only ships Schematrons for BASIC WL, EN 16931 and EXTENDED - there are none for MINIMUM and BASIC. The XML Schemas are the Factur-X 1.0.9-2 (ZUGFeRD 2.5.2) ones fromphive-rules-zugferd. The BASIC WL and EN 16931 Schematrons of the FNFE package are byte identical to the Factur-X 1.0.9-2 ones, so they are referenced fromphive-rules-zugferdinstead of being duplicated. The EXTENDED Schematron is not identical: the FNFE ships a France specific "fix-FR04" variant, applicable in France from 2026-10-01, so it is stored inphive-rules-france:BR-FXEXT-S-01,BR-FXEXT-Z-01,BR-FXEXT-E-01,BR-FXEXT-AE-01,BR-FXEXT-IC-01,BR-FXEXT-G-01,BR-FXEXT-O-01,BR-FXEXT-AF-01andBR-FXEXT-AG-01- corrected the XPath, which testedram:AssociatedDocumentLineDocumentrelative toram:SpecifiedLineTradeSettlementinstead of relative to its parent lineBR-FXEXT-CO-10,BR-FXEXT-CO-12andBR-FXEXT-CO-13- added/xs:decimal(.)inside thesum()functions to avoid rounding differences caused by the number representation
FranceCTCValidation.getAllPrerequisitesnow requiresde.zugferd:{basicwl,en16931,extended}:2.5.2instead ofde.zugferd:extended:2.5andde.zugferd:extended:2.5.2, because the Factur-X rules use the XML Schemas and Schematrons of all three profiles, while the ZUGFeRD 2.5 artefacts are no longer referenced at all
v4.5.6 - 2026-09-06
- Added the France CTC validation rules
1.4.0.04(2026-09-03), VES coordinatesfr.ctc:ubl-invoice:1.4.0-04,fr.ctc:ubl-creditnote:1.4.0-04,fr.ctc:cii:1.4.0-04,fr.ctc:cdar:1.4.0-04,fr.ctc:extended-ubl-invoice:1.4.0-04,fr.ctc:extended-ubl-creditnote:1.4.0-04andfr.ctc:extended-cii:1.4.0-04, and deprecated the 1.4.0.03 rules. The FNFE hotfix number04is expressed as a DVR version classifier, hence the version1.4.0-04. The rules are taken from fnfempe/France_RFE v1.4.0.04. The EN 16931 base (1.3.16) and the Factur-X EXTENDED XSD (1.0.9-2 / ZUGFeRD 2.5.2) are unchanged compared to 1.4.0.03. Per the FNFE release notes it contains:- All Schematrons:
number()was replaced byxs:decimal()to avoid rounding differences caused by the number representation - CII
BR-FR-MV-10- corrected the line count (issue #28) andBR-FR-CO-07/BT-9 - now handles multiple Payment Terms groups (issue #40) - UBL
BR-FR-CO-07- corrected the Due Date XPath for Credit Notes (issue #29),BR-FR-11,BR-FR-20,BR-FR-21andBR-FR-CO-14- now handle notes without a subject code (issue #42),BR-FR-22- corrected theBAR = 'B2B'test (issue #43) andBR-FR-08/BT-23 - corrected the error message (issue #48) - EXTENDED-CTC-FR CII:
BR-CO-27removed, because it isCII-SR-470which does not apply to EXTENDED-CTC-FR (issue #44);CII-SR-069andCII-SR-072were replaced byCII-FREXT-SR-069andCII-FREXT-SR-072with cardinality 0..1 for BT-160 and BT-161 (issues #46 and #47); further alignment with EN 16931 forCII-SR-467toCII-SR-469,CII-SR-471toCII-SR-473andCII-SR-475toCII-SR-494 - CDAR
BR-FR-CDV-CL-09_MDT-113_210B2G- corrected the empty XPath in the B2G refusal reason check (issue #34),BR-FR-CDV-13- added the new WARNING assertionBR-FR-CDV-13/MDT-129-2requiring an MDT-129 withschemeID0002(SIREN), andBR-FR-CDV-15/MDT-113- corrected the rejected status code in the message from 123 to 213
- All Schematrons:
- The France CTC 1.4.0.04 rules are marked as valid from 2026-10-01, the date stated in the Schematron headers - the 1.4.0.03 rules kept their 2026-09-01 date. Until 2026-10-01 the France CTC 1.4.x rules are therefore only "valid per now" in their deprecated 1.4.0.03 form
- Updated to XRechnung 3.0.2 Schematron Rules 2.6.0 (2026-08-31).
The VES coordinates
de.xrechnung:*:3.0.2are unchanged - KoSIT versions the Schematron rules separately from the XRechnung specification. The rules now build on the CEN EN 16931 rules 1.3.16 instead of 1.3.15, soXRechnungValidation.getAllPrerequisitesrequireseu.cen.en16931:*:1.3.16instead of...:1.3.15. Per the KoSIT change log it contains:- The error level of
BR-TMP-2was raised to "fatal" - this may break existing validation workflows, please evaluate the impact - New temporary rules
BR-TMP-4andBR-TMP-5(CII) replacingCII-SR-475andCII-SR-476with a corrected rule context, until the bug is fixed upstream (see eInvoicing-EN16931 issue #508) - New temporary rule
BR-TMP-6(UBL) enforcing theYYYY-MM-DDdate format andBR-TMP-7(CII) enforcing theformat="102"attribute plus theYYYYMMDDformat on BT-2, BT-7, BT-9, BT-26, BT-72, BT-73, BT-74, BT-134 and BT-135.BR-TMP-4toBR-TMP-7are currently "warning" only and will be raised to "fatal" in a future release - Global code list variables adapted to the CEN 1.3.16 code list updates and the IBAN regular expression was extracted to
common.sch PEPPOL-EN16931-R008in UBL no longer rejects an empty BT-13 "Purchase order reference" (cac:OrderReference/cbc:ID), which the UBL schema requires whenever BT-14 "Sales order reference" is present
- The error level of
v4.5.5 - 2026-09-01
- Updated the Turkey e-Fatura Schematron rules in
phive-rules-turkeyto the GİBe-FaturaPaketipublished on 2026-08-24, containing the Schematron release20260701(see issue #85). The VES coordinatestr.efatura:invoice:1.2.1,tr.efatura:application-response:1.2.1,tr.efatura:despatch-advice:1.2.1,tr.efatura:receipt-advice:1.2.1andtr.efatura:zarf:1.2.1are unchanged - GİB does not version the Schematron package separately from UBL-TR 1.2.1- New rules for the electricity charging (
SARJ/SARJANLIK) invoice types:EnerjiInvoicePeriodCheckrequires a completecac:InvoicePeriod,EnerjiESURaporIDCheckrequires anESURaporIDdocument reference,EnerjiPartyIdentificationPlakaCheckrequires aPLAKAparty identification andEnerjiItemInstanceSerialIDCheckrequires a line levelcac:ItemInstance/cbc:SerialID - Trailer plates moved from
cbc:LicensePlateIDtocac:TransportHandlingUnit/cac:TransportEquipment/cbc:ID, checked by the new ruleTransportEquipmentIDSchemeIDCheckagainst the new code listTransportEquipmentIDSchemeIDType(DORSE,DORSEPLAKA,YABANCIDORSE,YABANCIDORSEPLAKA);LicensePlateIDSchemeIDTypenow only allowsPLAKAandYABANCIPLAKA - The new rule
LicensePlateIDCheckrequires a Despatch Advice that names a driver to also carry a license plate - The IDIS shipment number (
SEVKIYATNO) may now also start withES-instead of onlySE-, in Invoice and Despatch Advice - Invoice type
IADEis now also allowed with profileKAMU - The tax exemption reason codes
308and339were moved out ofTaxExemptionReasonCodeTypeinto the new code listYatirimTesvikTaxExemptionReasonCodeType, soTaxExemptionReasonCodeCheckonly accepts them for theYATIRIMTESVIKprofile and the investment incentive e-Arşiv invoice types; code233was added toTaxExemptionReasonCodeTypeandistisnaTaxExemptionReasonCodeType - Added the reserved user alias
erreceipt(e-Gider Pusulası) toReservedAliasesandUserEnvelopeAliases, plus twoUserAccountCheckassertions for it: nohr:AuthorizedWorkScopemay be present andhr:UserOptionCodemust be171,172,173or174
- New rules for the electricity charging (
- Updated
UBLTR_1.2.1_Kilavuzlar.zipinphive-rules-turkey/docs- the UBL-TR code list guide went from V1.42 to V1.43 (documentation only, no rule change) - The
MainGibArtefactDownloadertool now stores artefacts that GİB re-uploaded under a browser style duplicate name (e.g.e-FaturaPaketi (29).zip) under their stable name, sodocs/does not accumulate one copy per re-upload
v4.5.4 - 2026-08-23
- Moved Peppol BIS 2025.5 from
phive-rules-peppoltophive-rules-peppol-legacy. The classcom.helger.phive.peppol.PeppolValidation2025_05is now calledcom.helger.phive.peppol.legacy.PeppolValidation2025_05and all its VES coordinates (eu.peppol.bis3:*:2025.5) are marked as deprecated - Moved the Peppol PINT AE releases 0.9.0, 2025.6, 2025.7 and 2025.11 from
phive-rules-peppol-pinttophive-rules-peppol-legacy- only the latest two releases (2026.3 and 2026.5) remain in the main module. The respective constants moved fromcom.helger.phive.peppol.pint.PeppolValidationPintAEto the new classcom.helger.phive.peppol.legacy.PeppolLegacyValidationPintAE. The VES coordinatesorg.peppol.pint.ae:*:2025.7andorg.peppol.pint.ae:*:2025.11are now marked as deprecated - Moved the Peppol PINT A-NZ releases 1.0.1, 1.1.0 and 1.1.1 from
phive-rules-peppol-pinttophive-rules-peppol-legacy- only the latest two releases (1.1.2 and 1.1.3) remain in the main module. The respective constants moved fromcom.helger.phive.peppol.pint.PeppolValidationPintAUNZto the new classcom.helger.phive.peppol.legacy.PeppolLegacyValidationPintAUNZ. All moved VES coordinates were already deprecated, so the validation results are unchanged - Added the methods
initBillingtoPeppolValidation2025_11,PeppolValidation2026_03,PeppolValidation2026_05andPeppolValidationBisEuropeto register only the Peppol BIS Billing and Self-Billing rules, without the Post-Award (Upgrade-3) rules - thx @gregjotau (see PR #84) - Breaking change: the numeric SimplerInvoicing version classifiers are now zero padded to two digits, because DVR compares version classifiers as Strings.
Affected are the VES coordinates
org.simplerinvoicing:invoice:2.0.3-1up to...:2.0.3-9,org.simplerinvoicing:creditnote:2.0.3-1up to...:2.0.3-9andorg.simplerinvoicing:nlcius-cii:1.0.3-1up to...:1.0.3-9. They are now called2.0.3-01..2.0.3-09and1.0.3-01..1.0.3-09respectively - the Java constants and the display names are unchanged. Previously2.0.3-9was sorted after2.0.3-13, so the pseudo versionslatest,latest-releaseetc. resolved to the deprecated version2.0.3-9instead of2.0.3-13(see issue #80)
v4.5.3 - 2026-08-08
- The France PPF Flux 10 validation rules now use the AIFE provided Flux 10 XSDs in addition to the Schematron rules.
Documents that were previously only checked by Schematron are now first validated against the
ReportXML Schema - The France Extended CTC CII rules now use the Factur-X EXTENDED XSD instead of the generic CII D22B schema -
fr.ctc:extended-cii:1.4.0uses Factur-X 1.0.9 (ZUGFeRD 2.5) andfr.ctc:extended-cii:1.4.0-03uses Factur-X 1.0.9-2 (ZUGFeRD 2.5.2). Documents that were previously accepted by the XSD layer may now be rejected - Because of that,
phive-rules-francenow depends onphive-rules-zugferdand requires the ZUGFeRD rules to be registered first.PhiveRulesValidation.initPhiveRuleswas changed accordingly; users calling theinit...methods manually must register ZUGFeRD before France - Added new method
ZugferdValidation.getXSDResource24onwards (String, EZugferdProfile)to access the XML Schema resource of a specific ZUGFeRD 2.4+ profile - Fixed the
xs:importreferences of the ZUGFeRD 2.5 and 2.5.2 XSDs - all 5 profiles referenced theQualifiedDataTypeandUnqualifiedDataTypeschemas under their upstream file names, which are not the names used in this repository. As a result theqdt:andudt:types were not resolved and the affected elements were effectively not validated by the XSD layer
v4.5.2 - 2026-08-05
- Added the France CTC validation rules
1.4.0.03(2026-08-04), VES coordinatesfr.ctc:ubl-invoice:1.4.0-03,fr.ctc:ubl-creditnote:1.4.0-03,fr.ctc:cii:1.4.0-03,fr.ctc:cdar:1.4.0-03,fr.ctc:extended-ubl-invoice:1.4.0-03,fr.ctc:extended-ubl-creditnote:1.4.0-03andfr.ctc:extended-cii:1.4.0-03, and deprecated the 1.4.0 rules. The FNFE hotfix number03is expressed as a DVR version classifier, hence the version1.4.0-03. The rules are now taken from the new FNFE GitHub repository fnfempe/France_RFE instead of the fnfe-mpe.org download page. This is a cumulative hotfix release on top of 1.4.0; per the FNFE change list it contains:- 1.4.0.01 - corrected
BR-FREXT-CO-12in the UBL EXTENDED-CTC-FR profile, which rejected invoices having document level charges but no document level allowances - 1.4.0.02 - added the
SEandBYroles toBR-CL-10in the UBL EXTENDED-CTC-FR rules, and corrected the message of CIIFR-FR-28which quoted the UBL XPath - 1.4.0.03 - corrected the XPath of
BR-FR-01,BR-FR-02andBR-FR-03in UBL, addedSE/BYtoBR-CL-10in UBL, plus further corrections in UBL and CII, and updated Factur-X to the published 1.09.2 version (instead of the beta)
- 1.4.0.01 - corrected
- Note: the DVR version
1.4.0-03is rendered as1.4-03in its short form (e.g.fr.ctc:cdar:1.4-03), because the trailing zero micro version is omitted. Reading that short form back requires ph-diver 4.2.2+ - with the ph-diver 4.2.1 used here, only the long formfr.ctc:cdar:1.4.0-03can be parsed
v4.5.1 - 2026-08-04
- Added support for ZuGFERD 2.5.2 / Factur-X 1.09.2 - all profiles (XML only), based on the English rule set. The rule set is marked as valid from 2026-09-01, the effective date stated in the Factur-X 1.09.2 release metadata
- Deprecated the ZuGFERD 2.3.3 and 2.4 validation rules, so that only 2.5 and 2.5.2 are non-deprecated
- The France PPF Flux 1 validation rules now use the AIFE provided Flux 1 XSDs instead of the generic UBL 2.1 and CII D22B schemas. These XSDs are restricted subsets of OASIS UBL 2.1 and UN/CEFACT CII D22B, so documents that were previously accepted by the XSD layer may now be rejected
v4.5.0 - 2026-08-03
- Extracted the foundational, XSD-only document format modules into the separate repository phive-rules-foundations (versioned independently starting at
5.0.0):phive-rules-cii,phive-rules-ubl,phive-rules-ebinterface,phive-rules-facturae,phive-rules-fatturapa,phive-rules-finvoice,phive-rules-ksef,phive-rules-osaandphive-rules-teapps. The Maven coordinates (com.helger.phive.rules:phive-rules-<format>) and VES coordinates are unchanged - Moved the shared registration SPI and helpers (
IValidationRulesRegistrarSPI,PhiveRulesHelper,PhiveRulesInitializationException,PhiveRulesTestHelper,ValidationRulesRegistrar) to the newphive-rules-foundation-apiartifact (packagecom.helger.phive.rules.foundation). The previous classes incom.helger.phive.rules.apiremain as@Deprecateddelegates for backwards compatibility phive-rules-apinow depends onphive-rules-foundation-apiand retains only the UBL/CII specific helpers- Added France PPF Flux 1 (e-invoicing & e-reporting) validation rules v0.2 for UBL and CII, in the "Démarrage" and "Cible" trajectories
- Added France PPF Flux 10 (e-reporting) validation rules v1.0
v4.4.2 - 2026-07-30
- Added Peppol Message Level Status (MLS) 1.0.1 validation rules from the
v1.1.0release (2026-07-07) inphive-rules-peppol, VES coordinateorg.peppol:mls:1.0.1, and deprecated 1.0.0- The updated Schematron (
peppol-mls-1.0.1, 2025-12-15) applies the SPIS regex case-insensitively and requires the Sender/Receiver Party Endpoint ID scheme ID to be the SPIS Participant Identifier Scheme (0242)
- The updated Schematron (
- Updated Peppol OM (Oman) Tax Data Document (TDD) 1.0.1 in
phive-rules-peppol-taxdatato the final released Schematron (2026-07-29), VES coordinateorg.peppol.taxdata:om:1.0.1- The updated rule
ibr-tdd-42makes the Seller tax identifier (IBT-031) optional for the import of goods, import of service RCM and profit margin self invoice transaction types - Added the three new example files
import-goods-tdd.xml,import-service-rcm-tdd.xmlandprofit-margin-self-invoice-tdd.xml
- The updated rule
- Updated Peppol PINT OM (Oman) Billing and Self-Billing 1.0.1 in
phive-rules-peppol-pintto the final released Schematron (2026-07-29), VES coordinatesorg.peppol.pint.om:invoice:1.0.1,org.peppol.pint.om:creditnote:1.0.1,org.peppol.pint.om:invoice-self-billing:1.0.1andorg.peppol.pint.om:creditnote-self-billing:1.0.1- The updated jurisdiction rule
IBR-173-OMnow requires the Seller UUID (BTOM-004) to be a valid UUID version 5 (previously version 4 or 5)
- The updated jurisdiction rule
- Moved the legacy OIOUBL artefacts (
OIOUBLLegacyValidation, versions 2.0.2 and 3.0.1) from Group IDdk.oioubltodk.oioubl.legacy, so that they no longer overlap with the activedk.oioublrules and pseudo-version resolution (latest,latest-release) no longer picks the deprecated legacy artefacts. See #76
v4.4.1 - 2026-07-23
- Added Peppol TDD AE (United Arab Emirates) 1.0.4 validation rules from the
2026-TDD-1.0.4release (2026-07-22) inphive-rules-peppol-taxdata, VES coordinateorg.peppol.taxdata:ae:1.0.4, and deprecated 1.0.3 - Added Peppol OM (Oman) 1.0.1 validation rules from the
2026-Q2-v1.0.1release (2026-07-23)- PINT OM Billing and Self-Billing 1.0.1 in
phive-rules-peppol-pint, VES coordinatesorg.peppol.pint.om:invoice:1.0.1,org.peppol.pint.om:creditnote:1.0.1,org.peppol.pint.om:invoice-self-billing:1.0.1andorg.peppol.pint.om:creditnote-self-billing:1.0.1 - OM Tax Data Document (TDD) 1.0.1 in
phive-rules-peppol-taxdata, VES coordinateorg.peppol.taxdata:om:1.0.1(viapeppol-om1.2.0) - The respective 1.0.0 rule sets are now deprecated
- PINT OM Billing and Self-Billing 1.0.1 in
v4.4.0 - 2026-07-19
- Added new SPI interface
IValidationRulesRegistrarSPI(inphive-rules-api) that every rule module implements to register its validation execution sets into a provided registry. UseValidationRulesRegistrar.registerAllValidationRulesto discover and register all rules found on the classpath in a single call. The registration order between dependent modules (e.g. modules based on EN 16931) is resolved automatically via the coordinates each implementation declares ingetAllPrerequisites()(sharing the same data basis as the module's staticinit...methods): an implementation whose prerequisites are not yet registered is retried in a later round; if a full round makes no progress the unresolvable prerequisites cause anIllegalStateException - Updated to ph-schematron v10.x
- Added support for CII D25A in
phive-rules-cii(via ph-cii 4.1.2), VES coordinateun.unece.uncefact:crossindustryinvoice:D25A(XSD only) - Added new submodule
phive-rules-allthat depends on all current (non-legacy) validation modules and offersPhiveRulesValidation.initPhiveRulesto register them all in the proper order in a single call - Added new submodule
phive-rules-all-legacythat depends on the legacy validation modules (OIOUBL 2.0.2/3.0.1 and legacy Peppol) and offersPhiveRulesLegacyValidation.initPhiveRulesLegacyto register them all in the proper order in a single call - Extracted all Peppol Tax Data Document (TDD) validation rules from
phive-rules-peppolinto the new submodulephive-rules-peppol-taxdatato reduce the footprint ofphive-rules-peppol. See #72- The VES coordinates are unchanged (Group ID
org.peppol.taxdata, Artefact IDsae,om,skandvida) - Incompatible change: the class
PeppolValidationTaxDatamoved from packagecom.helger.phive.peppoltocom.helger.phive.peppol.taxdata - Incompatible change:
PeppolValidation.initStandardno longer registers the TDD validation sets. To keep using them, add a dependency onphive-rules-peppol-taxdataand callPeppolValidationTaxData.initexplicitly - As a result
phive-rules-peppolno longer depends on thepeppol-om-tdd-datatypes,peppol-sk-tdd-datatypes,peppol-uae-tdd-datatypesandpeppol-vida-tdd-datatypesartifacts
- The VES coordinates are unchanged (Group ID
- Extracted all Peppol PINT (Peppol International) validation rules from
phive-rules-peppolinto the new submodulephive-rules-peppol-pintto reduce the footprint ofphive-rules-peppol(roughly halving its resource size). See #72- The VES coordinates are unchanged (Group IDs
org.peppol.pintandorg.peppol.pint.ae/aunz/eu/jp/my/om/sg) - Incompatible change: the classes
PeppolValidationPint,PeppolValidationPintAE,PeppolValidationPintAUNZ,PeppolValidationPintEU,PeppolValidationPintJP,PeppolValidationPintJP_NTR,PeppolValidationPintJP_SB,PeppolValidationPintMY,PeppolValidationPintOMandPeppolValidationPintSGmoved from packagecom.helger.phive.peppoltocom.helger.phive.peppol.pint - Incompatible change:
PeppolValidation.initStandardno longer registers the PINT validation sets. To keep using them, add a dependency onphive-rules-peppol-pintand callPeppolPintValidation.initPeppolPintexplicitly (or rely on theIValidationRulesRegistrarSPIauto-discovery) - Incompatible change: renamed
PeppolValidationPinttoPeppolValidationPintBase
- The VES coordinates are unchanged (Group IDs
v4.3.9 - 2026-07-08
- Added new submodule
phive-rules-serbiafor the Serbian SEF (SRBDT) EN 16931 CIUS and Extension validation rules. See #67- UBL VES coordinates
rs.gov.mfin.srbdt:ubl-invoice:1.0.0andrs.gov.mfin.srbdt:ubl-creditnote:1.0.0, building on the EN 16931 UBL rules 1.3.8 - Rules taken from https://github.com/vasiljevic/en16931-srbdt-va (licensed under EUPL v1.2)
- Added the Serbian SEO (Sistem Elektronskih Otpremnica) logistics documents Despatch Advice (eOtpremnica) and Receipt Advice (ePrijemnica). See #68
- UBL VES coordinates
rs.gov.mfin.logistics:ubl-despatch-advice:1.1.0andrs.gov.mfin.logistics:ubl-receipt-advice:1.1.0 - The Ministry of Finance only publishes UBL 2.1 example documents for SEO, so these perform UBL 2.1 XSD validation only (no Serbia-specific or Peppol Logistics BIS business rules)
- UBL VES coordinates
- UBL VES coordinates
- Updated Peppol OM Tax Data Document (TDD) 1.0.0 rules to the final release (2026-06-23) from https://docs.peppol.eu/poac/om/om-tdd/
- Added support for France CTC 1.4.0 validation rules, building on EN 16931 1.3.16, effective 2026-09-01. See #69
- VES coordinates
fr.ctc:ubl-invoice:1.4.0,fr.ctc:ubl-creditnote:1.4.0,fr.ctc:cii:1.4.0,fr.ctc:cdar:1.4.0,fr.ctc:extended-ubl-invoice:1.4.0,fr.ctc:extended-ubl-creditnote:1.4.0andfr.ctc:extended-cii:1.4.0
- VES coordinates
v4.3.8 - 2026-06-15
- Added support for ZuGFERD 2.5 (incl. Corrigendum 1) - all profiles (XML only)
- Added support for Peppol PINT BIS Billing 1.1.3 (release 2026-06-05)
- Added support for Peppol PINT A-NZ 1.1.3 (Billing and Self-Billing, release 2026-05-21) and deprecated 1.1.2
- Added support for Peppol PINT Japan 1.1.3 (Standard, Non-tax Registered Businesses, Self Billing — release 2026-05-18) and deprecated 1.1.2
- Added support for Peppol PINT Malaysia 1.3.1 (Billing and Self-Billing, release 2026-06-05) and deprecated 1.3.0
- Added support for Peppol PINT Singapore 1.4.1 (Billing, release 2026-05-25) and deprecated 1.4.0
- Added support for Peppol PINT EU 1.1.1 (release 2026-06-09) — version coordinate
2026.6; deprecated 1.0.0 (1.0.1 remains active)
v4.3.7 - 2026-06-09
- Updated Peppol PINT Oman (OM) 1.0.0 rules (2026-Q2-FIN snapshot)
v4.3.6 - 2026-06-01
- Added Peppol TDD AE 1.0.3 rules and deprecated 1.0.2
v4.3.5 - 2026-05-28
- Added Peppol PINT AE 1.0.4 rules (2026-Q2 release)
v4.3.4 - 2026-05-22
- Updated Peppol PINT Oman (OM) 1.0.0 rules (2026-Q2-FIN snapshot)
v4.3.3 - 2026-05-21
- Updated Peppol PINT Oman (OM) 1.0.0 rules (2026-Q2-FIN snapshot)
- Added Peppol BIS 2026-05 release
- Moved Peppol BIS Self-Billing 3.0.0 to the Legacy project
- Deprecated Simplerinvoicing Invoice 2.0.3.11, Simplerinvoicing 2.0 G-Account extension 1.0.11 and NLCIUS-CII 1.0.3.11
- Added Simplerinvoicing Invoice 2.0.3.13, Simplerinvoicing 2.0 G-Account extension 1.0.13 and NLCIUS-CII 1.0.3.13.
v4.3.2 - 2026-05-13
- Added new submodule
phive-rules-osafor Hungarian NAV Online Számla (OSA) v2.0 and v3.0 XSD validation. See #64 - thx @krisraich- VES coordinates
hu.gov.nav.osa:invoiceData:2.0,hu.gov.nav.osa:invoiceAnnulment:2.0,hu.gov.nav.osa:invoiceData:3.0andhu.gov.nav.osa:invoiceAnnulment:3.0
- VES coordinates
- Updated Peppol PINT Oman (OM) 1.0.0 rules (2026-Q2-FIN snapshot)
- Added OIOUBL 1.17.2 rules. See #65
- Deprecated all previous OIOUBL 1.x releases (1.16.1 and 1.17.1)
v4.3.1 - 2026-05-09
- Removed OSGI bundling
- Added support for France CTC 1.3.1 validation rules. See #63 - thx @gastoncocco
- Added new submodule
phive-rules-turkeyfor Turkey UBL-TR 1.2.1 / e-Fatura validation. See #62 - thx @andreabrunelli-ecosio- Bare UBL VES coordinates
tr.efatura:invoice:1.2.1,tr.efatura:application-response:1.2.1,tr.efatura:despatch-advice:1.2.1andtr.efatura:receipt-advice:1.2.1— UBL 2.1 XSD plus the GİBUBL-TR_Main_Schematronrules - SBDH-wrapped Zarf VES coordinate
tr.efatura:zarf:1.2.1— validates the full envelope (sh:StandardBusinessDocument+ef:Package+ inner UBL document) usingph-sbdhfor the wrapper schemas; only this VES exercises the envelope-tier rules (envelope-type / element-type compatibility, sender/receiverVKN_TCKN, package cardinality, sender ↔ inner-document party cross-checks) - Local fix to the GİB Schematron: reordered
<sch:ns>declarations to come before<sch:include>so the compiled XSLT emits SVRL with valid element ordering (ns-prefix-in-attribute-valuesbeforeactive-pattern); without this, ph-schematron's strict SVRL parser threw "Internal error interpreting Schematron result" on every document
- Bare UBL VES coordinates
- Added support for Peppol PINT Oman (OM) 1.0.0 rules (billing + self-billing) and Peppol OM TDD 1.0.0 rules
- Added support for EN 16931 validation rules 1.3.16 (UBL and CII) and deprecated 1.3.15
- Added support for UBL 2.5-CS01
v4.3.0 - 2026-04-02
- Requires phive 12.0.2 or later
- The internal rule registration was reworked to use a builder-based approach using
PhiveRulesBuilder - Fixed an error in the ZATCA/FATOORA 2.3.8 XSLT that created invalid SVRL
- Added ZATCA/FATOORA 3.4.6 rules
- Added support for Peppol ViDA Pilot TDD 1.0.0 rules
- Added support for Peppol SK TDD 1.0.0 rules
v4.2.5 - 2026-03-27
- Updated to final AE PINT 1.0.3 rules
v4.2.4 - 2026-03-23
- Added preliminary AE PINT 1.0.3 rules
v4.2.3 - 2026-03-12
- Requires phive 12.0.1 or later
- Added Croatian eRacun v1.0.3 rules (release 2026-03-06). See #56
- Added OIOUBL 1.17.1 rules. See #54
- Deprecated OIOUBL 1.17.0-RC rules
v4.2.2 - 2026-03-05
- Added Peppol BIS Self-Billing 2026.3 (aka 3.0.1) validation rules
v4.2.1 - 2026-03-03
- Renamed all "Peppol PINT UAE" to "Peppol PINT AE" for consistency
- Fixed the version suffix for "Peppol PINT AE" release 2025-11 from "1.0.1" to "1.0.2"
- Moved the OIOUBL rules to the class
OIOUBLLegacyValidationas it was discontinued from the government. See #53
v4.2.0 - 2026-02-22
- Updated to phive 12.x
v4.1.8 - 2026-02-18
- Added Croatian eRacun v1.0.2 rules (release 2026-01-24)
- Updated to XRechnung 3.0.2 Schematron Rules 2.5.0
- Added support for France CTC 1.3.0 validation rules. They now include the EN16931 1.3.15 validation rules.
- Added support for France Extended CTC 1.3.0 validation rules
v4.1.7 - 2026-01-28
- Updated to AE PINT Self-Billing 1.0.2-hotfix2 rules.
v4.1.6 - 2026-01-28
- Updated to AE PINT 1.0.2-hotfix2 rules.
v4.1.5 - 2026-01-27
- Added AE TDD 1.0.2 rules. See #51
- Updated to AE PINT 1.0.2-hotfix rules. See #51
- Updated to Peppol BIS Billing 3.0.20-hotfix rules. See #52
v4.1.4 - 2026-01-23
- Added Croatian eRacun v1.0.1 rules. See #49
- Added OIOUBL 1.17.0-RC rules. See #50
- Fixed validity start date of OIOUBL 1.16.1 rules to be in November 2025
- Deprecated OIOUBL 1.15.2 rules.
v4.1.3 - 2026-01-13
- Added support for Peppol AE TDD v1.0.1. See #48
v4.1.2 - 2025-12-13
- Added support for Peppol AE Tax Data Document v1.0.0. See #43
- Added support for ZuGFERD 2.4 - all profiles (XML only). See #44
- Deprected ZuGFERD 2.3.2 version
- Added OIOUBL 1.16.1 rules. See #42 - thx @NielsenEDI
- Deprecated Simplerinvoicing Invoice 2.0.3.10, Simplerinvoicing 2.0 G-Account extension 1.0.10 and NLCIUS-CII 1.0.3.9
- Added Simplerinvoicing Invoice 2.0.3.12, Simplerinvoicing 2.0 G-Account extension 1.0.12 and NLCIUS-CII 1.0.3.12. See #45
- Deprecated Peppol BIS 2024.11 release, as 2025.5 release is already mandatory
- Added Peppol BIS 2025-11 release. See #46
- Added Peppol PINT 2025-11 releases. See #47
- Deprecated Peppol PINT AE 2025.06 release.
- Deprecated Peppol PINT JP 1.1.0 release.
- Deprecated Peppol PINT MY 1.1.0 release.
- Deprecated Peppol PINT SG 1.2.0 release.
- Moved Peppol BIS 2024.5 and 2024.11 from
phive-rules-peppoltophive-rules-peppol-legacy
v4.1.1 - 2025-11-18
- Added support for CDAR D22B XML Schema
- Added support for France CTC 1.2.0 validation rules and deprecated rules v0.1 (on UBL, CII and CDAR)
- Added support for EN 16931 rules v1.3.15 format and deprecated v1.3.13. See #41
- Added support for Croatian eRacun v1.0.0 rules (new submodule
phive-rules-eracun). See #40
v4.1.0 - 2025-11-16
- Updated to ph-commons 12.1.0
- Using JSpecify annotations
- Added Poland KSeF FA(3) format. See #39
v4.0.3 - 2025-10-02
- Added support for Peppol Singapore BIS Order Balance 1.0
- Added support for Peppol PINT EU 1.0.0 (v2025.10)
v4.0.2 - 2025-09-26
- Added support for Poland KSeF validation rules. See #20 - thx @krisraich
v4.0.1 - 2025-09-15
- Added support for France CTC 0.1 validation rules
- Added additional SETU document types "Assignment", "Human Resource" and "Staffing Order" that are supported on the Peppol Network
v4.0.0 - 2025-08-27
- Requires Java 17 as the minimum version
- Updated to ph-commons 12.0.0
v3.2.15 - 2025-08-10
- Added support for Peppol PINT AE 1.0.1 (v2025.7)
- Updated to XRechnung 3.0.2 Schematron Rules 2.4.0
v3.2.14 - 2025-07-04
- Added support for Peppol PINT AUNZ 1.1.1
- Added support for Peppol PINT JP 1.1.1
- Added support for Peppol PINT MY 1.2.1
- Added support for Peppol PINT SG 1.3.0
v3.2.13 - 2025-06-23
- Added support for EN 16931 rules v1.3.14.2 format and deprecated v1.3.14.1
- Added Peppol BIS 2025-05 release
- Added Peppol MLS 1.0.0 with VESID
org.peppol:mls:* - Deprecated Simplerinvoicing Invoice 2.0.3.9, Simplerinvoicing 2.0 G-Account extension 1.0.9 and NLCIUS-CII 1.0.3.8
- Added Simplerinvoicing Invoice 2.0.3.11, Simplerinvoicing 2.0 G-Account extension 1.0.11 and NLCIUS-CII 1.0.3.10 (deprecated) and 1.0.3.11
- Added OIOUBL 1.15.2 rules
- Deprecated all previous OIOUBL 1.1x releases
- Added support for Peppol Italy rules 3.2.1 (AGID Credit Note, Despatch Advice, Invoice, Order, Order Agreement and Order Response), Italian version
v3.2.12 - 2025-06-10
- Added Peppol PINT AE 2025-Q2 (first public version)
v3.2.11 - 2025-05-20
- Added support for EN 16931 rules v1.3.14.1 format and deprecated v1.3.12
- Added support for ZuGFERD 2.3.3 - all profiles (XML only)
v3.2.10 - 2025-03-31
- Added Peppol PINT AE 0.9.0 (public preview version)
v3.2.9 - 2025-03-27
- Updated to XRechnung 3.0.2 Schematron Rules 2.3.0
- Added Peppol BIS Singapore 2024.12 (aka BIS 3.0.14). See #28 - thx @xiongnan2603
- Deprecated Peppol BIS Singapore 2023.7 and 2023.12
v3.2.8 - 2025-03-19
- Added Peppol BIS Self-Billing 2025.3 validation rules
- Added OIOUBL 1.15.1 rules
v3.2.7 - 2025-03-10
- Deprecated Peppol BIS 2024.5 release, as 2024.11 release is already mandatory
- Added Peppol PINT AUNZ 1.1.0 rules and deprecated v1.0.1 rules
- Added Peppol PINT JP 1.1.0 rules and deprecated the old rules
- Added Peppol PINT MY 1.1.0 rules and deprecated v1.0.0 rules
- Added Peppol PINT SG 1.2.0 rules and deprecated v1.1.0 rules
- Added initial version of Saudia Arabian ZATCA/FATOORA format in new submodule
phive-rules-zatca(requires ph-schematron 8.0.6)
v3.2.6 - 2025-02-11
- Added Peppol 2024-11 Hotfix Schematron rules (replacing the previous ones)
- Added OIOUBL 1.15.0-rc rules
- Deprecated OIOUBL 1.13.2 rules
v3.2.5 - 2025-02-03
- Fixed the "valid per" date of the Peppol 2024-11 release. See #26 - thx @wildhai
v3.2.4 - 2025-01-08
- Added specific support for XRechnung Extension (for versions 2.0.1, 2.1.1, 2.2.0, 2.3.1, 3.0.0, 3.0.1 and 3.0.2)
v3.2.3 - 2025-01-03
- Fixed Factur-X VES display name to include the profile name as well
- Added Peppol A-NZ-PEPPOL 1.0.12 rules
- Deprecated Peppol A-NZ-PEPPOL 1.0.10 rules
- Moved Peppol A-NZ-PEPPOL 1.0.9 and 1.0.10 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Moved Peppol 2023-05 and 2023-11 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added support for ZuGFERD 2.0.1 - all profiles (XML only)
- Added support for ZuGFERD 2.1 - all profiles (XML only)
- Added support for OIOUBL 3.0.1 rules - this requires the EN16931 validation artefacts to be available as well
- Renamed class
PeppolLegacyValidationtoPeppolLegacyValidationBisEurope
v3.2.2 - 2024-12-05
- Updated to XRechnung 3.0.2 Schematron Rules 2.2.0
- Added Peppol November 2024 release (Billing 3.0.18 and Upgrade 3.0.14)
- Added Peppol PINT JP 1.0.3 release
- Added Peppol PINT JP for Non-tax Registered Businesses 1.0.1 release
- Added Peppol PINT JP Self Billing 1.0.1 release
- Deprecated Simplerinvoicing Invoice 2.0.3.8, Simplerinvoicing 2.0 G-Account extension 1.0.8 and NLCIUS-CII 1.0.3.7
- Added Simplerinvoicing Invoice 2.0.3.10, Simplerinvoicing 2.0 G-Account extension 1.0.10 and NLCIUS-CII 1.0.3.9
- Added support for CII D22B XML Schema validation
- Added support for ZuGFERD 2.2 - all profiles (XML only)
- Added support for ZuGFERD 2.3.2 - all profiles (XML only)
v3.2.1 - 2024-10-09
- Added support for EN 16931 rules v1.3.13 format and deprecated v1.3.11
v3.2.0 - 2024-09-16
- Updated to ph-diver 3.0.1
- Updated to phive 10.0.2
- Created new sub-module
phive-rules-apiwith a shared API - Marked Peppol Rules 2023-11 as deprecated
- Removed old Peppol rules before 2020 (3.5.0 to 3.9.1)
- This lead to remove old "eFFF invoice" rules, as it was depending on Peppol 3.7.0 rules
- Also lead to remove old "Peppol Thirdparty rules" (AT BIS2 based) (class
PeppolLegacyThirdpartyValidation)
- Renamed class
EHFValidationG3toEHFValidationG3_2020_03 - Made sure that only VESIDs are
public static finalwhereas validation rules resources are not any more - Added support for CIUS-RO 1.0.9 and deprecated CIUS-RO 1.0.8
v3.1.13 - 2024-09-06
- Added support for Peppol Italy rules 3.1.0 (AGID Credit Note, Despatch Advice, Invoice, Order, Order Agreement and Order Response), Italian version
v3.1.12 - 2024-07-29
- Updated to phive 9.2.2
- Added Peppol PINT rules 1.0.2
- Added Peppol PINT A-NZ 1.0.1 rules (billing and self-billing)
- Added Peppol PINT Japan 1.0.2 rules
- Added Peppol PINT Singapore 1.1.0 rules
- Added support for UBL.BE 1.31, deprecated version 1.30
- Renamed class
PeppolValidationSGtoPeppolValidationBisSG - Renamed class
PeppolValidationAUNZtoPeppolValidationBisAUNZ
v3.1.11 - 2024-07-02
- Added Peppol May 2024 release (Billing 3.0.17 and Upgrade 3.0.13)
- Added Peppol A-NZ-PEPPOL 1.0.11 rules
- Deprecated Peppol A-NZ-PEPPOL 1.0.9 rules
- Added XRechnung 3.0.0 rules (for completeness)
- Added XRechnung 3.0.2 rules
- Deprecated Simplerinvoicing Invoice 1.2.4 and Order 1.2.4
- Deprecated Simplerinvoicing Invoice 2.0.3.7, Simplerinvoicing 2.0 G-Account extension 1.0.7 and NLCIUS-CII 1.0.3.6
- Added Simplerinvoicing Invoice 2.0.3.9, Simplerinvoicing 2.0 G-Account extension 1.0.9 and NLCIUS-CII 1.0.3.8
- Added OIOUBL 1.14.2 rules
v3.1.10 - 2024-05-16
- Added support for EN 16931 rules v1.3.12 format and deprecated v1.3.10
- All OIOUBL 1.x validations are now correctly based on UBL 2.1 instead of UBL 2.0
- Extracted the rules for the legacy OIOUBL rules into a separate registerable entity (
OIOUBLLegacyValidation). - Added support for SG-PEPPOL 2023.12 rules.
- Moved SG-Peppol 1.0.3 rules to
phive-rules-peppol-legacy
v3.1.9 - 2024-03-22
- Deprecated Peppol Business Card formats v1 and v2
- Deprecated Peppol May 2023 release
- Updated the EHF G3 formats to the latest versions from 2023-02 and deprecated the previous G3 versions
- Updated to OIOUBL 1.13.2 rules and deprecated all other versions
v3.1.8 - 2024-03-06
- Added support for Peppol Reporting EUSR v1.1.5 and deprecated v1.1.4
- Added support for Peppol Reporting TSR v1.0.5 and deprecated v1.0.4
- Moved old versions of Peppol Reporting validation to
phive-rules-peppol-legacy - Added support for Peppol PINT BIS Malaysia 1.0.0
v3.1.7 - 2024-02-18
- XRechnung 3.0.1 rules updated to reference EN 16931 rules 1.3.11 (was 1.3.10)
- Added Peppol A-NZ-PEPPOL 1.0.10 rules
- Moved Peppol A-NZ-PEPPOL 1.0.7 and 1.0.8 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added support for Peppol Italy rules 3.0.2 (AGID Credit Note, Despatch Advice, Invoice, Order, Order Agreement and Order Response)
- Added Peppol PINT rules 1.0.0 and 1.0.1
v3.1.6 - 2023-11-30
- Added Peppol November 2023 release (Billing 3.0.16 and Upgrade 3.0.12)
- Moved Peppol 3.15.0 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added Simplerinvoicing November 2023 release (SI 2.0.3.8, NLCIUS-CII 1.0.3.7, SI 2.0 G-Account extension 1.0.8)
v3.1.5 - 2023-11-10
- Added support for Peppol Reporting EUSR v1.1.4 and deprecated v1.1.3
- Added support for Czech ISDOC v6.0.2 and deprecated v6.0.1 (original Schematron had errors)
v3.1.4 - 2023-11-06
- Re-release of 3.1.3 because publishing to Maven Central created an error
v3.1.3 - 2023-11-03
- Added support for Peppol Reporting EUSR v1.1.3 and deprecated v1.1.2
- Added support for Peppol Reporting TSR v1.0.4 and deprecated v1.0.3
v3.1.2 - 2023-10-12
- Added support for SG-PEPPOL 2023.7 rules. See issue #18 - thx @Sivasgebiz
- Deprecated SG-PEPPOL 1.0.3 rules
- Moved SG-PEPPOL 1.0.2 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added support for EN 16931 rules v1.3.11 format and deprecated v1.3.9
- Added support for Peppol Reporting EUSR v1.1.2 and deprecated v1.1.1
- Added support for Peppol Reporting TSR v1.0.3 and deprecated v1.0.2
v3.1.1 - 2023-09-21
- Added support for XRechnung 3.0.1
- Updated Peppol Reporting EUSR Schematron to 1.1.1 - deprecated the older versions
- Updated Peppol Reporting TSR Schematron to 1.0.2 - deprecated the older versions
v3.1.0 - 2023-09-14
- Updated to phive 9.0.0
v3.1.0-beta2 - 2023-09-06 (not recommended for production use)
- Deprecated Peppol 3.15.0 rules
- Moved Peppol 3.14.0 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Updated to phive 9.0.0 Beta2 with the strict version number check
- The following VES versions were changed:
eu.cen.en16931:cii:1.3.6ais noweu.cen.en16931:cii:1.3.6.aat.ebinterface:invoice:3.02is nowat.ebinterface:invoice:3.0.2
v3.1.0-beta1 - 2023-08-30 (not recommended for production use)
- Updated to phive 9.0.0 Beta1
v3.0.5 - 2023-07-02
- Added support for Peppol End User Statistics Report 1.1.0
v3.0.4 - 2023-06-27
- Updated XRechnung 2.3.1 rules to 1.8.2
- Added Peppol A-NZ-PEPPOL 1.0.9 rules (deprecated version 1.0.8)
- Added support for Simplerinvoicing 2.0.3.7 and deprecated old versions
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3.6 and deprecated old versions
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.7 and deprecated old versions
- Added Peppol May 2023 release (Billing 3.0.15 and Upgrade 3.0.11) - using a new versioning number (yyyy.m)
- Added new submodule
phive-rules-setufor selected Dutch SETU standards - Added support for Peppol End User Statistics Report 1.0.1
v3.0.3 - 2023-04-30
- Requires ph-ubl 8.0.2 or later
- Added support for UBL 2.4-CSD01
- Added support for Japan PINT Invoice and Credit Note 0.1.2. See issue #16 - thx @dwillekens
v3.0.2 - 2023-04-12
- Added support for EN 16931 1.3.10 format and deprecated EN 16931 1.3.6a, 1.3.7 and 1.3.8 versions
- Deprecated Peppol rules 3.0.14
- Added support for fatturaPA 1.2.2
- Added support for Simplerinvoicing 2.0.3.6 and deprecated old versions
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3.5 and deprecated old versions
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.6 and deprecated old versions
v3.0.1 - 2023-03-16
- Added support for Peppol End User Statistics Report 1.0.0 (deprecated 1.0.0-RC2)
- Added support for Peppol Transaction Statistics Report 1.0.1 (deprecated 1.0.0)
v3.0.0 - 2023-02-20
- Using Java 11 as the baseline
- Updated to ph-commons 11
- Updated to JAXB 4.0
v2.1.19 - 2023-02-19
- Added support for Energie eFactuur 3.1.0
- Added support for XRechnung 2.3.1
- Deprecated XRechnung 2.1.1
v2.1.18 - 2022-12-12
- Added Peppol A-NZ-PEPPOL 1.0.8 rules (deprecated version 1.0.7)
- Moved Peppol A-NZ-PEPPOL 1.0.6 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added support for Peppol November 2022 release as 3.15.0 (Billing 3.0.14 and the rest 3.0.10)
- Moved Peppol 3.13.0 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added support for UBL.BE 1.30, deprecated version 1.2.9 (see the change in numbering:
30vs.2.9) - Added support for CIUS-RO 1.0.8 - thanks to @yleider for the PR again
v2.1.17 - 2022-11-18
- Added support for Peppol End User Statistics Report 1.0.0-RC2
- Added support for Peppol Transaction Statistics Report 1.0.0
- Added support for Simplerinvoicing 2.0.3.5
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3.4
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.5
- Added support for OIOUBL 1.13.0
- Updated XRechnung 2.2.0 rules to v1.7.3
v2.1.16 - 2022-10-18
- Added support for ebInterface 6.1
- Added support for EN 16931 1.3.9 format
v2.1.15 - 2022-07-06
- Added Peppol A-NZ-PEPPOL 1.0.7 rules (deprecated version 1.0.6)
- Moved Peppol A-NZ-PEPPOL 1.0.5 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Deprecated Peppol 3.13.0 rules
- Updated XRechnung 2.2.0 rules to v1.7.2
- Added support for OIOUBL 1.12.3
v2.1.14 - 2022-05-19
- Fixed the EN 16931 UBL 1.3.8 XSLT version. That does not impact the Peppol May 2022 release.
- Added support for CIUS-RO 1.0.3 - thanks to @yleider for the PR ❤️
- Added support for CIUS-RO 1.0.4
v2.1.13 - 2022-05-09
- Deprecated XRechnung 2.0.0 and 2.0.1
- Added support for EN 16931 1.3.8 format
- Added support for Simplerinvoicing 1.2.4, deprecated 1.2.3
- Added support for Simplerinvoicing 2.0.3.4, deprecated 2.0.3.3
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3.3, deprecated 1.0.3.2
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.4, deprecated 1.0.3
- Added support for Peppol May 2022 release as 3.14.0 (Billing 3.0.13 and the rest 3.0.9)
- Moved Peppol rules 3.12.0 from
phive-rules-peppoltophive-rules-peppol-legacy
v2.1.12 - 2022-03-21
- Updated rules for XRechnung 2.2.0 to Schematron 1.7.1
v2.1.11 - 2022-01-25
- Added support for Peppol Italy rules 2.3.0 (AGID Despatch Advice, Invoice, Order, Order Agreement and Order Response)
- Deprecated support for Peppol Italy rules 2.2.9
- Added support for XRechnung 2.2.0
v2.1.10 - 2022-01-11
- Added support for Portuguese CIUS-PT 2.1.1
- Added Peppol A-NZ-PEPPOL 1.0.6 rules (deprecated version 1.0.5)
- Moved Peppol A-NZ-PEPPOL 1.0.4 rules from
phive-rules-peppoltophive-rules-peppol-legacy - Added support for Peppol Directory BusinessCard v1, v2 and v3
v2.1.9 - 2021-12-23
- Deprecated Peppol 3.12.0 rules
- Added support for UBL.BE 1.2.9, deprecated version 1.2.8
- Added support for Simplerinvoicing 2.0.3.3, deprecated 2.0.3.2
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3.2, deprecated 1.0.3.1
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.3, deprecated 1.0.2
v2.1.8 - 2021-11-05
- Fixed the UBL 2.3 version from
2.3-cs01to2.3- no content-wise changes - Added support for EN 16931 1.3.7 format (deprecated version 1.3.6)
- Added support for Peppol November 2021 rules (3.13.0)
- Moved Peppol rules 3.11.1 from
phive-rules-peppoltophive-rules-peppol-legacy
v2.1.7 - 2021-09-02
- Peppol rules 3.11.1 are now correctly marked as deprecated
- Added support for Simplerinvoicing 2.0.3.2, deprecated 2.0.3 and 2.0.3.1
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3.1, deprecated 1.0.3
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.2, deprecated 1.0.1
v2.1.6 - 2021-08-11
- Added support for EN 16931 1.3.6a rules - a special fork on https://github.com/phax/eInvoicing-EN16931/releases/tag/validation-1.3.6a
- Added support for XRechnung 2.1.1
- Added support for UBL.BE 1.2.8, deprecated version 1.2.7
v2.1.5 - 2021-07-02
- Deprecated Peppol rules 3.11.1
- Added support for EN 16931 1.3.6 format (deprecated version 1.3.5)
- Added Peppol A-NZ-PEPPOL 1.0.5 rules (deprecated version 1.0.4)
- Moved Peppol A-NZ-PEPPOL 1.0.3 rules from
phive-rules-peppoltophive-rules-peppol-legacy
v2.1.4 - 2021-05-10
- Added support for UBL.BE 1.2.7, deprecated version 1.2.6
v2.1.3 - 2021-05-03
- Added support for Peppol Spring 2021 rules (final version)
- Moved Peppol rules 3.11.0 from
phive-rules-peppoltophive-rules-peppol-legacy
v2.1.2 - 2021-05-02
- Updated to ph-commons 10.1
- Added support for Peppol Spring 2021 rules (Release Candidate)
v2.1.1 - 2021-04-02
- Added support for EN 16931 1.3.5 format (deprecated version 1.3.4)
- Added new submodule
phive-rules-peppol-italywith the AGID Order, Despatch Advice and Order Response
v2.1.0 - 2021-03-22
- Updated to ph-commons 10
- Dropped support for
EN 16931 EDIFACT/ISO 20625 1.0.0
v2.0.5 - 2021-03-09
- Extracted new submodule
phive-rules-peppol-legacyto reduce the size of the default library. Only the latest two versions are contained in the mainphive-rules-peppolmodule - older versions will be moved tophive-rules-peppol-legacy.
v2.0.4 - 2021-01-27
- Updated to phive 7.1.0
- Added support for EN 16931 1.3.4 format (deprecated version 1.3.3)
v2.0.3 - 2021-01-07
- Added support for Simplerinvoicing 1.2.3
- Added support for Simplerinvoicing 2.0.3
- Added support for Simplerinvoicing 2.0.3.1
- Added support for Simplerinvoicing NLCIUS-CII 1.0.3
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0
- Added support for Simplerinvoicing 2.0 G-Account extension 1.0.1
v2.0.2 - 2021-01-06
- Updated to UBL 2.3-CSD04 (adding 2 new document types)
- Added support for XRechnung 2.0.1 rules v1.5.0
- Deprecated XRechnung 1.2.2 rules as they were valid only until December 31, 2020
- Added support for Czech ISDOC (version 6.0.1) - in the submodule
phive-rules-isdoc
v2.0.1 - 2020-12-04
- Updated to ph-schematron 6.0.1
- Updated to phive 7.0.1
- Fixed the XRechnung 2.0.0 rules to ignore certain base EN16931 rules
- Fixed the display names of the Peppol rules to use the correct versioning
v2.0.0 - 2020-11-25
- Renamed modules from
ph-bdve-rules-*tophive-rules* - Changed the Maven group from
com.helger.bdve.rules.*tocom.helger.phive.rules.* - Named the Maven artefacts from
ph-bdve-rules-*tophive-rules-* - Updated to ph-schematron 6.0.0
- Added support for UBL.BE 1.2.6, deprecated version 1.2.5
v1.0.15 - 2020-11-24
- Added A-NZ-PEPPOL 1.0.4 rules
v1.0.14 - 2020-11-18
- Added support for UBL.BE 1.2.5, deprecated version 1.2.3
- Deprecated Peppol validation artefacts 3.10.1 and 3.11.0
v1.0.13 - 2020-11-13
- Added Peppol Fall 2020 release corrigendum as version 3.11.1
v1.0.12 - 2020-11-12
- Same as 1.0.11 - just re-released because I thought it was lost on the way to Maven Central
v1.0.11 - 2020-11-12
- Updated to ph-bdve engine 6.0.4
- Fixed an error with the XRechnung 2.0.0 validation artefacts
- Added support for Spanish Facturae (version 3.0, 3.1, 3.2, 3.2.1 and 3.2.2) - in the submodule
ph-bdve-rules-facturae - Added support for Portuguese CIUS-PT (version 2.0.0) - in the submodule
ph-bdve-rules-cius-pt
v1.0.10 - 2020-11-06
- Added support for XRechnung 2.0.0 - thanks to @yleider for the PR
v1.0.9 - 2020-11-02
- Added Peppol Fall 2020 release as version 3.11.0
v1.0.8 - 2020-10-05
- Added support for EN 16931 1.3.3 format (deprecated version 1.3.2)
v1.0.7 - 2020-09-17
- Updated to Jakarta JAXB 2.3.3
v1.0.6 - 2020-08-30
- Added support for Finvoice 1.3, 2.0, 2.01 and 3.0
- Added Svefaktura 1.0 and Svefaktura ObjectEnvelope 1.0
- Updated to UBL 2.3-CSD03
v1.0.5 - 2020-07-22
- Added support for UBL.BE 1.2.3 rules
v1.0.4 - 2020-07-06
- Added support for Italian fatturaPA 1.2 and 1.2.1
- Deprecated Peppol 3.10.0 rules
- A Hotfix to the Peppol 3.10.1 rules, only relevant for "0208" participant identifier scheme usage, was included
- Added SG-PEPPOL 1.0.3 rules
- Added A-NZ-PEPPOL 1.0.3 rules
v1.0.3 - 2020-06-16
- Added Peppol Spring 2020 Hotfix release as version 3.10.1
v1.0.2 - 2020-06-15
- EHF G2 rules no longer directly use the Peppol rules but the provided subsets
v1.0.1 - 2020-06-10
- Added support for EHF G3 version 2020-03-23
- Updated the Peppol 3.10.0 VESIDs to contain the document types
v1.0.0 - 2020-06-08
- Extracted from ph-bdve to allow for a clear separation between the engine and rules
- Therefore a new Maven group
com.helger.bdve.ruleswas created
My personal Coding Styleguide | It is appreciated if you star the GitHub project if you like it.