Skip to main content
Poland KSeF National E-Invoicing — A build-to-order Odoo integration that sends and receives structured invoices through Pola — 1/1Illustrative preview

A build-to-order Odoo integration that sends and receives structured invoices through Poland's mandatory KSeF

national e-invoice system directly from Odoo.

ECOSIRE builds it to your confirmed scope, installs it, and supports it after go-live.

What is Poland KSeF National E-Invoicing?

A build-to-order Odoo integration that sends and receives structured invoices through Poland's mandatory KSeF national e-invoice system directly from Odoo. ECOSIRE builds it to your confirmed scope, installs it, and supports it after go-live. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Generates FA(2)/FA(3) structured invoice XML validated against the Ministry of Finance schema before submission
Transmits invoices to the KSeF test and production API and persists the returned KSeF number (numer KSeF) on the account.move
Stores the official UPO (Urzedowe Poswiadczenie Odbioru) confirmation per invoice as a retrievable attachment
Authenticates via KSeF token, qualified signature, or trusted profile (ZAW-FA) — chosen at scope time
Interactive and batch session handling with automatic session open/close against the KSeF gateway
Fetches inbound invoices addressed to your NIP and creates draft vendor bills (account.move) for review
Maps Odoo taxes to Polish VAT rates plus GTU codes and procedure markers (procedury) on invoice lines
Handles correction invoices (faktura korygujaca) linked back to the original document reference
Handles advance invoices (faktura zaliczkowa) and their settlement/final invoice flow
Offline-mode QR (KOD) fallback generation with a human-readable visual PDF attached alongside the XML
Scheduled status-polling automated action that surfaces acceptance or rejection reasons on the invoice chatter
Sandbox/production environment switch controlled from company settings with per-company KSeF credentials
Multi-company support so each Polish entity submits and receives under its own token and NIP
Security via dedicated ir.model.access.csv rules and record rules scoping KSeF tokens and sessions per company

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Poland's transition to mandatory KSeF (Krajowy System e-Faktur) means that from the 2026 rollout, structured invoices must be issued and received through a single national platform — not as free-form PDFs. Standard Odoo account handles VAT invoicing well, but it has no concept of the FA(2)/FA(3) national schema, no path to authenticate against the KSeF API, no place to store the returned KSeF number (numer KSeF), and no way to persist the official UPO confirmation. Finance teams end up bridging that gap by hand — exporting, reformatting, and re-keying into a government portal — which is exactly the manual, error-prone process the mandate is meant to eliminate.

ECOSIRE builds a dedicated Odoo integration for your instance that closes this gap end to end. It extends account, account_edi, base_vat, and l10n_pl with new models (models.Model) that generate valid FA(2)/FA(3) invoice XML matched to the Ministry of Finance schema, then transmit it to the KSeF API and record the response against the originating account.move. Compute fields (@api.depends) derive the structured payload from the invoice lines, taxes, GTU codes, and procedure markers (procedury), while ir.model.access.csv entries and record rules keep the KSeF token, session data, and confirmations locked to the right users and companies. Authentication is built to your chosen method — KSeF token, qualified signature, or trusted profile (ZAW-FA) — with interactive and batch session handling that opens and closes sessions automatically.

Technically, the module manages the full lifecycle on the invoice. Outbound invoices are validated against the schema before submission; the returned KSeF number and the UPO (Urzedowe Poswiadczenie Odbioru) are persisted per invoice and exposed on dedicated fields and QWeb-rendered attachments. A status-polling routine (implemented as a scheduled automated action) checks acceptance or rejection asynchronously and surfaces any rejection reasons directly on the invoice chatter, so accountants never have to log into an external portal to find out why a document bounced. Inbound invoices addressed to your company are fetched from KSeF and turned into draft vendor bills for review. The build also covers correction invoices (faktura korygujaca) and advance invoices (zaliczkowa), an offline-mode QR (KOD) fallback with a human-readable visual PDF attached alongside the structured XML, a sandbox/production environment switch, and multi-company support so each Polish entity submits under its own credentials. Everything is exposed through the standard Odoo XML-RPC/JSON-RPC API for downstream automation, and the module is delivered targeting your Odoo 17.0, 18.0, or 19.0 line, Community or Enterprise.

Because this is build-to-order, delivery follows a clear path: a scoping call to confirm your KSeF authentication method, VAT and GTU mapping, correction/advance-invoice needs, and company structure; a fixed written quotation; development against that scope; UAT on a staging instance wired to the KSeF test environment; then production cutover with a rollback plan. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); additional Polish entities, deeper localization work (extra GTU/procedure logic, custom correction workflows), inbound-invoice automation depth, and integrations with existing systems increase the quoted scope.

What you get

  • Installable source code for your version of the module, targeting Odoo 17.0/18.0/19.0 as agreed
  • Installation and configuration on your instance, including KSeF credential wiring and environment switch setup
  • Technical documentation covering models, fields, security rules, and the KSeF session/submission flow
  • User guide plus a live training session for your accounting team on issuing, correcting, and reconciling KSeF invoices
  • Post-go-live support window for defect fixes and schema-conformance issues
  • UAT on a staging instance wired to the KSeF test environment, with a documented production rollback plan
  • Git repository handover with full commit history and tagged release
  • Mapping worksheet for VAT rates, GTU codes, and procedure markers as configured for your business

Who this is for

Polish SME finance manager preparing for the mandate

Runs accounting on Odoo and needs a self-hosted KSeF path before the 2026 mandatory rollout, without handing invoice data to a third-party partner integration. Wants issuing, UPO storage, and rejection handling to live inside Odoo.

Accounting firm serving multiple Polish clients

Manages books for several NIP-registered entities and needs multi-company submission, per-client credentials, and reliable inbound-invoice fetching to create draft vendor bills at scale.

IT/ERP lead at a mid-market Polish company

Owns the Odoo instance and wants a maintainable module with clear security rules, a sandbox/production switch, and XML-RPC/JSON-RPC hooks — not an opaque black box — so the team can support and extend it.

Group controller with a Polish subsidiary

Operates a multi-entity group where only the Polish company needs KSeF, and wants a scoped build that adds structured e-invoicing for that entity while leaving the rest of the group's invoicing untouched.

How Poland KSeF National E-Invoicing Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Fit to Polish KSeF mandatePurpose-built for FA(2)/FA(3), UPO, and the national APIPossible but you specify every schema detail yourselfGeneric coverage, may lag schema or edition changesNo KSeF concept at all
Authentication optionsToken, qualified signature, or ZAW-FA — built to your methodWhatever your developer scopes and maintainsOften one fixed method, take it or leave itNone
UPO and KSeF number storagePersisted per invoice, retrievable and reportableMust be designed and tested from scratchUsually stored, format and access varyNot applicable
Inbound vendor billsFetches inbound invoices into draft vendor billsExtra build effort, frequently skippedSometimes outbound-onlyManual entry
Correction and advance invoicesFaktura korygujaca and zaliczkowa flows included in scopeAdditional analysis and build per caseCoverage varies by productStandard credit notes, not KSeF-structured
Ownership and maintainabilityFull source and git repo handover, documentedYou own it but carry all the design riskOften closed/proprietary, vendor-lockedCore, but no relevant feature to own
Multi-company / multi-NIPPer-company credentials and record-rule isolationDepends on how carefully it is builtMay assume single entityNo KSeF handling
Delivery and supportScoped build, UAT on staging, rollback plan, support windowDepends on your contractor's processInstall-and-hope, generic support queueN/A

Frequently Asked Questions about Poland KSeF National E-Invoicing

Is this a ready-made app I can download and install today?

No. This is a build-to-order productized service. ECOSIRE builds the module to your confirmed scope — your KSeF authentication method, VAT/GTU mapping, and company structure — then installs and supports it. It is not an existing apps.odoo.com download.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The clock starts once we've completed the scoping call, agreed the authentication method and mappings, and you've approved the written quotation. Larger multi-company or heavy-customization builds can extend that, which we flag during scoping.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base scope. After a short scoping call we issue a fixed written quotation for your exact requirements. Drivers such as additional Polish entities, deeper localization logic, inbound-invoice automation depth, and integrations adjust the final quote. You approve the fixed price before any development begins.

What Odoo versions and editions do you support?

We build against Odoo 17.0, 18.0, or 19.0, on Community or Enterprise. You tell us your target line and edition at scope time and we deliver source code compatible with it, tested on a matching staging instance.

Which KSeF authentication methods can you implement?

We implement your chosen method: KSeF token, qualified signature, or trusted profile (ZAW-FA). We pick one primary method during scoping based on how your team operates, and build interactive and batch session handling around it.

What support and updates do I get after go-live?

Every engagement includes a post-go-live support window for defect fixes and schema-conformance issues. Because the KSeF schema and rules evolve, we can quote a separate maintenance arrangement to keep the module aligned with future Ministry of Finance schema updates beyond the initial window.

Can it both send and receive invoices?

Yes. It sends structured FA(2)/FA(3) invoices and records the KSeF number and UPO, and it fetches inbound invoices addressed to your company from KSeF, creating draft vendor bills for your team to review and post.

Request a quote

Poland KSeF National E-Invoicing

A build-to-order Odoo integration that sends and receives structured invoices through Poland's mandatory KSeF national e-invoice system directly from Odoo. ECOSIRE builds it to your confirmed scope, installs it, and supports it after go-live.

  • Generates FA(2)/FA(3) structured invoice XML validated against the Ministry of Finance schema before submission
  • Transmits invoices to the KSeF test and production API and persists the returned KSeF number (numer KSeF) on the account.move
  • Stores the official UPO (Urzedowe Poswiadczenie Odbioru) confirmation per invoice as a retrievable attachment
  • Authenticates via KSeF token, qualified signature, or trusted profile (ZAW-FA) — chosen at scope time

Request a Quotation

Tell us about your Poland KSeF National E-Invoicing requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.