French e-invoicing reform · 2026 wave
Bridge any ERP to the
French e-invoicing reform.
NomaUBL is the unified platform that sits between your accounting system and the Plateforme Agréée. It generates compliant UBL from any ERP, pre-validates every invoice against XSD, Schematron and the French CTC extension, transmits to any approved platform, and tracks every invoice through its full lifecycle — submission, dispute, payment, cancellation.
📦 JD Edwards · SAP · NetSuite · Custom ERP✅ EN 16931 + extended-ctc-fr🔌 Pluggable Plateforme Agréée🛠 Self-service operations
The challenge — and why a PA alone is not enough
The French Réforme de la Facturation Électronique (RFE) makes structured e-invoicing mandatory for all B2B transactions. Companies must:
- Generate structured UBL invoices that comply with EN 16931 + the French CTC extension.
- Transmit them to their customer's Plateforme Agréée — the new state-supervised invoice rail.
- Declare B2C, intra-EU and out-of-scope transactions for VAT through the e-reporting flow.
- Track every invoice's lifecycle until it is paid, disputed, refused or cancelled.
A Plateforme Agréée handles the transmission rail — but not the upstream pipeline. The accounting team is still left to produce a compliant UBL document from a non-compliant ERP output, detect rejections before submission, route by document type, and operate disputes, retries, payment notifications and audit trails.
Without pre-validation
Rejection cycles — and you still pay for them
A Plateforme Agréée bills per invoice transmitted — accepted or rejected. Every Schematron error caught downstream means a rejected invoice, a manual fix, a re-submission, a delay in cash collection — and a transmission charge. Pre-validation eliminates the round-trip and its cost.
Without an operations layer
Lifecycle blind spots
Refusals, disputes and recovery codes require finance-team action. The PA records them — your operations don't see them.
Without source flexibility
Vendor lock-in
An ERP-specific add-on ties you to one vendor. A custom build ties you to one team. Both fail when the regulation evolves.
What NomaUBL is
NomaUBL is a single-tenant, on-premise platform that owns the entire pipeline between your accounting system and the Plateforme Agréée. It is the layer where invoices are generated, validated, sent, tracked and recovered — independent of which ERP produced them and which PA accepts them.
JD Edwards
BIP · archive · FTP
NetSuite
SuiteScript · file
Custom ERP
file · API · DB
→
→
✨
NomaUBL
The unified e-invoicing layer
PA / PDP
Configurable backend — any approved PA
→ E-invoicing
via the buyer's PA
🔌
PA-agnostic
Switch your Plateforme Agréée without rebuilding your e-invoicing stack — the connector is configuration, not code.
📦
ERP-agnostic
JDE today, SAP tomorrow, a divestiture next year — a new template plugs in without touching the rest.
🇫🇷
French CTC ready
EN 16931 + extended-ctc-fr profile, BAR routing, e-reporting tracks, and the Cadre de facturation embedded.
🏠
On-premise
Single-tenant deployment. UBL files, history and credentials remain inside your perimeter — and survive a PA outage.
A single NomaUBL deployment covers every step from the raw ERP output to a tracked, paid invoice:
01
📥
Extract
archive · FTP/SFTP · BIP
02
🔄
Transform
XSLT · BIP RTF→XSL · burst
03
📄
Generate UBL
EN 16931 + CTC-FR
04
✅
Validate
XSD · Schematron · rules
05
📤
Submit
any Plateforme Agréée
06
📊
Track
lifecycle · disputes · payments
07
🛠
Operate
set status · resend · email · credit note
| Step | What NomaUBL does |
|---|
| Extract | Pulls source documents from JDE BIP Print Queue, JDE archive directories, FTP/SFTP servers or local file system. Polls automatically or on demand. |
| Transform | Applies XSLT pre-processing, converts BI Publisher RTF templates to XSL, and bursts multi-document spools by configurable burst keys. |
| Generate UBL | Produces structured UBL 2.1 documents using template-aware defaults: parties, scheme IDs, BAR routing, business-process types, allowance/charge categories, French legal mentions. |
| Validate | Runs XSD + Schematron + the French CTC extension before any document leaves your perimeter. Surfaces every error, warning and recovery hint inline. |
| Submit | Sends to the configured Plateforme Agréée through a pluggable connector. The PA backend is configuration — swap it without code changes. |
| Track | Polls the PA for status updates and persists the full lifecycle: submitted, received, paid, disputed, refused, rejected — with reasons, expected actions, and timestamps. |
| Operate | Surfaces the right action at the right step: resend, email PDF to customer, mark payment received, issue credit note, set status, cancel accounting — driven by configurable API connectors. |
NomaUBL is built around a template model: each source produces XML, NomaUBL maps it through templates, and every other module operates on the resulting UBL — regardless of which ERP fed it. Adding a new source is a configuration task, not a re-architecture.
Native integration with the JDE BIP Print Queue (F9563110 / F95630 / F95631), the archive directory and FTP/SFTP downloads.
BIP extractArchiveFTP/SFTPRTF templates
IDoc, spool or file-based extracts feed NomaUBL through the directory or FTP channels. Templates map SAP fields to UBL semantics.
DirectoryFTP/SFTPBukrs mapping
SuiteScript exports drop XML into the watched directory; templates handle subsidiary, tax-code and currency mapping.
DirectoryFTP/SFTPSubsidiary mapping
Any system that produces XML, posts JSON to the API or writes a CSV to a watched directory becomes a source by adding one template.
HTTP APIDirectoryFTP/SFTPUBL passthrough
Six pillars, one product
📥
Extract from anywhere
Connect to any ERP through a directory watcher, an FTP/SFTP poller, the JDE BIP Print Queue, or a JSON HTTP endpoint. Schedule batches, run on demand, or stream invoice-by-invoice.
📄
Generate compliant UBL
Templates map source fields to UBL 2.1, fill in the French CTC extension, apply scheme IDs, BAR routing, business-process codes, allowances and the Cadre de facturation. AUTO mode resolves the right path per document type.
✅
Pre-validate, before the PA
XSD + Schematron + the French CTC profile run inside NomaUBL. Every error, warning and recovery hint is surfaced inline — the PA never sees a knowingly broken document, and rejection cycles stop costing you days.
📤
Submit & track on any PA
The PA backend is a configuration. Submit, retrieve lifecycle statuses, persist disputes, refusals, payment notifications. Switch your Plateforme Agréée without rebuilding the rest of your stack.
🛠
Operate the lifecycle
Resend, set status, email PDF, mark payment received, issue a credit note, cancel accounting — the right action surfaces at the right step. Every event is logged, append-only, audit-ready.
⚙️
Govern with self-service config
Reference lists, document types, suppliers, BAR routing, payment codes, VAT categories, currency mappings — all maintained from the UI. Finance owns the rules, IT owns the platform.
NomaUBL vs the alternatives
A Plateforme Agréée is required by the regulation — but it is not the whole solution. The choices below show why NomaUBL is the natural complement.
Capability
PA only
Custom build
NomaUBL
UBL generation from any ERP
—
1 ERP at a time
✓ JDE · SAP · NS · custom
Pre-submission validation (XSD + Schematron + CTC-FR)
—
Custom rules
✓ Built-in, updated
Lifecycle tracking + recovery actions
Read-only
To build
✓ Operations UI
BAR routing & e-reporting tracks
Per-PA
To build
✓ Configuration
Self-service ops (suppliers, BAR, defaults)
—
IT-owned
✓ Finance-owned
PA-portability (switch without rebuild)
Vendor-locked
Re-write
✓ Connector swap
Time to first compliant invoice
+ pipeline
6–12 months
✓ Days–weeks
Audit trail (append-only lifecycle)
PA-side
To build
✓ Local + signed
The right pairing is NomaUBL + a Plateforme Agréée — not one or the other. NomaUBL takes care of everything upstream of the PA and around the PA; the PA handles the regulated transmission rail. Together, they cover the regulation end to end.
A day in the life
Different teams hit the platform for different reasons. NomaUBL is built so each persona has a clear, narrow surface.
💼
Finance & Accounting
Day-to-day invoice operations
📨 Send invoices
Edit UBL · Resend · Email PDF
⚖️ Handle disputes
207 → credit note · 213 → re-issue
💰 Mark payments
Status 205 · API connectors
🛠
IT & Integration
Reliable batch + observability
⚡ Run scheduled batches
fetch-all · cron · -serve scheduler
🚨 Watch errors
Integration Errors · logs
📦 Promote configurations
File Versions · package · import
🏛
Compliance & Audit
Append-only audit trail
🔍 Inspect lifecycle
History tab · append-only
🧭 Trace any invoice
UBL Reference · status codes
📚 Govern reference data
Statuses · reason codes · BAR rules
| Persona | Primary surface | Outcome |
|---|
| Finance & Accounting | Application tab — Dashboard, E-Invoicing, E-Reporting | Daily invoice ops without leaving NomaUBL: send, dispute, recover, follow up. |
| IT & Integration | Sync, Processing, Management tabs — and the CLI | Reliable batch operations, observable errors, deployable configurations. |
| Compliance & Audit | References tab + History on every invoice | A complete, signed audit trail of every state and decision — local, queryable, append-only. |
Why teams choose NomaUBL
Faster to compliant
Days to weeks, not quarters
Templates, defaults, BAR routing and validation rules ship out of the box. A new ERP is one template away — not a six-month project.
Fewer rejections
Errors caught before the PA
Pre-submission validation eliminates the round-trip: invoices either go through cleanly, or fail loud and fixable before any external system sees them.
Lower TCO
One platform, every entity
One licence covers JDE + SAP + NetSuite + custom — no per-ERP module, no separate skill set, no parallel pipelines to maintain.
Lock-in-free
Your PA, your call
The Plateforme Agréée connector is configuration, not code. Renegotiate, switch, multi-source — your e-invoicing stack moves with you.
Get started in four steps
1
Install
Lay out an environment
Run java -jar nomaubl.jar -install /opt/nomaubl/demo to provision the directory tree, embedded XSL framework and starter config.
→ Command Line2
Configure
Connect your data
Edit config.json to point at your DB, ERP source, Plateforme Agréée and SMTP server. Initialize the database from the UI.
→ Configuration3
Map
Set defaults & routing
Suppliers, scheme IDs, BAR routing, payment codes, VAT categories, document types — once configured, every UBL is generated correctly without per-invoice fixes.
→ UBL Defaults4
Run
Process & track
Start nomaubl.sh start <env>, drop a sample invoice into input/, watch it flow through extract → UBL → validate → submit → track in real time.
→ Application
Where to go next
📊 Application →
Dashboard, E-Invoicing, E-Reporting, E-Directory, Integration Errors.
🔄 Processing →
Process Document, Extract and Process, Process API.
✅ UBL Tools →
Validate, XML Viewer, XSL Editor, the full UBL Defaults set.
⚙️ Configuration →
Documents, system parameters, connectors, security and reference lists.
💻 Command Line →
Service control, batch jobs and the full JAR mode reference.
📚 References →
Status codes, reason codes, UBL semantics, HTTP API.