Receiving e-invoices has been mandatory in Germany since 1 January 2025 (Empfangspflicht)

XRechnung & ZUGFeRD e-invoicing for Odoo

Create, validate and receive structured German e-invoices without leaving Odoo. XRechnung 3.x (CII and UBL), ZUGFeRD 2.x in PDF/A-3, offline KoSIT validation and a tamper-evident GoBD audit log. No middleware, no manual exports, no external portal. Odoo 17, 18 and 19.

XRechnung and ZUGFeRD e-invoicing module for Odoo
Buy and install in your Odoo Try the live demo

One-time €49 per database · source code included · updates and email support included

Odoo App Store publisher with 35+ published modules OPL-1 license, full source code Email support at comercial@flexigotech.com No cloud dependencies

German e-invoicing is already law. Standard Odoo doesn't speak it.

Under section 14 UStG, amended by the Wachstumschancengesetz and the Jahressteuergesetz 2024, every German company must be able to receive structured e-invoices from 2025, and the duty to issue them phases in between 2027 and 2028 depending on annual turnover. For B2G, the ERechV mandate is already in force. On its own, Odoo leaves several gaps:

View the XRechnung module on the Odoo App Store

What the module does

Install it once and your finance team creates, validates, sends and receives structured German invoices right inside Odoo. Everything stays in your database, with no cloud dependencies.

Outbound XRechnung 3.x

CII and UBL formats with full EN 16931 business-term coverage. Leitweg-ID for B2G routing and a buyer reference field (Bestellnummer / BT-10).

ZUGFeRD 2.x in PDF/A-3

EN16931 and EXTENDED profiles. The XML is embedded into the PDF/A-3 via pikepdf and is Factur-X compatible: one file that both humans and machines can read.

Automatic inbound parsing

Attach an XRechnung or a ZUGFeRD file to a vendor bill: the module detects the format and fills in the Odoo fields (seller, buyer, lines, amounts, VAT, payment means). No re-keying.

KoSIT schematron validation

The EN 16931 schematron rules run offline before every generation, so invalid invoices are blocked at source. Optional online KoSIT validation over HTTPS is available but disabled by default.

GoBD audit log

An immutable record of every event, each entry hash-chained (SHA) to the previous one. Deletion is blocked for the ten-year retention period, with CSV export ready for tax inspections.

Operational and multi-company tools

A batch generation wizard, a supplier compliance panel, UNECE unit-of-measure mapping and format preferences set per company and per contact.

How it works

1

Install and set your identifiers

Buy on the App Store, install the module and enter your VAT ID and, for B2G, your Leitweg-ID. Pick the default output format per company or per contact.

2

Send validated invoices

Confirm a customer invoice and the module generates the XRechnung XML or a ZUGFeRD PDF/A-3, runs the schematron rules and blocks anything that does not comply.

3

Receive without re-keying

Drop an inbound XRechnung or ZUGFeRD onto a vendor bill; the module reads the XML and fills in the fields. Every step is written to the GoBD audit log.

The German mandate timeline

Dates set by section 14 UStG as amended by the Jahressteuergesetz 2024.

1 January 2025

Duty to receive e-invoices for every domestic B2B company.

1 January 2027

Duty to issue for companies with more than €800,000 turnover in the previous year.

1 January 2028

Duty to issue for all remaining companies. B2G is already mandatory under ERechV.

What the license includes

Full XRechnung 3.x generation

CII and UBL formats with EN 16931 coverage, plus ZUGFeRD 2.x embedding in PDF/A-3.

Reception with format auto-detection

Parsing of incoming XRechnung (including legacy 2.x) and ZUGFeRD into vendor bills.

Validation and GoBD log

Offline KoSIT schematron validation, a ten-year audit log and CSV export.

Source code, updates and support

Full source code, every minor update for Odoo 17, 18 and 19, and email support at comercial@flexigotech.com.

One license per Odoo database. This module supports your compliance workflows under the XRechnung/ZUGFeRD specifications and related rules (EN 16931, section 14 UStG, ERechV, GoBD); it does not constitute legal or tax advice.

Requirements and compatibility

Odoo versions17.0, 18.0 and 19.0 — Community and Enterprise
Required Odoo modulesbase, account, mail, uom, l10n_de
Optional Odoo moduleaccount_edi_ubl_cii (Enterprise): hooks in if present, degrades gracefully if not
Required Pythonlxml
Optional Pythonpikepdf — enables ZUGFeRD embedding in PDF/A-3
Multi-companyFull support: per-company format preferences and logging rules
LicenseOPL-1 (Odoo Proprietary License)

Regulatory coverage: EN 16931-1:2017, XRechnung 3.x (KoSIT / xoev-de), ZUGFeRD 2.x / Factur-X 1.0, section 14 UStG (Jahressteuergesetz 2024), ERechV for B2G, GoBD (BMF 2019) and ten-year retention (section 238 HGB / section 147 AO).

€49 one-time payment

Per database, no subscriptions. Full source code, minor updates for Odoo 17, 18 and 19 and email support included.

Buy and install Try the live demo

Frequently asked questions

Does the XRechnung module work on Odoo Community, not just Enterprise?

Yes. The module runs on both Community and Enterprise (17, 18 and 19). On Enterprise it optionally hooks into account_edi_ubl_cii when it is installed; on Community it works fully standalone. Every feature (generation, ZUGFeRD embedding, inbound parsing and the GoBD audit log) is available in both editions with no restrictions.

What is the difference between XRechnung and ZUGFeRD?

XRechnung is a pure XML format under EN 16931 and is mandatory for B2G in Germany. ZUGFeRD is a hybrid format (PDF/A-3 with embedded XML) used for B2B. The module creates and reads both: XRechnung 3.x (CII and UBL) and ZUGFeRD 2.x, the latter embedded into PDF/A-3 via pikepdf.

What exactly does the GoBD audit log record?

A dedicated model (xrechnung.audit.log) records every event: generation, validation result, inbound parsing and format changes. Each entry stores a SHA hash chained to the previous one, so any later tampering is detectable. Deletion is blocked for the ten-year retention period and the log exports to CSV for tax inspections under GoBD, section 238 HGB and section 147 AO.

How are incoming XRechnung and ZUGFeRD invoices processed?

Attach the XRechnung XML or the hybrid ZUGFeRD PDF to a vendor bill in Odoo. The module detects the format (XML namespace for XRechnung CII/UBL; embedded XMP metadata for ZUGFeRD), extracts the EN 16931 business terms (seller, buyer, lines, amounts, VAT breakdown, payment means) and fills in the bill fields for you. Legacy XRechnung 2.x files are also supported on the inbound side.

Is there a Leitweg-ID validator for B2G invoicing?

Yes. The module validates the Leitweg-ID using the mod-97 check-digit algorithm specified by ITZBund; invalid identifiers are rejected before the invoice is generated, with a clear error message. The field lives in the company settings and in the per-contact e-invoicing tab, and it is written automatically to the buyer reference field (BT-10) of the XRechnung XML.

Do I have to send my invoice data to an external cloud service?

No. Everything runs inside your Odoo database. Schematron validation is executed offline, ZUGFeRD embedding is done locally with pikepdf, and there is no external middleware or portal. Optional online validation against KoSIT is available over HTTPS but is disabled by default, so your invoice data never leaves your server unless you explicitly turn it on.