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
Update date: 2026-07-02