From 16272998508dbe9fa425ee0af418030862dee035 Mon Sep 17 00:00:00 2001 From: CarlosMari Date: Fri, 29 May 2026 08:51:59 +0000 Subject: [PATCH] Adding OIOUBL validation rules for Danish NemHandel e-invoicing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enables the upstream phive-rules-oioubl module via the same reflective registration pattern used for the 9 existing standards (EN16931, Peppol, UBL, CII, XRechnung, FacturaE, FatturaPA, ZUGFeRD, France-CTC). The dependency was already drafted commented-out in pom.xml; this moves it to the active block and adds the matching registerRules call. Also drops phive-rules-zugferd from the commented "available" block — ZUGFeRD is already an active dependency, so the comment was misleading. Supports the NemHandel integration: gobl.ubl emits OIOUBL 2.1 XML, phive validates it against the ERST schematron 1.17.1 before transmission. --- README.md | 1 + pom.xml | 17 +++++++---------- src/main/java/config/PhiveRulesInitializer.java | 3 +++ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c4c60a7..a57e6f1 100644 --- a/README.md +++ b/README.md @@ -227,6 +227,7 @@ Set environment variables: - **ZUGFeRD** - German e-invoicing format - **Factur-X** - French pdf+xml e-invoicing - **France-CTC** - French e-invoicing +- **OIOUBL** - Danish e-invoicing (NemHandel) Many rule sets are deprecated so you may need to filter by status on your end. diff --git a/pom.xml b/pom.xml index 6587878..c45d3fe 100644 --- a/pom.xml +++ b/pom.xml @@ -158,6 +158,13 @@ ${phive-rules.version} + + + com.helger.phive.rules + phive-rules-oioubl + ${phive-rules.version} + + diff --git a/src/main/java/config/PhiveRulesInitializer.java b/src/main/java/config/PhiveRulesInitializer.java index c9ba2bd..d03b35d 100644 --- a/src/main/java/config/PhiveRulesInitializer.java +++ b/src/main/java/config/PhiveRulesInitializer.java @@ -70,6 +70,9 @@ public void initialize() { // France CTC (Chorus Pro - French e-invoicing) registerRules("com.helger.phive.france.FranceCTCValidation", "initFranceCTC"); + // OIOUBL (Danish Public Information Online UBL - NemHandel) + registerRules("com.helger.phive.oioubl.OIOUBLValidation", "initOIOUBL"); + // Log the number of registered validation executor sets final int count = registry.getAll().size();