Skip to main content
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 — 1/1Illustrative preview

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.

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

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)
On-demand JPK_WB export mapped from `account.bank.statement` lines per bank account and period
GTU_01–GTU_13 group codes as computed `account.move.line` fields, defaulted from product category with `@api.depends` and overridable per line
Procedure markers (`SW`, `EE`, `TP`, `TT_WNT`, `MPP`, `IED`, `B_SPV`, `B_MPV_PROWIZJA`) and document markers (`RO`, `WEW`, `FP`) computed from partner, journal and invoice type
Validation against the official Ministry of Finance XSD before export, with per-node error reporting shown in the Odoo UI rather than at the gateway
Correction-file generation that sets the correct `cel złożenia` purpose code and re-declares only the affected period
VAT register preview grouped exactly by JPK declaration sections (K_ and P_ fields) for pre-submission reconciliation
Automatic split-payment (MPP) and VAT white-list flag propagation from invoice and partner records into the marker set
Digital-signature-ready XML output with UPO reference capture and per-submission status tracking on a `jpk.declaration` record
Multi-company support with per-company NIP, schema variant and independent declaration series
Period-lock integration so a filed month cannot be silently re-opened and re-edited after submission
Full exposure over Odoo XML-RPC/JSON-RPC and access control via `ir.model.access.csv` plus record rules restricting declarations to the accounting team

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

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

CriterionECOSIRECustom BuildCompetitorOdoo Native
JPK/SAF-T structures coveredJPK_V7, JPK_FA, JPK_KR, JPK_MAG and JPK_WB in one suiteWhatever you scope and pay to build in-houseUsually JPK_V7 only; other structures often extra or absentNone assembled as filing-ready XML
GTU + procedure/document markersComputed on invoice lines, defaulted and overridablePossible but you design and maintain the logicBasic GTU support, marker coverage variesNot modelled
XSD schema validationValidated against official MF XSD before export, errors shown in OdooOnly if you build and maintain the validatorSometimes; depth and error detail varyNone
Correction files & purpose codeFirst-class, sets correct cel złożenia and re-declares the periodAdditional build effortSometimes supported, sometimes manualManual/spreadsheet workaround
Fit to your version & editionBuilt for your exact 17.0/18.0/19.0 Community or EnterpriseFully bespoke by definitionTargets specific versions; upgrades on vendor's timelineShips with core, no JPK output
Support & schema-update pathSupport window + source handover + maintainable XSD mappingsYou own all maintenance and staffingVendor subscription; you wait for their releaseNo dedicated support for JPK output
Multi-company & period lockPer-company NIP, independent series, lock-awareExtra scope to design correctlyMulti-company support varies by productMulti-company exists but no JPK layer
Delivery modelBuild-to-order, one working week, UAT + rollback planWeeks-to-months project, you manage riskInstant download but generic, self-fitAlready 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.

Request a quote

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)

Request a Quotation

Tell us about your Poland JPK SAF-T Suite 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.