Skip to main content

E-Invoicing

The E-Invoicing screen is the central operational page of NomaUBL — the official entry point for the Réforme de la Facturation Électronique (RFE) workflow. It lists every invoice the platform has processed, with rich filters, a status-driven detail view, and the actions a user needs day to day: edit, copy, delete, manually set a status, e-mail the PDF to the customer, resend to the Plateforme Agréée.

The page applies regardless of source system — JD Edwards, SAP, NetSuite or a custom ERP. Every record visible here was persisted in the local NomaUBL database after going through the processing pipeline.


At a glance

E-Invoicing↻ Refresh+ New invoice📅 Last 7 days ▾🔍 Doc · Dct · Kco · UBL numberCustomer name…AllIn flightRejected · ITRejected · BusinessTerminalDOC · DCT · KCO · UBL · ISSUED · CUSTOMER · TOTAL · STATUS · REVIEW12345 · RI · 00070 · INV-2026-0142 · 2026-05-09 · ACME · 1 200,009903 · Sent12346 · RI · 00070 · INV-2026-0143 · 2026-05-09 · Beta SARL · 540,00200 · Deposit.12347 · RI · 00001 · INV-2026-0144 · 2026-05-09 · Gamma SAS · 2 980,009904 · Reject12348 · RI · 00001 · INV-2026-0145 · 2026-05-09 · Delta & Co · 815,009906 · Pend.12349 · RI · 00001 · INV-2026-0146 · 2026-05-09 · Epsilon · 460,00200 · Deposit.1 — 50 of 1 248Page 1 ▾ · 50 ▾ ‹ ›DETAIL MODAL — 7 tabsSummaryPartiesLinesVATNotesHistoryPDFCUSTOMERACMETOTAL TTC1 200,00 EURSTATUS9903 · Sent to PAEdit UBLE-mailResendSet statusDeleteDate + search filtersdebounced server-side queryStatus chipsmulti-code partition · 1 clickReview badgeUHALRTPSD · new in 2026.05.9Click → detail modal7 tabs · open on SummaryDetail modal tabsSummary · Parties · Lines · VATAction buttonsEdit · E-mail · Resend · Set status

Toolbar

The toolbar above the table combines date filtering, free-text search, status chips and quick actions.

📅 YesterdayDocDctKcoContractCustomer nameBAR ▾↻ Refresh+ New invoice

Date range

The date filter on the left applies to the last update date of each invoice. The default preset is Yesterday; other presets are Today, Last 7 days, This month, Last month and Custom range (manual From / To dates).

Free-text filters

Each input narrows the list as you type — the search updates after a brief pause:

FieldWhat it matches
DocThe internal document number (e.g. 12345).
DctThe document type code (e.g. RI, RN).
KcoThe company code (e.g. 00070).
ContractThe contract reference carried by the invoice.
Customer nameThe buyer party name.

BAR routing dropdown

A separate dropdown filters by BAR routing code (B2B, B2G, B2BINT, B2C, OUTOFSCOPE, ARCHIVEONLY, DOCUMENT) — the channel classification documented in UBL Defaults → Document Type / BAR Routing.

Status chips

To the right, a row of status chips appears: one per status currently present in the date range. Each chip shows the status label, the count, and a colour matching its family. Clicking a chip toggles a status filter on the list — clicking it again clears it.

Approved (982)Pending (184)Disputed (52)Rejected (29)✕ Clear filter

Clear filters

When at least one filter is active, an ✕ Clear filter chip appears at the end of the chip row. It clears every active filter except the date range.

Status chip overflow (2026.05.10)

The Status chip row caps at 5 inline chips; the rest fold into a +N more dropdown with a coloured dot per code. Multi-status drill-throughs from the dashboards (e.g. In flight = 5 codes) hoist the active value back into the inline group when it falls past the cap, so the active filter stays visible.

Advanced Filters (2026.05.10)

A collapsible Advanced Filters panel sits below the chip row. It exposes one row per filterable column from the active List Views spec — with a per-column operator picker (contains, equals, , <, , >, , between, empty, not empty). Edits stay as a draft until Run commits them, so typing in the panel does not spam the back-end.

The set of columns that can be filtered is defined in the spec's filter: true allow-list — operators decide which columns they actually query and trim the rest from the panel without losing them from the grid. See List Views for the editor.

Since 2026.05.12 the page runs in hybrid client-side mode: each Run loads one capped slice from the server (spec.maxRows, default 5000) and TanStack handles filter / sort / paginate / group within that slice — no roundtrip while typing in the per-column filter row, filters survive pagination naturally. When the slice cap is hit, an X / Y rows notice next to Run tells the operator to narrow the date range or the Advanced Filters.

Since 2026.05.13, refList columns (Status, eReporting Status, custom lists) get a multi-select picker in both the Advanced Filters panel and the per-column filter row — pick any number of codes, the trigger shows N selected past the inline cap, and a on the right resets the selection in one click. The server applies an IN (?,?,?) clause so picking three statuses returns the union.

Refresh and New invoice

Two buttons sit at the right:

ButtonBehaviour
Refresh (circular arrow)Re-runs the current query without changing the filters.
+ New invoiceOpens the Create / Edit invoice modal. Hidden on read-only sessions.

Invoice list

The table shows one row per invoice. Default sort: most recent document number first. Click any column header to sort by that column.

Since 2026.05.10 the grid renders through DataTableV2 in spec-driven mode: column shape, labels, format, alignment, width and the filter-row allow-list come from the view.invoices spec stored on db-nomaubl (with a bundled default in the JAR). Adding or removing columns is done from the List Views editor — no code change required when the column already lives in the catalog.

Doc
Dct
Kco
UBL number
Issue date
Customer
Total HT
Total TTC
Cur.
Status
12345
RI
00070
FA-2026-001234
24/04/2026
Acme Industries SA
1,250.00
1,500.00
EUR
200 Approved
12346
RI
00070
FA-2026-001235
23/04/2026
Globex Logistics
850.00
1,020.00
EUR
9906 Pending
12347
RN
00070
AV-2026-000089
22/04/2026
Initech Services
−200.00
−240.00
EUR
207 Disputed
12348
RI
00070
FA-2026-001236
22/04/2026
Hooli SAS
3,400.00
4,080.00
EUR
213 Rejected

Default columns

ColumnDescription
DocInternal document number.
DctDocument type.
KcoCompany code.
UBL numberThe invoice number as it appears in the generated UBL document.
Issue dateBT-2 from the UBL.
CustomerBuyer party name.
Total HTTotal amount excluding VAT.
Total TTCTotal amount including VAT.
CurrencyISO 4217 code.
StatusStatus badge — code + label, coloured by family.
Review (2026.05.9)Coloured review-flag badge sourced from UHALRTPSD. Lit up when the row needs operator attention — typically a status the dispatcher could not auto-resolve, a manual edit flagged on save, or a downstream system marking the row for re-check. Empty when the flag is clear. The column is a quick scan target: a few yellow badges in an otherwise green page tell you exactly where to start.

A page-size selector at the bottom defaults to 50 rows per page; values up to 500 are accepted. The total count of matching invoices is shown next to the pagination controls.

Catalog columns (2026.05.10)

The Invoices view's SQL now joins F564231 (UH) and F564230 (FE) on doc / dct / kco via a LEFT JOIN, so the column catalog exposes 16 additional archive / log columns. Any of them can be added to the spec via the List Views editor's + Add column picker — the LEFT JOIN keeps invoice rows when no log entry exists.

Catalog columnWhat it carries
logSourceFileName of the source file that produced the invoice.
logActivityCode / logSubTypeActivity code and sub-type recorded at ingestion.
logAlphaKeyAlpha-key alias used by some upstream systems.
logAmountAmount carried by the log row (raw, no currency rebase).
logInvoiceDate / logDueDateInvoice date and due date recorded at ingestion.
logCreatedCreation timestamp (UPMJ + UPMT composite).
logUser / logJobn / logPid / logVersionJDE user, job, PID and version stamps.
logBusinessUnitBusiness unit recorded at ingestion.
logRoutingBAR routing recorded at ingestion.
logSendToPaFlagFlag captured at ingestion telling whether the row was eligible for PA submission.
logPaUuidPA-side UUID assigned to the invoice at submission time.

Click-through

Clicking any row opens the Detail modal for that invoice. Every action on this page is per-invoice — no multi-row selection.

Export

A small Export button in the toolbar exports the current view (filters applied) as a CSV file named invoices.csv.


Detail modal

Clicking a row opens a modal with seven tabs along the top: Summary, Parties, Lines, VAT, Notes, History, PDF. The modal title shows the invoice's DOC / DCT / KCO triplet. A fullscreen toggle in the header switches between a windowed and a full-screen view.

12345 / RI / 00070
⛶ ✕
Summary
Parties
Lines (8)
VAT
Notes 3
History (5)
PDF
Tab content — depends on the active tab

Summary tab (default)

The Summary tab shows a coloured status badge at the top, followed by action buttons (Edit UBL, Copy, Delete) on the right.

Below the status, when the invoice is in a status that requires a follow-up action by the seller (e.g. 205, 206, 207, 208, 210, 213, 9904, 9907), a blue Seller actions banner appears with the recommended actions:

Seller actions
Mark payment receivedIssue credit noteCancel accountingIssue corrected invoice

Status-by-status mapping:

StatusSuggested actions
205 PaidMark payment received
206 Partially approved / 207 DisputedIssue credit note, Issue corrected invoice
208 SuspendedSend completed
210 RefusedCancel accounting
213 RejectedCancel accounting, Issue new invoice
9904 Send error / 9907 PA rejectedResend to PA

Each action is bound to an API connector endpoint configured in Configuration → API Connectors — clicking the button executes the connector with the invoice's data. Greyed-out actions (faded) indicate the connector is not configured for this deployment.

Since 2026.05.15 a second group sits below the regulatory one — Custom actions. Always-visible buttons configured on the Actions page; each fires its own chain of connector calls and is independent of the invoice's current status. The result banner is anchored to the group whose button fired — a custom-action failure does not stomp on a regulatory-action banner shown at the same time, and stale banners are cleared automatically when the modal closes or switches invoice.

The rest of the Summary tab presents collapsible groups:

  • Document — DOC / DCT / KCO, UBL number, invoice type, profile ID, contract / buyer / order / project references, accounting cost.
  • Dates & Currency — issue date, due date, currency, period start / end.
  • Amounts — total HT, total TTC, amount due.
  • Payment — payment means code, IBAN, account name, BIC, payment ID, payment terms.
  • Document allowances / charges — document-level discounts or charges with type, reason, amount, tax category.

Parties tab

Three collapsible groups, populated from the UBL document:

  • Supplier — name, SIREN, SIRET, VAT identifier, electronic endpoint, postal address, contact (name, phone, e-mail).
  • Customer — name, company ID, electronic endpoint, VAT, address, contact.
  • Agent Party (optional) — for the French extension — name, address, country.
  • Delivery (optional) — date, party name, location ID, address.

A group with no data on the invoice is not displayed.

Supplier (BG-4)
Nomana-IT SAS
SIREN 123 456 789
SIRET 123 456 789 00012
VAT FR12123456789
📧 Endpoint 0009:12345678900012
10 rue de Paris
75001 Paris · FR
👤 Contact — accounting@nomana-it.fr
Customer (BG-7)
Acme Industries SA
SIREN 987 654 321
VAT FR98987654321
📧 Endpoint 0009:98765432100015
50 avenue des Champs
69002 Lyon · FR
👤 J. Dupont — j.dupont@acme.fr · +33 4 72 00 00 00
Delivery (optional · BG-13)
Acme — Lyon Warehouse
Delivery date 2026-04-26
Location ID 0088:3012345600003
Zone industrielle Sud
69800 Saint-Priest · FR

Lines tab

A table of the invoice line items, one main row per line plus sub-rows that surface the additional information carried by the UBL.

Description
Quantity
Unit
Unit price
Line amount
Tax cat.
Rate
Consulting service — financial reporting
5.00
DAY
800.00
4,000.00
S
20%
↳ Period: 2026-04-01 → 2026-04-30 · Buyer ref: PO-2026-042
Office supplies — paper A4 80g/m²
20.00
EA
25.00
500.00
S
20%
↳ Item code: SKU-A4-80 · Allowance: −2.5% volume rebate
Software licence — annual subscription
1.00
EA
1,200.00
1,200.00
AE
0%
↳ Note: Reverse charge — VAT due by the customer (EU intra-community)
ColumnDescription
DescriptionFree-text description of the line item.
ItemItem identifier (article code, SKU).
QuantityQuantity invoiced.
UnitUnit-of-measure code (e.g. EA piece, H87 unit, DAY day, KGM kilogram).
Unit priceUnit price excluding VAT.
Line amountQuantity × unit price (excluding VAT).
Tax categoryUBL VAT category code (S standard, AE reverse charge, E exempt, Z zero rate, O out of scope, K intra-EU, G export, L Canary Islands, M Ceuta/Melilla).
Tax rateApplicable VAT rate as a percentage.

Sub-rows appear under each main row for:

  • Item description
  • Period (start → end)
  • Buyer / standard / classification item identifiers
  • Line note (BT-127)
  • Price-level allowance / charge (BT-147)
  • Line-level allowances / charges (BG-27 / BG-28)
  • Additional item properties (BG-32)

When several lines share the same delivery group or document references (BT-128), a delivery header or document-reference header appears once at the top of that group rather than repeating on every line.

VAT tab

A table of the VAT subtotals carried by the UBL: category code, rate, taxable base, VAT amount, currency, exemption code + label (when applicable).

Category
Rate
Taxable base
VAT amount
Cur.
Exemption
S Standard
20%
4,500.00
900.00
EUR
AE Reverse
0%
1,200.00
0.00
EUR
VATEX-EU-AE · Reverse charge
E Exempt
0%
800.00
0.00
EUR
VATEX-FR-261 · Article 261 CGI
Total
6,500.00
900.00
EUR

Notes tab

Document-level notes (BT-22). Each note appears as a card with a prefix badge (e.g. PMD, PMT, REG) and the free-text body. The prefix label is resolved from the note-types reference list; hovering on the badge shows the label.

PMD
Payment terms — 30 days net, end of month. Late-payment penalty 3 × ECB rate; recovery indemnity €40.
REG
Member of an approved trade association — payment by cheque accepted.
AAI
Order PO-2026-042 confirmed by the buyer on 2026-04-15.

History tab

Three sections in this tab:

Action bar at the top

ButtonBehaviour
Validate UBLRe-runs XSD + Schematron validation on the UBL stored in the database. The result is shown inline (valid / warning / error) with details when applicable.
Set statusOpens the Set Status modal — see below.
ResendSubmits the UBL to the Plateforme Agréée again. Confirms before running.

Lifecycle group

The lifecycle is the audit trail of every status the invoice has been in. Each event shows:

  • The status badge (code + colour-coded family).
  • The status label and the message returned by the platform.
  • Optional details for refusals: rejection reason code + label, expected action code + label, additional status note.

The lifecycle is append-only — events are added by the Sync → Retrieve Statuses sweep and never modified.

9900 UBL generated2026-04-24 09:14:02
UBL document built from source XML and persisted in NomaUBL.
9906 Pending PA import2026-04-24 09:14:18
Submitted to the Plateforme Agréée — awaiting acknowledgement.
200 Submitted2026-04-24 09:15:47
Accepted by the addressing platform · technical ack returned.
202 Received by recipient2026-04-24 11:32:09
Acme Industries SA confirmed receipt on its Plateforme Agréée.
207 Disputed2026-04-25 14:08:51current
Customer raised a dispute — line 2 quantity does not match delivery slip.
Reason RR-016 — Quantity mismatch with delivery
Expected action AC-04 — Issue corrected invoice
Note — « Bordereau de livraison BL-2026-018 ne mentionne que 18 unités sur la ligne 2. »

Validation errors group

Lists the validation errors (XSD / Schematron) that were recorded for this invoice. Each row carries the severity, the rule identifier and the human-readable message. Empty when the invoice validates cleanly.

PDF tab

The PDF tab renders a generated PDF of the invoice inline (an <iframe> view). The bottom of the tab carries:

ButtonBehaviour
E-mailOpens the E-mail modal with the displayed PDF pre-attached.
DownloadSaves the PDF to the local computer.

Action modals

Set Status modal

Opens from the History tab's Set status button. Lets the user move an invoice to a chosen status — useful for manual corrections or for triggering a transition the platform itself did not pick up.

Set status — 12345 / RI / 00070
PADB
Status
211 Approved with reservation
Status at
2026-04-27 10:42
Reason
Approved with reservation pending corrected delivery slip — see attached BL-2026-018.
Reason code
RR-016
Label
Quantity mismatch with delivery
CancelSubmit
FieldDescription
TargetPA (sends a status update to the Plateforme Agréée) or DB (writes the new status directly to the local database without notifying the PA).
StatusDrop-down listing every status from the statuses reference list, with code + label.
Status at (PA only)Date / time of the status event. Default: now.
ReasonFree-text reason / message. Pre-populated with the status label; editable.
Rejection reason code + label (when applicable)Code from the rejection-reason-codes reference list, plus its translation.
Action code + label (when applicable)Code from the action-codes reference list, plus its translation.

When Target = DB is selected, an orange notice reminds the user that the change is local-only and will not be propagated to the PA.

Click Submit to apply. A green banner confirms success; the modal closes after a short delay.

E-mail modal

Opens from the PDF tab. Lets the user send the invoice PDF to the customer via SMTP using the credentials configured in the global template.

✉️ Send invoice by e-mail
To
Cc
Subject
Invoice FA-2026-001234
Dear Mr. Dupont,

Please find attached invoice FA-2026-001234 for an amount of 1,500.00 EUR.

For any question, please contact our accounting department.

Best regards,
Nomana-IT SAS
📎FA-2026-001234.pdf · 142 KB · auto-attached from PDF tab
CancelSend
FieldDescription
To (required)Recipient e-mail address.
CcOptional carbon copy.
SubjectPre-filled with Invoice <ublNumber>; editable.
BodyPre-filled with a French / English template depending on the user's language: greeting, main line referencing the invoice number and total amount, contact line, signature. Fully editable.

The PDF currently shown in the PDF tab is automatically attached. If the PDF was not pre-loaded, the server fetches it from the database before sending.

While the e-mail is sending, an overlay covers the modal until the SMTP server confirms the send. A green banner indicates success; the modal closes automatically after ~2 s.

Create / Edit invoice modal

Opens from + New invoice in the toolbar, or from the Edit UBL / Copy buttons in the Summary tab. Lets the user create a new invoice from scratch or adjust an existing one. The modal is laid out like a printable invoice — the user fills the form and NomaUBL produces the corresponding UBL document on Save.

Since 2026.05.10, editing an existing invoice no longer flips its cbc:CustomizationID back to the EN16931 default. The form now carries the customizationId value from the source UBL and writes it back verbatim — new invoices still default to urn:cen.eu:en16931:2017.

📝 New invoice
N
Nomana-IT SAS
10 rue de Paris · 75001 Paris · FR
SIREN 123 456 789 · VAT FR12123456789
INVOICE
FA-2026-001234
Issue 2026-04-24 · Due 2026-05-24
Bill from
Nomana-IT SAS
10 rue de Paris
75001 Paris · FR
Bill to
Acme Industries SA
50 avenue des Champs
69002 Lyon · FR
🔎 PPF lookup
Description
Qty
Unit
Unit price
Amount
VAT
Consulting service — financial reporting
5.00
DAY
800.00
4,000.00
S 20%
Office supplies — paper A4 80g/m²
20.00
EA
25.00
500.00
S 20%
+ Add line
Payment
SEPA · IBAN FR76 3000 4000 0312 3456 7890 143
BIC BNPAFRPP · Terms 30 days net EOM
Subtotal HT4,500.00
VAT 20%900.00
Total TTC5,400.00 EUR
📄 UBL will be generated and submitted to the Plateforme Agréée on save
CancelSave & generate UBL

The modal is split into vertical sections:

  • Document — invoice number, type, profile ID, contract / buyer / order references.
  • Header — issue / due dates, currency, period start / end.
  • Supplier — pre-populates from the supplier directory (UBL Defaults → Suppliers / Companies); editable per invoice.
  • Customer — manual or via PPF directory lookup.
  • Delivery — optional delivery group.
  • Payment — payment means code, IBAN, BIC, mandate, terms.
  • Allowances / charges — document-level discounts / charges.
  • Notes — free-text notes per BT-22 prefix.
  • Lines — invoice lines with item, quantity, unit, price, allowances, item properties.
  • VAT summary — auto-computed from the lines (read-only — line edits are reflected here).
  • Totals — auto-computed (read-only).

The Save button at the bottom validates the input, writes to the database, generates the UBL document and submits it to the PA according to the e-invoicing template's settings. The modal closes after a successful save.

A fullscreen toggle in the header swaps between windowed and full-screen edit, useful for invoices with many lines.

Resend confirmation

The Resend button (in the History tab, or via Seller actions when status is 9904/9907) opens a confirmation dialog before re-submitting the UBL to the Plateforme Agréée. After confirmation, the invoice is re-submitted; an inline banner reports success or the error returned by the PA. The lifecycle is updated to reflect the new submission.


Tips & best practices

  • Start with a date range. Yesterday (default) is the typical morning view; Custom range covers month-end reconciliation. Filters apply on top of the date range.
  • Status chips are the fastest filter. A red chip with a non-zero count is usually the right place to start when chasing exceptions.
  • The lifecycle (History tab) is the source of truth. It records every status the invoice has been in, with messages, rejection reasons and expected actions — the place to investigate disputes or PA-side decisions.
  • Use the Seller actions banner. The actions surfaced for 205 / 206 / 207 / 208 / 210 / 213 / 9904 / 9907 are the platform's recommended next step. They reduce a multi-step workflow (finding the customer, drafting the credit note, etc.) to a single click when the connector is configured.
  • Set status only when needed. Manual Set status → DB desynchronises the local record from the PA. Reserve it for clean-up after restoring backups or for statuses the lifecycle sweep cannot catch.
  • Edit UBL, then save is the canonical correction path — it rewrites the database record with the new UBL and re-submits to the PA. Avoid editing the source XML directly through UBL Tools → XML Viewer unless the data on disk is the authoritative one.
  • Use Copy for recurring billing. It pre-fills every party / line / VAT field; only the document number, dates, and any specific changes need to be edited.