Getting Started
NomaUBL
NomaUBL is a Java 17 integration layer between Oracle JD Edwards and the French e-invoicing ecosystem. It automates the full invoice lifecycle: from JDE XML output to validated UBL 2.1 e-invoices, submission to a Platform Agréée (PA), and lifecycle tracking in Oracle tables.
What it does
- Transforms JDE XML output into UBL 2.1 e-invoices via XSLT stylesheets
- Validates invoices against XSD schemas and Schematron rules (EN16931 + CIUS-FR)
- Submits invoices to a certified French e-invoicing platform (Platform Agréée)
- Tracks the full invoice lifecycle in Oracle tables (F564230–F564236)
- Polls the PA for status updates and reconciles them back to JDE
- Provides a React web interface served by an embedded HTTP server
- Provides a CLI for batch processing and automation
Architecture overview
Key components
| Component | Description |
|---|---|
ScheduleUBL |
CLI entry point — orchestrates all processing modes |
CustomUBL |
Core per-invoice processor (Callable<Integer>) |
UBLValidator |
XSD + Schematron validation (EN16931, CIUS-FR) |
PlatformApiClient |
REST client for the Platform Agréée |
DirectoryApiClient |
PPF directory lookup (non-blocking) |
TokenManager |
JWT bearer token with 55-min cache + auto-refresh |
ImportStatusHandler |
Polls PA for pending invoice status updates |
UBLDatabaseHandler |
All Oracle DB writes (F564230–F564236) |
| Web interface | React + TypeScript, served by embedded WebServer |
Quick start
1. Build the application
2. Verify the build
3. Open the web interface
Then open your browser at http://localhost:8080.
4. Process invoices from CLI
Configuration required
Before running, you must configure the config.properties file with your Oracle database connection and Platform Agréée credentials. See the Configuration section.