- Home
- Apps
- SaaS Tools
- Poland JPK SAF-T Suite
Illustrative previewA made-to-order Odoo suite that produces every Polish JPK/SAF-T file
— the JPK_V7 VAT return plus on-demand JPK_FA, JPK_KR, JPK_MAG and JPK_WB — each schema-validated against the official Ministry of Finance XSD and ready to submit.
ECOSIRE builds, installs and supports it after you request a quotation.
What is Poland JPK SAF-T Suite?
A made-to-order Odoo suite that produces every Polish JPK/SAF-T file — the JPK_V7 VAT return plus on-demand JPK_FA, JPK_KR, JPK_MAG and JPK_WB — each schema-validated against the official Ministry of Finance XSD and ready to submit. ECOSIRE builds, installs and supports it after you request a quotation. 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
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 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
Every Polish VAT-registered business lives on a monthly deadline: the JPK_V7M (or quarterly JPK_V7K) file that merges the VAT declaration and the full records ledger into one XML document the tax office parses automatically. On top of that, the Krajowa Administracja Skarbowa can demand any of the other SAF-T structures — JPK_FA for sales invoices, JPK_KR for the accounting books, JPK_MAG for warehouse movements, JPK_WB for bank statements — often with only a few days' notice. Odoo's stock l10n_pl chart of accounts and base_vat validation give you the ledger, but out of the box it does not assemble, mark, and XSD-validate these government files. Teams end up exporting to spreadsheets, hand-tagging GTU codes, and hoping the gateway accepts the upload — which is exactly where a late correction or a rejected schema turns into a real penalty.
ECOSIRE builds a suite that turns Odoo into the file factory for the whole JPK/SAF-T family. On the account.move and account.move.line models we add computed fields for the GTU_01–GTU_13 goods and service group codes, the procedure markers (SW, EE, TP, TT_WNT, MPP, and the rest), and the document-type markers (RO, WEW, FP), driven by @api.depends logic on product category, partner, and journal so a bookkeeper tags once and lets the ORM propagate. A dedicated jpk.declaration model groups a period's moves into the exact JPK_V7 sections, exposes a VAT register preview grouped the way the file is structured, and renders the XML through a QWeb template mapped field-by-field to the current Ministry of Finance schema. Before anything leaves Odoo the output is validated against the official MF XSD, so a malformed file is caught on your screen, not at the gateway.
The on-demand structures share the same engine. JPK_FA reads posted customer invoices, JPK_KR walks the journal entries and account balances, JPK_MAG pulls stock.move warehouse data, and JPK_WB maps account.bank.statement lines — each generated for an arbitrary date range from a single action so you can answer a tax-office request in minutes. Split-payment (MPP) obligations and the white-list account flag feed the file automatically from the invoice and partner records. Corrections are first-class: a correction run carries the right cel złożenia purpose code, and the XML is digital-signature-ready with UPO (Urzędowe Poświadczenie Odbioru) reference tracking so every confirmed submission is auditable. Multi-company support and period-lock integration keep a closed month from being quietly re-opened and re-edited after the file has gone out. Everything is exposed over Odoo's XML-RPC/JSON-RPC API and gated by ir.model.access.csv plus record rules so only the accounting team touches declarations.
Because this is built to order, nothing is downloaded and switched on today: after you request a quotation we run a short scoping call, confirm your Odoo edition (Community or Enterprise) and version (17.0, 18.0 or 19.0), agree the exact JPK structures and marker logic your business needs, and then build, install and support it. Typical delivery is one working week from confirmed scope, with UAT on a staging database before anything touches production. Pricing starts from $999 (indicative, single-company base scope); additional company codes, deeper localization depth (extra marker rules, custom invoice types, warehouse edge cases), and data-migration volume from a legacy JPK process increase the quoted scope.
What you get
- Installable source code for the JPK SAF-T Suite built for your exact Odoo edition and version (17.0 / 18.0 / 19.0)
- Installation and configuration on your environment, including NIP, schema variant and marker-default setup
- Technical documentation: data model, field mappings to each JPK structure, and XSD-version notes
- End-user guide plus a live training session for your accounting/bookkeeping team
- Post-go-live support window for defect fixes and filing-cycle questions
- UAT on a staging database with a documented rollback plan before production cutover
- Git repository handover with full commit history and tagged release
Who this is for
In-house Polish accountant
Files JPK_V7M every month and needs GTU codes, procedure markers and split-payment flags to populate automatically from Odoo invoices, then export a clean, XSD-valid file without touching spreadsheets.
Bookkeeping / accounting firm (biuro rachunkowe)
Manages several NIPs and wants one multi-company tool to generate and track JPK_V7, JPK_FA and JPK_KR files per client, with period locks so a closed month stays closed.
Finance manager / controller
Owns the tax-office relationship and needs on-demand JPK_MAG and JPK_WB ready within the response deadline, plus UPO tracking to prove every submission was accepted.
Odoo administrator
Maintains the ERP and needs a supported, source-available module that respects `ir.model.access.csv`, record rules and period locks, and can be validated against schema changes when the Ministry updates the XSD.
How Poland JPK SAF-T Suite Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| JPK/SAF-T structures covered | JPK_V7, JPK_FA, JPK_KR, JPK_MAG and JPK_WB in one suite | Whatever you scope and pay to build in-house | Usually JPK_V7 only; other structures often extra or absent | None assembled as filing-ready XML |
| GTU + procedure/document markers | Computed on invoice lines, defaulted and overridable | Possible but you design and maintain the logic | Basic GTU support, marker coverage varies | Not modelled |
| XSD schema validation | Validated against official MF XSD before export, errors shown in Odoo | Only if you build and maintain the validator | Sometimes; depth and error detail vary | None |
| Correction files & purpose code | First-class, sets correct cel złożenia and re-declares the period | Additional build effort | Sometimes supported, sometimes manual | Manual/spreadsheet workaround |
| Fit to your version & edition | Built for your exact 17.0/18.0/19.0 Community or Enterprise | Fully bespoke by definition | Targets specific versions; upgrades on vendor's timeline | Ships with core, no JPK output |
| Support & schema-update path | Support window + source handover + maintainable XSD mappings | You own all maintenance and staffing | Vendor subscription; you wait for their release | No dedicated support for JPK output |
| Multi-company & period lock | Per-company NIP, independent series, lock-aware | Extra scope to design correctly | Multi-company support varies by product | Multi-company exists but no JPK layer |
| Delivery model | Build-to-order, one working week, UAT + rollback plan | Weeks-to-months project, you manage risk | Instant download but generic, self-fit | Already installed, but does not solve the requirement |
Frequently Asked Questions about Poland JPK SAF-T Suite
Is this a ready-to-download app on the Odoo store?
No. This is a build-to-order product. After you request a quotation we confirm your requirements on a scoping call, then ECOSIRE builds, installs and supports the suite for your specific Odoo edition and version. It is not an existing instant-download module.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The timeline depends on the number of JPK structures you need, how many companies are in play, and any migration from a legacy filing process. We agree the exact schedule on the scoping call.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base scope. The final number is a fixed quote issued after the scoping call, driven by the count of company codes, localization depth (extra marker and document-type rules), and data-migration volume. You approve the fixed quote before any build begins.
Which JPK/SAF-T files does it produce?
The unified JPK_V7M/JPK_V7K VAT declaration-plus-records file, and on-demand JPK_FA (sales invoices), JPK_KR (accounting books), JPK_MAG (warehouse) and JPK_WB (bank statements). Each is validated against the official Ministry of Finance XSD before export.
What about support and schema updates?
Every build includes a post-go-live support window for defect fixes and filing questions, and you receive the full source in a git repository. When the Ministry publishes a new XSD, we can update the mappings and validation under a support or maintenance arrangement agreed at handover — your team is never locked out of the code.
Does it work with Odoo Community or only Enterprise?
Both. The suite builds on `account`, `l10n_pl` and `base_vat`, which exist in Community and Enterprise, and we target Odoo 17.0, 18.0 and 19.0. We confirm your exact edition and version during scoping so the delivered module matches your environment.
Can it generate correction files and handle split payment?
Yes. Corrections carry the correct `cel złożenia` purpose code and re-declare the affected period, and split-payment (MPP) obligations plus the VAT white-list flag propagate automatically from invoice and partner records into the file's marker set.
Related Modules

Plivo SMS Gateway
Send bulk and transactional SMS through Plivo from any Odoo record — order confirmations, campaigns and two-way replies, all native.

Point of Sale Order Discount
A build-to-order Odoo Point of Sale extension that lets cashiers apply fixed-amount or percentage discounts to the whole order or to individual lines, with configurable limits and permissions. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19.

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.

Popup Message for Odoo
Configurable success, warning, and alert popup dialogs that fire on the Odoo events you choose — record saves, state changes, validation gates, and button clicks. Built to order by ECOSIRE for your Odoo 17, 18, or 19 database.
Poland JPK SAF-T Suite
A made-to-order Odoo suite that produces every Polish JPK/SAF-T file — the JPK_V7 VAT return plus on-demand JPK_FA, JPK_KR, JPK_MAG and JPK_WB — each schema-validated against the official Ministry of Finance XSD and ready to submit. ECOSIRE builds, installs and supports it after you request a quotation.
- Unified JPK_V7M / JPK_V7K generation that merges the VAT declaration part and the records (ewidencja) part into a single schema-conformant XML for monthly or quarterly filers
- On-demand JPK_FA export built from posted `account.move` customer invoices for any user-selected date range
- On-demand JPK_KR export that walks journal entries and account balances to render the accounting-books structure
- On-demand JPK_MAG export sourced from `stock.move` warehouse movements (PZ, WZ, RW, MM documents)