Send & receive structured FA(2) invoices through Poland's KSeF, with UPO receipts and reference tracking, ready for the 2026 mandate. One-time license from $599.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Send & receive structured FA(2) invoices through Poland's KSeF, with UPO receipts and reference tracking, ready for the 2026 mandate.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
The Poland KSeF E-Invoicing Connector is a build-to-order Odoo module that ECOSIRE designs, builds, installs, and supports for your specific configuration — it is not an off-the-shelf apps.odoo.com download and there is no instant download at checkout. After purchase, our Odoo engineers develop and deploy a native integration between your Odoo Accounting and Poland's Krajowy System e-Faktur (KSeF), the National e-Invoicing System that becomes mandatory for VAT-registered businesses in 2026.
FA(2) structured XML generation from posted account.move invoices and credit notes, mapping Odoo partner, tax, and line data into the KSeF-required schema
KSeF API authentication with session initiation, token-based auth (interactive and authorization-token flow), and automatic session-token refresh
Outbound invoice submission that pushes signed FA(2) XML to KSeF and polls submission status until accepted or rejected
UPO (Urzedowe Poswiadczenie Odbioru) receipt retrieval, stored as an attachment on the source invoice for a complete audit trail
Inbound invoice retrieval that queries KSeF for documents issued to your NIP and imports them into Odoo automatically
KSeF reference-number tracking on a dedicated ksef.document model with draft/sent/accepted/rejected lifecycle states
At the core, the module extends account.move to generate compliant FA(2) structured XML directly from your posted customer invoices and credit notes, mapping Odoo partner data, tax lines, and payment terms into the FA(2) schema fields KSeF expects. Computed fields (built with @api.depends) derive KSeF-specific values — invoice hash, issue metadata, and gross/net breakdowns — while a dedicated ksef.document model tracks every submission's lifecycle: draft, sent, accepted, rejected, and the returned KSeF reference number.
Authentication is handled through the KSeF API: the module manages session initiation, token-based auth (interactive or authorization-token flow), and session refresh, storing credentials securely and never exposing secrets in the UI. Outbound submission pushes the signed FA(2) XML to KSeF and polls for the UPO (Urzędowe Poświadczenie Odbioru) — the official confirmation receipt — which is stored as an attachment against the invoice for your audit trail. Inbound retrieval periodically queries KSeF for invoices issued to your NIP, so purchase documents received via the system land in Odoo automatically.
Automation is wired through Odoo scheduled/automated actions so submission and retrieval run without manual clicks; QWeb reports render a KSeF-visualized human-readable copy of each structured invoice for your customers and internal review. Access is governed by ir.model.access.csv plus record rules so only your accounting team can send, view UPOs, or reprocess rejected documents. The connector is designed for Odoo 17, 18, and 19 (Community and Enterprise), and can also expose submission state over XML-RPC/JSON-RPC if you drive invoicing from an external system.
Because every deployment differs — chart of accounts, tax configuration, multi-company, NIP structure, and whether you are on Odoo.sh, on-premise, or ECOSIRE managed hosting — we scope the build to your environment during onboarding and hand over a documented, tested, production-ready module within a typical 2–4 week lead time.
A trading, manufacturing, or services company registered for VAT in Poland that must move to structured e-invoicing before the 2026 KSeF mandate and wants it native inside its existing Odoo Accounting, not a separate portal.
An integrator serving clients across Central and Eastern Europe who needs a reliable, reusable KSeF connector to roll out to multiple Polish customers without building FA(2) generation and API auth from scratch on every project.
A controller or chief accountant responsible for compliance who needs auditable UPO receipts, tracked KSeF reference numbers, and a clear rejection queue so no invoice slips through unconfirmed.
A finance leader overseeing several Polish legal entities who needs each company to submit under its own NIP and credentials from one Odoo deployment, with consistent controls and reporting across the group.
Buy the license on ecosire.com and download the Poland KSeF E-Invoicing Connector module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Poland KSeF E-Invoicing Connector, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| FA(2) XML generation from your posted Odoo invoices | Possible, but you build and maintain the FA(2) schema mapping yourself | Sometimes, but often tied to one Odoo version or a generic mapping | ||
| KSeF API auth, session tokens, and outbound submission | Build from scratch against KSeF API docs | Varies by vendor; may need extra services | ||
| UPO receipt retrieval stored on the invoice | Must implement polling and attachment storage yourself | Sometimes included | ||
| Inbound KSeF invoice retrieval into Odoo | Rarely built; adds significant scope | Often missing or paid add-on | ||
| Built and tuned for your Odoo 17/18/19 and tax config | Yes, if you have the in-house Odoo capacity | Generic; you adapt it to your setup | ||
| 2-4 week delivery with sandbox validation and go-live support | Depends entirely on your team's availability | Self-install; support quality varies | ||
| Documentation, team training, and defined support window | You produce and maintain it | Usually docs only, limited support | ||
| Ongoing updates for KSeF schema and regulatory changes | Your ongoing burden | Depends on vendor roadmap |
This is a build-to-order module, not an instant download. After purchase we start a short scoping call to confirm your Odoo version (17/18/19), tax setup, NIP/company structure, and hosting. Typical lead time is 2-4 weeks from that call to a validated go-live, including testing against the KSeF sandbox. You receive the installed module, configuration, and documentation at handover.
Every engagement includes a defined post-go-live support and bug-fix window with an SLA for KSeF-related issues. Because KSeF's FA schema and API evolve, we also offer a maintenance plan that keeps the module aligned with regulatory and schema changes across the 2026 mandate rollout and beyond. Support terms are confirmed in writing before the build starts.
Yes. The module generates FA(2) structured XML, authenticates against the KSeF API, submits invoices, and retrieves the official UPO confirmation receipt and KSeF reference number for each document, which is exactly what the mandate requires. We validate the full cycle against the KSeF test environment before your production cutover, and adapt to schema versions in effect at your go-live date.
Odoo 17, 18, and 19, on both Community and Enterprise. The module is packaged with a clean __manifest__.py and pinned dependencies, and we build against your exact version so it installs cleanly whether you run on-premise, on Odoo.sh, or on ECOSIRE managed hosting.
Yes. Outbound, it pushes your posted customer invoices and credit notes as FA(2) XML and stores the returned UPO and reference number. Inbound, a scheduled action queries KSeF for invoices issued to your NIP and imports them into Odoo automatically, so both sales and purchase documents flow through the national system.
Access is governed by ir.model.access.csv and record rules so only authorized accounting users can submit, reprocess rejected documents, or view UPO receipts. If you invoice from an external ERP or e-commerce platform, we can optionally expose submission state and KSeF reference numbers over Odoo's XML-RPC/JSON-RPC API so your other systems stay in sync.
Send & receive structured FA(2) invoices through Poland's KSeF, with UPO receipts and reference tracking, ready for the 2026 mandate.