Skip to Content

Odoo 19 E-Invoices: ebInterface, ZUGFeRD and e-Rechnung.gv.at Free of Charge for the Community

5 September 2026 by
Odoo 19 E-Invoices: ebInterface, ZUGFeRD and e-Rechnung.gv.at Free of Charge for the Community
Alexander Biringer | Biricon IT Services GmbH

Electronic Invoices Are Part of Modern Accounting

The digitalisation of accounting continues to advance. Electronic invoice formats are long since more than a PDF file sent by email.

A genuine electronic invoice contains structured data that accounting and ERP systems can process automatically.

With our new open-source project for Odoo 19 Community, we want to address exactly this.

We have developed several extensions that we are making available to the Odoo Community free of charge.

The project is publicly available on GitHub:

Odoo 19 Invoice E-Files on GitHub

Our focus is on Austria in particular, but part of the solution is also of interest to companies outside Austria.

Three Modules for Electronic Invoices

The project currently consists of three main components:

  • ebInterface 6.1 for Austria
  • ZUGFeRD for electronic invoices
  • automatic transmission to e-Rechnung.gv.at

In this way, we combine different requirements relating to electronic invoices in one open-source project for Odoo 19 Community.

ebInterface 6.1 – the Austrian Invoice Format

One focus of our development is ebInterface 6.1.

ebInterface is the Austrian standard format for structured electronic invoices.

Our module

l10n_at_ebinterface

generates a corresponding ebInterface 6.1 XML from a customer invoice or credit note in Odoo.

Among other things, the relevant information from the Odoo invoice is transferred into the XML structure:

  • Invoice issuer
  • Invoice recipient
  • Invoice lines
  • Taxes
  • Payment information
  • Bank details
  • Invoice data

The generated XML file is linked directly to the invoice.

Why did we develop our own module for this?

During development, we found that, for Odoo 19 Community, there is currently no corresponding Odoo core module or OCA module available for the native Austrian ebInterface standard.

That is exactly where we wanted to start.

Rather than developing an Austrian solution only for our own installation, we implemented it as a standalone open-source module.

This means the rest of the Odoo community can benefit from it too.

ZUGFeRD Automatically with Every Invoice

The second focus of our project is ZUGFeRD.

ZUGFeRD combines a PDF invoice with a structured XML invoice.

The result is a so-called hybrid invoice: for humans, the invoice remains readable as a PDF, while software can automatically evaluate the structured invoice data it contains.

In principle, Odoo 19 already comes with support for ZUGFeRD and CII.

In practice, however, there are some limitations.

Our module

account_invoice_zugferd_ebinterface_auto

therefore starts at exactly this point.

ZUGFeRD No Longer Just an Option

We wanted a process that is as automated as possible.

For a customer invoice that is sent, it is therefore not first checked whether the customer concerned has been individually configured for ZUGFeRD.

Instead, ZUGFeRD is used automatically for customer invoices and credit notes.

In addition, the generated ebInterface XML is included as part of the invoice.

This creates an end-to-end process:

Odoo invoice → PDF → structured e-invoice → dispatch

without the user having to carry out additional steps for every invoice.

We Are Also Closing Gaps in Odoo 19 Community

During implementation, we came across a number of peculiarities in the Odoo 19 implementation.

Among other things, there are dependencies in the CII exporter that can cause problems outside certain country-specific installations.

Our module resolves several of these practical limitations.

These include, among others:

  • missing fields for deferred revenue periods
  • the country-specific restriction of PDF/A-3 conversion
  • missing or unset bank details on existing invoices

This is intended to allow ZUGFeRD to be used reliably by companies outside the country configurations originally envisaged.

e-Rechnung.gv.at – Direct Transmission to the Austrian Government

The third component is of particular interest to companies that issue invoices to public-sector contracting authorities.

With

l10n_at_erechnung_gv_at

an ebInterface invoice can be transmitted directly to the Austrian e-Rechnung.gv.at web service.

This turns mere invoice creation into an automated electronic invoicing process.

The process can look like this, for example:

Create the invoice in Odoo

↓

Generate the ebInterface XML

↓

Send the invoice

↓

Automatically transmit the ebInterface to e-Rechnung.gv.at

This integrates an otherwise manual process directly into Odoo.

Automatic Transmission Only for the Customers Who Need It

Transmission to e-Rechnung.gv.at is not activated across the board for every customer.

Instead, it can be activated for the individual Austrian customer.

For this, the required details, such as

  • Supplier number
  • Buyer group / branch number
  • Order reference

are stored on the customer record.

The module also checks whether the prerequisites for activation are met.

Test and Production Operation

For e-Rechnung.gv.at, you can choose between a test and a production environment.

The credentials for the USP web service are stored in the Odoo settings.

This allows the integration to be prepared in a test environment first, before it is used for live invoice dispatch.

Automation Instead of Additional Work

Our aim in development was not to give the accountant even more buttons.

Quite the opposite.

The idea is:

As little manual work as possible.

An invoice is created in Odoo.

The required structured formats are generated automatically.

When the invoice is sent, the corresponding files are attached automatically.

And for appropriately configured Austrian customers, the invoice can additionally be transmitted automatically to e-Rechnung.gv.at.

It is precisely this automation that makes the difference between a simple file export and a genuinely integrated e-invoicing solution.

Data Quality Is Not Simply Hidden

An important point of our implementation, however, is this:

An electronic invoice can only be as good as the data it is generated from.

We therefore do not try to silently replace missing mandatory details with arbitrary values.

If, for example, mandatory information for ZUGFeRD or ebInterface is missing, Odoo should draw the user's attention to it.

These include, for example:

  • missing country on the customer
  • missing tax information on invoice lines
  • missing bank details

In our view, this is better than sending an electronic invoice that has been generated formally but is incorrect in substance.

Open Source for the Odoo Community

We are also making this project available free of charge as open source.

Why?

Because we ourselves benefit from open-source software.

Odoo Community offers an excellent foundation for ERP, accounting and business processes. If we are missing a function in our day-to-day work, we develop it.

And if the solution may also be of interest to other companies, we make it available to the community.

For us, that is open source in practice.

Austrian Focus – but Not Only for Austria

The project has a clear Austrian focus.

ebInterface and e-Rechnung.gv.at are of particular interest to Austrian companies.

The ZUGFeRD support, by contrast, is also relevant to companies outside Austria.

The project is therefore not exclusively an Austrian solution.

The combination of structured invoice data and an automatically generated PDF/A-3 document in particular may also be of interest for other Odoo installations.

For Odoo 19 Community

The modules were developed for Odoo 19 Community.

The repository currently contains:

  • l10n_at_ebinterface
  • account_invoice_zugferd_ebinterface_auto
  • l10n_at_erechnung_gv_at

The modules depend on one another, so, depending on the use case, only the components you need have to be installed.

Our Contribution to the Community

We do not see this project as finished commercial software, but as a contribution to the further development of the Odoo community.

Perhaps someone only needs ebInterface.

Perhaps another company needs ZUGFeRD.

Perhaps a company regularly has to send invoices to public-sector contracting authorities via e-Rechnung.gv.at.

In all three cases, our project can provide a foundation.

And because the source code is openly available, every user can review, adapt and further develop the solution.

Open Source Means: Getting Better Together

We are convinced that open source offers a great advantage, especially for ERP systems.

Companies have different requirements.

A solution that works perfectly for one company may need to be adapted for another.

With open source code, this is possible.

That is why we welcome:

  • Feedback
  • Bug reports
  • Suggestions for improvement
  • Pull requests
  • further supported use cases

A good community solution does not necessarily emerge with the first commit.

It emerges through continued development by many users and developers.

Use the Project Free of Charge

The complete source code is publicly available on GitHub:

GitHub – Odoo 19 Invoice E-Files

There you will also find the installation information and the documentation for the individual modules.

To integrate the Austrian e-Rechnung.gv.at web service, the Python library Zeep is also required.

Our Contribution to an Open Odoo World

With this project, we want to show that even smaller in-house developments can create added value for an entire community.

We originally developed the modules to solve specific requirements.

Now we are making these solutions available free of charge to all Odoo 19 Community users.

In this way, an individual development can become a community solution.

Odoo 19. Open source. Electronic invoices. Austria. And free of charge for the community.

That is exactly why we have published this project.

Developing together instead of many times over.

To the project on GitHub