| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1786 |
| Technical Name |
einvoice_inbound_zugferd_archive |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1786 |
| Technical Name |
einvoice_inbound_zugferd_archive |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
ZUGFeRD Inbox Global
Inbound ZUGFeRD / Factur-X vendor-bill parser with GoBD-compliant, tamper-evident archiving of the original hybrid PDF and its embedded XML
Suppliers increasingly send vendor bills as ZUGFeRD or Factur-X hybrid documents: a single PDF that is human-readable and also carries a machine-readable UN/CEFACT Cross Industry Invoice (CII) XML inside it. This module receives those files, reads the structured invoice data, and keeps the original document in a GoBD-aligned archive so it stays unaltered, traceable and auditable for the full statutory retention period.
Reads the hybrid document
Auto-detects whether a received file is a hybrid PDF/A-3 or a
bare CII XML, extracts the embedded
zugferd-invoice.xml / factur-x.xml
attachment, and reads the EN 16931 header, both trade parties,
VAT breakdown, totals and lines into a searchable index.
Keeps the original (Originalformat)
The original hybrid PDF and the extracted XML are stored verbatim, byte-for-byte, exactly as received - the GoBD requirement to retain a document in the format in which it arrived.
Tamper-evident (Unveraenderbarkeit)
Each entry is sealed with SHA-256 fingerprints of the PDF, the XML and the metadata index, then linked into an append-only hash chain. A one-click verification re-derives every digest and proves the original is unchanged - or pinpoints the broken link. Sealed entries are immutable and cannot be deleted before the retention period ends.
Retention & auditor export
Computes the AO Section 147 retention deadline (ten years for
invoices, six for commercial letters, counted from the end of
the year of receipt) and builds the GDPdU / Z3 data-access
package - an index.xml descriptor plus a CSV table -
that the tax auditor's analysis software imports.
Features
| Feature | What it does |
|---|---|
| Format detection | Classifies hybrid PDF, bare CII XML, plain PDF and unknown files by real XML grammar and PDF signature. |
| Embedded-XML extraction | Recovers the CII attachment from the PDF/A-3 Associated-Files name tree (pypdf fast path plus a dependency-free pure-python fallback). |
| EN 16931 CII reader | Header, supplier and buyer (with VAT and country), per-rate VAT, totals and line detail. |
| ZUGFeRD profile | Detects MINIMUM, BASIC WL, BASIC, EN 16931 (COMFORT), EXTENDED and XRechnung-CII from the guideline URN. |
| Consistency checks | EN 16931 BR-CO totals checks recorded as non-fatal audit warnings. |
| Integrity seal | SHA-256 fingerprints of PDF, XML and metadata, bound into an entry seal and an append-only hash chain. |
| Immutability guard | Sealed entries reject edits to the archived original and integrity values, and block deletion during retention. |
| AO 147 retention | Ten-/six-year deadline and deletion-eligible date, counted from the end of the year of receipt. |
| GDPdU / Z3 export | index.xml descriptor plus a CSV table
(with fingerprints) for the auditor's data medium. |
| Scheduled GoBD audit | Optional weekly cron re-verifies integrity and refreshes retention flags. |
Scope & boundary
This module is a local parser and archive. It reads the received ZUGFeRD / Factur-X document, keeps the original verbatim and seals it for GoBD - everything runs inside your own Odoo database. It is not a transmission service and does not connect to any external platform. The integrity sealing and retention support your own GoBD process documentation (Verfahrensdokumentation); the legal assessment of your archive remains with you and your tax advisor.
Technical
- Community-only dependencies:
account,mail. No Enterprise modules required. - Pure-python core services (detection, extraction, CII reading, integrity, retention, GDPdU export) are framework free and fully unit-tested.
- Optional
pypdfaccelerates embedded-XML extraction; a pure-python fallback works without it. - Tested on Odoo 18 and 19.
Screenshots
Archived Documents
Gobd Data Access Export
Import Archive
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module