Skip to main content
KSeF 2.0

KSeF in Odoo 17, 18, 19 and 20: what changes with your version

The big difference is between Odoo 17 and the rest. Odoo 18, 19 and 20 ship l10n_pl_edi, the native module that sends invoices to KSeF; Odoo 17 does not have it. That is why in 18 to 20 the FlexigoTech module validates the FA(3) that Odoo generates or has already sent, and in 17 it validates an FA(3) generated elsewhere and uploaded.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 3 November 2026

Key facts

Module
KSeF 2.0
Versions
Odoo 17, 18, 19 and 20
Checked
in the module's source code, version 20.0 · against the sources linked at the end
Reading time
3 min

The table

Odoo versionSending to KSeFWhere the validated FA(3) comes fromCloud revalidation
17No native module: sent outside OdooUploaded ready-made, generated elsewhereNo native sending to revalidate
18l10n_pl_ediThe one l10n_pl_edi generates or has sentYes, every hour
19l10n_pl_edi, with a KSeF certificate on the companyThe one l10n_pl_edi generates or has sentYes, every hour
20l10n_pl_ediThe one l10n_pl_edi generates or has sentYes, every hour

The FlexigoTech module is published for all four versions. In none of them does it send to KSeF: it validates and prepares.

KSeF error codes in the Odoo module
The error codes the validation uses, the same in all four versions. Odoo screenshot with demo data.

If you are on Odoo 17

In 17 there is no native sending, so the flow has one more step: the invoice is issued in Odoo, the FA(3) is generated with another tool and uploaded to the invoice to be validated. The migration validator, under Migration › Run Validator, helps find the gaps in your master data before you make the move.

It is a good reason to plan the version upgrade: with 18 or later, validation works on what Odoo generates, with no files to move by hand.

A practical note: the module version does not change what gets validated. FA(3) fields, error codes and legal policy are the same in all four branches, so a company with two databases on different versions sees the same warnings in both.

If you are on 18, 19 or 20

The flow is direct. l10n_pl_edi generates and sends the FA(3), and the module validates it in FlexigoTech Cloud with a signed report. What was already sent is validated again every hour, and each invoice shows its state: valid, not valid, not validated or expired.

In 19 we checked in Odoo's code that native authentication uses a KSeF certificate stored on the company and renews tokens with a scheduled action.

KSeF legal policy in the Odoo module
The legal policy with its dates, configurable in any version. Odoo screenshot with demo data.

The migration validator, in any version

If you come from another program or an earlier version, the migration validator reviews your data before you start issuing in KSeF. It is launched from Migration › Run Validator and every run is kept under Validation Runs, so you can compare one with another. The useful thing is to run it twice: once at the start, to see the list of gaps, and once right before the switch, to confirm none are left. And Operations › Compliance Export extracts what was validated when your accountant asks for it.

What you buy in each case

The same in all four versions: the module, with a one-off payment of €9 per Odoo version, and the FlexigoTech Cloud Local service from €29 a month, VAT excluded, which is where validation runs. If you change version, it depends on where you bought it: with the subscription, the module for new versions is included if you bought it on flexigotech.com; on Odoo Apps, each version is bought there.

FA(3) validations do not depend on the Odoo version: they depend on the schema. What changes is who generates the file.

Keep reading

KSeF 2.0: the 2026 and 2027 timeline, and what to prepare in Odoo for each dateOfficial KSeF 2.0 dates in Poland (February and April 2026, January 2027), the postponed penalties and what to have ready in Odoo for each one.KSeF 2.0: token, KSeF certificate or Trusted Profile? How to chooseHow to choose the access method for KSeF 2.0 for your company and for Odoo: Trusted Profile, qualified signature, national node, token or KSeF certificate.
Checked in the module's source code (version 20.0) and the linked sources

Sources