Demo Corpus
The demo corpus fills a demonstration instance with fictitious but realistic data, so every page of NomaUBL can be shown or tested without a customer file: issued invoices and credit notes of every kind, supplier invoices, lifecycles with platform statuses, e-reporting envelopes and notifications. Everything goes through the real pipelines — UBL generation, validation, archive, processing log — but nothing is sent to a platform. The same seed gives the same corpus, and a reset removes everything the demo created.
The corpus can only be created on an instance marked Demo instance = Y. Never set it on a customer instance.
At a glance
Prerequisites
| Setting | Where | Value |
|---|---|---|
| Demo instance | Settings › Global › Directories | Y |
| Update DB | Settings › Global › Processing | Y — the spool and PDF pipelines and the processing log must write to the database. |
The environment's stylesheets must be installed (they are, after a standard install).
What the corpus contains
| Document | Source | Content |
|---|---|---|
demo_ubl | UBL files | Issued invoices and credit notes covering the invoice types (380, 381, 384, 389, 261, 262), EN 16931 and the French extended profile, the transaction types (B2B, B2G, B2C, B2BINT, out of scope), every VAT category, document and line allowances and charges, prepayments, payees, tax representatives, deliveries, payment means, attachments and references. Configured with the UBL to CII post-transform. |
demo_jde | JDE-like XML spools | Several invoices per file, through the XML pipeline; the mapping, generated from the shipped framework template, shows nested paths, a constant, a summed VAT total, a field found anywhere in the block and a line break. |
demo_pdf | Text PDFs | Read back by the PDF-to-XML conversion: two address blocks, labelled rows, one table and regex fields for the document key. |
demo_received | UBL supplier invoices | Received invoices from six fictitious French suppliers, driven through the buyer path: made available, under processing, approved, disputed, refused, paid. |
Around them:
- Companies and customers — five issuing companies and thirty buyers, fictitious, with valid identifiers (SIREN, VAT number, IBAN).
- Lifecycles — the invoices meant for the platform are driven through realistic dated paths: sent, pending, deposited, not transmitted, refused, rejected, disputed, suspended, approved, paid, with send and import failures and resends; some are marked reviewed. Nothing reaches a real platform.
- Errors — every invoice passes the French rule packs except a few deliberately invalid ones, to show the validation errors.
- E-reporting — envelopes for every completed month, generated by the real e-reporting handler, then driven to deposited, import failed or rejected.
- Notifications — a portal-only notification rule for refusals, rejections and failures.
From the settings
When Demo instance is Y, the Directories tab of the global settings shows a Demo corpus block:
| Field | Default | Description |
|---|---|---|
| Invoices | 300 | Number of invoices generated. |
| Months | 6 | Period covered, ending with the current month. |
| Seed | 2026 | Same seed, same corpus. |
| Sources | ubl,jde,pdf,recv | Any of ubl, jde, pdf, recv (received invoices). |
Fill the demo corpus and Reset the demo corpus run as background jobs with the usual progress window. The reset asks for confirmation and removes every invoice, envelope, notification row, file and document the demo created on the instance. Save the settings before filling.
From the command line
java -jar nomaubl.jar -demo /opt/nomaubl/demo/config/config.json [--seed N] [--invoices 300] [--companies 5] [--customers 30] [--from yyyy-MM] [--months 6] [--sources ubl,jde,pdf,recv] [--out <dir>] [--reset] [--no-process] [--no-lifecycle]
| Flag | Effect |
|---|---|
--seed, --invoices, --months, --sources | As in the settings block. |
--companies / --customers | Number of issuing companies (5) and buyers (30). |
--from <yyyy-MM> | First month of the period, in place of Months back from today. |
--out <dir> | Folder for the generated files. |
--no-process | Generate the files without processing them. |
--no-lifecycle | Process the invoices without driving their lifecycle. |
--reset | Remove everything the demo created. |
See Command line.
Tips & best practices
- Keep a dedicated demo environment next to test and production, installed like the others; set Demo instance only there.
- Fix the seed for a training session or a recorded demonstration: the same invoices come back after a reset.
- Reset before refilling. A fill adds to what is there; a reset gives a clean base.
- Use the corpus to try a setting — a rule set, a post-transform, a notification rule — on hundreds of varied invoices before touching a customer instance.