E-invoicing Foundation — mandates, EDI files, validation, transmission log
Free e-invoicing foundation for Odoo Community 20: versioned registry of national e-invoicing and tax reporting mandates with their sources, format-independent invoice model, pluggable validators, one EDI file per invoice and format with SHA-256 fingerprint, and an append-only transmission log that
E-invoicing foundation
Mandates, EDI files, validation and transmission log, with three results that are never merged into one.
The problem
A valid XML file, a file accepted by the operator and a file acknowledged by the recipient are three different results. A single green tick hides the two that matter most: the tick turns green because the file parsed, and nobody sees that the operator rejected it two days later.
National obligations move, too. A date is postponed, a population is split, a threshold is revised. A date written in code is wrong the day the law changes, silently.
What the foundation does
- Versioned mandate registry. Country, scheme, direction, population, threshold, effective date, source link and date of verification. A regulatory change creates a new version and keeps the old one. The version in force on a date is read from the records, never from the code.
- "Not found" is a status. Where the research found no general mandate, the record says so, with the research sentence kept as it was written.
- Formats linked to the standard generators. Peppol BIS Billing 3, Factur-X, ZUGFeRD, XRechnung and others are produced by the generator that ships with the accounting application. The foundation rewrites none of them.
- One file per invoice, format and content. Stored with its SHA-256 fingerprint. Generating the same content twice returns the existing file.
- Pluggable validators. Well-formed XML, and minimal checks on a format-independent view of the invoice: seller VAT number, buyer identity, dates, untaxed amount plus tax equal to the total at the currency rounding, at least one line.
- Append-only transmission log. A closed entry can be neither changed nor deleted. The operator and recipient statuses are derived from it.
Three statuses, side by side
| File | Operator | Recipient |
|---|---|---|
| not checked, valid, invalid | not sent, sent, accepted, rejected, error | no response, received, acknowledged, refused |
What it does not do
It talks to no operator and no tax administration: transport belongs to country modules built on top of it. It embeds no official schematron, because the licence of those artefacts has not been checked. It records what happened; it does not declare an invoice compliant.
Mandate data come from a research note dated 28 September 2026, with the source of each line. Check the source before relying on a date.
What this app does not do
The publisher has not yet published the list of what the app does not do. This is a store rule: ask support for it before you commit.
Store apps required
- Import/Export electronic invoices with UBL/CII
account_edi_ubl_cii
Odoo Community modules used
account
| Series | Version | Status | Published on |
|---|---|---|---|
| 20.0 | 20.0.1.0.0 | Available | 29/09/2026 |
Listing generated from the publisher's code (private repository, branch 20.0): the source code is not published.
Automatic store check (separate from the publisher's), applied to all apps. Conforme.
| Check | Result | Effect if absent |
|---|---|---|
| Manifeste lisible sans exécution | conforme | bloquant |
| Licence reconnue (LGPL-3) | conforme | bloquant |
| Aucune dépendance vers Odoo Enterprise | conforme | bloquant |
| Aucun import de code Enterprise | conforme | bloquant |
| Aucun en-tête de licence Enterprise | conforme | bloquant |
| Icône static/description/icon.png | conforme | déclasse |
| Description (static/description/index.html ou README) | conforme | déclasse |
| Tests automatisés (tests/test_*.py) | conforme | déclasse |
| Traduction française (i18n/fr.po) | conforme | info |
| Section « Ce que le module ne fait pas » | absent | info |
| Titre de 70 caractères au plus (74 actuellement) | absent | info |
| Résumé en français | absent | info |
Reviews from signed-in customers. One rated review per customer; the publisher can reply. Sign in to leave a review.
- Publisher
- Omnifloo (DYONYSOS)
- contact@omnifloo.com
- Omnifloo customers
- Support included with your plan: help centre.