Skip to main content

NomaUBL

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 ERPEN 16931 + extended-ctc-frPluggable Plateforme AgrééeSelf-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.

Source systems

JD Edwards
BIP · archive · FTP
SAP
IDoc · spool · file
NetSuite
SuiteScript · file
Custom ERP
file · API · DB
NomaUBL
The unified e-invoicing layer
Generate UBL
Pre-validate
Track lifecycle
Operate

Plateforme Agréée

PA / PDP
Configurable backend — any approved PA
→ E-invoicing
Buyer
via the buyer's PA
⇢ E-reporting
Tax authority
via the 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.

The full pipeline, on one platform

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
StepWhat NomaUBL does
ExtractPulls source documents from JDE BIP Print Queue, JDE archive directories, FTP/SFTP servers or local file system. Polls automatically or on demand.
TransformApplies XSLT pre-processing, converts BI Publisher RTF templates to XSL, and bursts multi-document spools by configurable burst keys.
Generate UBLProduces structured UBL 2.1 documents using template-aware defaults: parties, scheme IDs, BAR routing, business-process types, allowance/charge categories, French legal mentions.
ValidateRuns XSD + Schematron + the French CTC extension before any document leaves your perimeter. Surfaces every error, warning and recovery hint inline.
SubmitSends to the configured Plateforme Agréée through a pluggable connector. The PA backend is configuration — swap it without code changes.
TrackPolls the PA for status updates and persists the full lifecycle: submitted, received, paid, disputed, refused, rejected — with reasons, expected actions, and timestamps.
OperateSurfaces 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.

One platform, every source system

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.

J
JD Edwards
Native integration with the JDE BIP Print Queue (F9563110 / F95630 / F95631), the archive directory and FTP/SFTP downloads.
BIP extractArchiveFTP/SFTPRTF templates
S
SAP
IDoc, spool or file-based extracts feed NomaUBL through the directory or FTP channels. Templates map SAP fields to UBL semantics.
DirectoryFTP/SFTPBukrs mapping
N
NetSuite
SuiteScript exports drop XML into the watched directory; templates handle subsidiary, tax-code and currency mapping.
DirectoryFTP/SFTPSubsidiary mapping
C
Custom ERP
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
PersonaPrimary surfaceOutcome
Finance & AccountingApplication tab — Dashboard, E-Invoicing, E-ReportingDaily invoice ops without leaving NomaUBL: send, dispute, recover, follow up.
IT & IntegrationSync, Processing, Management tabs — and the CLIReliable batch operations, observable errors, deployable configurations.
Compliance & AuditReferences tab + History on every invoiceA 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 Line
2
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.
→ Configuration
3
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 Defaults
4
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