| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 2476 |
| Technical Name |
flexigo_germany_xrechnung |
| License | OPL-1 |
| Website | https://flexigotech.com |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 2476 |
| Technical Name |
flexigo_germany_xrechnung |
| License | OPL-1 |
| Website | https://flexigotech.com |
| Versions | 18.0 19.0 |
XRechnung & ZUGFeRD for Odoo 19
Generate, validate, and receive structured German invoices directly inside Odoo 19 — XRechnung 3.x, ZUGFeRD 2.x, and a GoBD-compliant audit log, all in one module.
Why teams choose FlexigoTech for German e-invoicing
German e-invoicing is mandatory. Is your Odoo ready?
- Exporting PDF invoices from Odoo and manually converting them to XRechnung XML is error-prone, slow, and impossible to audit at scale.
- Vendor bills arriving as XRechnung attachments must be keyed in manually because Odoo cannot parse the XML out of the box.
- GoBD requires an immutable, hash-chained record of every e-invoice event for ten years — a plain Odoo chatter log does not qualify.
- B2G invoices to federal authorities require a Leitweg-ID routing code that standard Odoo does not support.
- Multi-entity groups need per-company and per-partner e-invoicing preferences that Odoo does not store natively.
What XRechnung & ZUGFeRD for Odoo 19 does
Install once and your Odoo accounting team can generate, validate, send, and receive structured German invoices without leaving Odoo. No middleware. No manual exports. No external dashboard to maintain.
XRechnung 3.x outbound
CII and UBL formats. Full EN 16931 business term coverage. Leitweg-ID for B2G routing. Bestellnummer buyer reference field.
ZUGFeRD 2.x PDF/A-3
EN16931 and EXTENDED profiles. PDF/A-3 embedding via pikepdf. Factur-X compatible. One file is both human-readable and machine-processable.
Inbound parsing
Attach an XRechnung or ZUGFeRD file to a vendor bill. The module auto-detects the format and populates all Odoo fields. No manual keying.
KoSIT schematron validation
EN 16931 schematron rules run offline before every generation. Optional KoSIT online API for production-grade validation. HTTPS only.
GoBD audit log
Hash-chained, immutable record of every e-invoice event. Ten-year retention enforced at database level. CSV export for tax auditors.
Operational tools
Batch generation wizard. Supplier compliance dashboard. UNECE unit code mapping. Multi-company, per-company format preferences.
What you get with every purchase
One license covers everything below — no add-ons, no per-user fees, no hidden costs.
Module installation
One-click install from the Odoo Apps Store — your database, your data, no cloud dependency.
Configuration assistance
Our team helps you set up company settings, partner profiles, and KoSIT validation mode correctly.
Email & chat support
Reach us at comercial@flexigotech.com — replies within 24 h on weekdays, German and English.
Free updates for Odoo 19.x
All minor releases covering regulatory updates (new XRechnung or ZUGFeRD versions, schema changes) are included.
Full documentation
In-module help texts, inline field tooltips, and a written setup guide covering B2B and B2G scenarios.
Bug fixes within 48 h
Critical compliance-blocking bugs fixed within two business days, communicated via email to license holders.
Install in 5 minutes — no developer needed
From clicking “Buy” to your first compliant German e-invoice, the full setup takes under 5 minutes. No SSH, no Python, no developer required.
-
1
Click “Buy & install”
From this Apps Store page, click the green button above. Odoo automatically installs the module on your database. Takes approximately 30 seconds.
-
2
Open Settings → Accounting → German E-Invoicing
In your Odoo backend, click Settings in the top menu, then scroll to the German E-Invoicing (XRechnung / ZUGFeRD) section. Enable the module toggle and set your default outbound format (XRechnung CII 3.x for B2G, ZUGFeRD EN16931 for B2B).
-
3
Enter company IBAN, BIC, and Leitweg-ID (B2G only)
Fill in your company IBAN (BT-84) and BIC (BT-85) for EN 16931 payment means. If your company invoices German federal entities, enter the Leitweg-ID routing code — the module validates the mod-97 check digit automatically. Click Save.
-
4
Set per-partner e-invoicing preferences
Open a customer or supplier contact, go to the E-Invoicing tab, and set their preferred format. B2G public sector partners get XRechnung CII + Leitweg-ID. B2B partners can stay on ZUGFeRD. These preferences override the company default automatically on every future invoice.
-
5
Validate a test invoice and confirm the green badge
Create a test customer invoice, open the XRechnung / ZUGFeRD tab, and click Generate & Validate. The Validation Result badge turns green (“Valid”) once the KoSIT schematron check passes. You are production-ready. The GoBD audit log records this first event automatically.
Stuck? Email comercial@flexigotech.com — we reply within 24 h on weekdays. Implementation help is included with your purchase.
See the full workflow in action
A narrated 6-minute walkthrough covering all eight key surfaces. Expand the language you prefer — English, Español, or Deutsch — with native neural voice and black-text subtitles.
English — 6-minute walkthrough
Español — recorrido de 6 minutos
Deutsch — 6-Minuten-Rundgang
See it in action
All images captured from a live Odoo 19 instance with the module installed on a real database. No mockups, no AI-generated screens, no placeholder content.
unlink method is overridden to block deletion during the mandatory
ten-year retention period. CSV export is available for Betriebspruefung tax audits.
Why FlexigoTech
Built on real-world client work
This module was developed for and tested on live Odoo 19 installations at German-market SMBs — not a theoretical spec exercise.
ERP-first thinking
We build inside Odoo, not around it. No external dashboard, no middleware, no separate credentials — one platform, one audit trail.
Production-grade from day one
GoBD audit log, hash-chain integrity, KoSIT schematron validation, and mod-97 Leitweg-ID check: compliance-grade from install, not an afterthought.
Trusted by EU compliance teams
FlexigoTech ships compliance modules for DE, ES, and EU-level mandates. German e-invoicing is our domain, not a side project.
Built for
- German companies subject to the section 14 UStG e-invoice receiving mandate (2025) or sending mandate (2027–2028)
- Public sector suppliers required to submit XRechnung invoices under ERechV to federal and state portals
- Odoo partners and integrators delivering German-market Odoo 19 implementations
- Multi-entity groups with German subsidiaries on a shared Odoo instance needing per-company e-invoicing profiles
- Finance and accounting teams who need a GoBD-compliant audit trail without leaving Odoo
- Purchasing departments tracking supplier e-invoicing readiness ahead of the 2027 receiving-side mandate
Compatibility
| Requirement | Details |
|---|---|
| Odoo version | 19.0 — Community and Enterprise |
| Odoo modules required | base, account, mail, uom, l10n_de |
| Optional Odoo module | account_edi_ubl_cii (Enterprise — hooks in if present, gracefully skipped if absent) |
| Python (required) | lxml |
| Python (optional) | pikepdf — enables ZUGFeRD PDF/A-3 embedding |
| Multi-company | Fully supported — per-company format preferences and record rules |
| Multi-language | EN 16931 XML is language-agnostic; Odoo UI ships with .po translation files |
| License | OPL-1 (Odoo Proprietary License) |
Regulatory coverage
- EN 16931-1:2017 — European e-invoicing standard (core semantic data model)
- XRechnung 3.x (KoSIT / xoev-de) — German CIUS
- ZUGFeRD 2.x / Factur-X 1.0 (Ferd e.V.) — Hybrid PDF/A-3 + XML
- Section 14 UStG amended by Jahressteuergesetz 2024 — B2B e-invoice mandate
- ERechV — Federal e-invoicing regulation for public sector (B2G)
- GoBD (BMF 2019) — Principles of proper digital bookkeeping
- Section 238 HGB / Section 147 AO — Ten-year commercial and tax retention
Pricing
- Full XRechnung 3.x (CII + UBL) generation
- ZUGFeRD 2.x PDF/A-3 embedding
- Inbound parsing and auto-detection
- KoSIT schematron validation (offline)
- GoBD audit log with ten-year retention
- Supplier compliance dashboard and CSV export
- All future minor updates for Odoo 19
- Email support via comercial@flexigotech.com
One license per Odoo database. Per-database pricing follows the Odoo Apps Store standard.
Frequently asked questions
Does this module work on Odoo 19 Community (not just Enterprise)?
account_edi_ubl_cii if that
module is present; on Community it operates fully standalone. All features —
XRechnung generation, ZUGFeRD embedding, inbound parsing, GoBD log — are
available in both editions without any feature gates.
Is ZUGFeRD PDF/A-3 embedding included?
pikepdf is installed as a Python package. The
module uses pikepdf to embed the EN 16931 XML into the Odoo invoice PDF following
the PDF/A-3 standard, producing a Factur-X-compatible hybrid file. If pikepdf is
not installed, the module still generates standalone XRechnung XML and ZUGFeRD is
gracefully skipped with a warning in the audit log.
What does the GoBD audit log actually record?
xrechnung.audit.log) that records
every e-invoice event: generation, validation result, inbound parse, format override.
Each record stores a SHA hash chained to the previous entry, making retroactive
modification detectable. The unlink method is overridden to block
deletion during the ten-year retention period. A CSV export is available from the
Supplier Compliance dashboard for tax authority inspections under GoBD, section 238
HGB, and section 147 AO.
How does XRechnung schematron validation work?
lib/schematron/ with the compiled artefacts from the official KoSIT
validator configuration repository, or enable the optional KoSIT online API in
Settings (HTTPS-only, disabled by default). Validation runs automatically before
every outbound generation — invalid invoices are blocked and errors are
recorded in the audit log.
How are inbound XRechnung and ZUGFeRD invoices processed?
Can each company in a multi-company setup use different formats?
Is there a Leitweg-ID validator for B2G routing?
What happens to the audit log when I upgrade the module?
l10n_de_xrechnung module
if Odoo SA releases one; the architecture delegates gracefully when a native hook
is detected.
Ready to ship structured German invoices from Odoo?
Install XRechnung & ZUGFeRD for Odoo 19 from the Odoo Apps Store and meet the 2025–2028 e-invoicing mandate without changing your Odoo workflow.
Built by FlexigoTech — Odoo specialists for EU compliance modules.
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