skip to content
ksegit
LON --:--:--

polodoo

Free, open-source, fully compliant Polish accounting for sp. z o.o. on Odoo 19 CE - KSeF FA(3), JPK_V7M(3), JPK_KR_PD, NBP rates. Zero license fees.

odoo 19 · python · xml · docker · traefik · coolify

Problem

Full statutory accounting for a Polish sp. z o.o. - mandatory KSeF e-invoicing, JPK_V7M(3) VAT files, the incoming JPK_KR_PD (JPK_CIT) - normally means paid SaaS or Odoo Enterprise. Post-2014 deregulation lets a company president keep the books and sign the financial statement himself (Art. 4.5 + 52.2 UoR), but no free stack actually covers the Polish compliance surface.

Approach

Odoo 19 Community Edition plus OCA modules, patched where the gaps are, with four purpose-built LGPL modules in the repo:

  • l10n_pl_edi_fixes - KSeF FA(3) fixes: GTU codes, split payment (P_18A), VAT exemptions (P_19A)
  • l10n_pl_jpk_v7 - JPK_V7M(3)/V7K(3) generator against the Ministry of Finance schema of 2025-12-19
  • l10n_pl_jpk_kr_pd - JPK_KR_PD generator, ahead of the 2027-07-31 deadline
  • l10n_pl_nbp_rates - daily NBP Table A exchange rates
 Odoo 19 CE ── l10n_pl (chart of accounts, VAT, GTU)
     │
     ├─ l10n_pl_edi ───────► KSeF API v2.6.0 (FA(3) e-invoices)
     ├─ l10n_pl_jpk_v7 ────► JPK_V7M(3) XML
     ├─ l10n_pl_jpk_kr_pd ─► JPK_CIT XML
     └─ l10n_pl_nbp_rates ─► NBP Table A daily
     │
 Docker Compose · Traefik · Let's Encrypt (Coolify-ready)

Hardening ships in the stack: XXE-hardened XML handling, brute-force rate limiting, HSTS and security headers.

Tradeoffs

  • Chasing government schemas. FA(3), V7M(3) and KR_PD are moving targets with statutory deadlines - the price of compliance without license fees is a maintenance treadmill against ministry XSDs.
  • CE, not Enterprise. Missing Enterprise conveniences are accepted or rebuilt; everything stays LGPL/AGPL and self-hostable.
  • Self-hosting is the product. Coolify + Docker Compose + Traefik makes "your own accounting server" a one-evening setup instead of a devops project.

Outcome

An open LGPL-3 repo with Polish and English documentation, deployable end-to-end, tracking KSeF API v2.6.0 and the current JPK_V7M(3) schema.