- Home
- Apps
- SaaS Tools
- JPK VAT for Odoo
Illustrative previewA build-to-order Odoo module that generates schema-valid Polish JPK VAT XML (JPK_V7M / JPK_V7K) directly from your posted tax entries.
ECOSIRE scopes, builds, installs and supports it around your specific chart of accounts and tax mapping.
What is JPK VAT for Odoo?
A build-to-order Odoo module that generates schema-valid Polish JPK VAT XML (JPK_V7M / JPK_V7K) directly from your posted tax entries. ECOSIRE scopes, builds, installs and supports it around your specific chart of accounts and tax mapping. 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
Polish VAT-registered companies must submit their VAT records in the government's JPK (Jednolity Plik Kontrolny) structured format — today the combined JPK_V7M (monthly) or JPK_V7K (quarterly) file that merges the VAT return and the VAT register into one signed XML. Odoo core accounting computes VAT correctly and shows a tax report on screen, but it has no native path to the Polish Ministry of Finance schema: there is no built-in model mapping each account.move.line tax entry to the required GTU commodity codes, procedure markers (TP, MPP, FP), and document-type flags (RO, WEW, VAT_RR), nor the exact element ordering the XSD demands. Finance teams end up exporting to spreadsheets and hand-building XML against a filing deadline, which is slow and audit-risky.
ECOSIRE builds a dedicated JPK VAT module for your database. At its core is a new declaration model (models.Model) that gathers the period's posted tax lines, aggregates them into the JPK_V7 declarative fields (P_10 through P_69) using @api.depends computed fields, and serialises the sales and purchase evidence sections element-by-element to match the current published schema. We add the Poland-specific fields your invoices need — GTU codes, procedure and document markers — onto account.move and account.move.line through a clean inheriting model, surface them in the invoice views (XML/OWL) so accountants set them at source, and drive sensible defaults with automated actions where the source data is unambiguous. The generated file is validated against the XSD before it is offered for download, so structural errors surface inside Odoo rather than at the government gateway.
Technically, the module ships its own __manifest__.py declaring dependencies on account (and l10n_pl where your localization uses it), a mapping layer that ties each Odoo tax to its JPK declarative box, and QWeb-driven summary reports so a controller can review the return before submission. Access is locked down with ir.model.access.csv plus record rules so only the finance role can generate or view declarations, and every generated file is stored as an immutable attachment for audit. The generator is exposed over the standard XML-RPC / JSON-RPC API, so an external e-signature or e-Deklaracje submission step can be automated if that is in scope. It targets Odoo 17.0, 18.0 and 19.0, and we confirm Community vs Enterprise behaviour for your edition during scoping (the accounting reporting engine differs between them).
Because this is build-to-order, nothing is shipped blind. We start with a short scoping call to confirm your Odoo version and edition, tax configuration, which JPK variant you file (V7M or V7K), and how GTU/marker data should be captured for your product catalogue. We then build against your requirements, run UAT on a staging copy of your database, and hand over installable source, documentation and a git repository. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company filing, custom GTU auto-classification, data migration of historical periods, or automated e-Deklaracje submission increases the quoted scope.
What you get
- Installable Odoo module source code for your specified version(s) — 17.0, 18.0 and/or 19.0
- Installation and configuration on your environment, including tax-to-JPK-box mapping for your chart of accounts
- Technical documentation: model structure, mapping tables, and XSD-generation logic
- End-user guide plus a live training session for your finance team on tagging invoices and generating filings
- UAT on a staging copy of your database with a sample period reconciled to your on-screen tax report, and a rollback plan
- Post-go-live support window for defect fixes and filing-cycle questions
- Git repository handover with full commit history and tagged release
Who this is for
In-house Polish finance / accounting team
Runs Odoo as their ERP and files JPK_V7M or V7K each period. Needs GTU codes and procedure markers captured on invoices and a validated XML generated inside Odoo instead of hand-built spreadsheets.
Group controller at a multi-entity company
Oversees several Polish VAT registrations and wants consistent, auditable JPK generation across companies with role-restricted access and immutable filing records.
Odoo partner / implementer serving Polish clients
Needs a reliable, documented JPK VAT module built to spec with source and git handover, so it can be maintained and extended rather than reverse-engineered from an off-the-shelf listing.
Finance operations manager preparing for audit
Wants every submitted file stored immutably, reconciled to the Odoo tax report, and traceable to source documents so a tax inspection can be answered quickly.
How JPK VAT for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Polish JPK_V7M/V7K XML output | Built to the current XSD, validated in Odoo before download | Possible but you build and validate it yourself | Provided, but fixed to the vendor's mapping assumptions | Not available — no JPK schema in core |
| GTU codes & procedure/document markers | Added to invoices and views, defaulted where unambiguous | Whatever you choose to build | Usually included but hard to tailor to your catalogue | No such fields in standard accounting |
| Tax-to-JPK-box mapping | Configured to your chart of accounts during setup | You define and maintain it | Preset mapping you must conform to | None |
| Fit to your Odoo version/edition | Built and tested for your exact 17/18/19 + Community/Enterprise | Depends on your team's coverage | Listing-dependent; may lag new versions | Core only, no Polish reporting |
| Source code & git handover | Full source plus tagged git repository handed over | You own it by definition | Often obfuscated or license-locked | N/A |
| Audit trail & access control | Immutable file attachments plus record-rule-restricted access | Only if you build it | Varies by vendor | Not provided for JPK |
| Delivery & support | one working week, UAT + rollback, post-go-live support window | Bound by your internal roadmap and capacity | Self-install; support via ticketing at best | No delivery — feature does not exist |
| Total cost of ownership | From $999 indicative, fixed quote after scoping | High developer time and ongoing maintenance | Low sticker price, high adaptation/maintenance effort | No license cost but no capability |
Frequently Asked Questions about JPK VAT
Is this an existing app I can download and install today?
No. This is a build-to-order module. ECOSIRE builds it against your specific Odoo version, edition, tax configuration and JPK variant, then installs and supports it. There is no instant download — you request a quotation and we scope it with you first.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The exact timeline is fixed in your quote and depends on your Odoo version, number of companies, how GTU/marker data must be captured, and whether historical data migration or automated submission is included.
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 quote. Drivers such as multi-company filing, custom GTU auto-classification, historical data migration, or automated e-Deklaracje submission increase the quoted scope.
Which Odoo versions and editions are supported?
We target Odoo 17.0, 18.0 and 19.0, on Community or Enterprise. The accounting reporting engine differs between Community and Enterprise, so we confirm your exact edition during scoping and build the mapping accordingly.
What about support and updates after go-live?
Every engagement includes a post-go-live support window for defect fixes and filing-cycle questions. Because JPK schemas change when the Ministry of Finance updates them, we can quote an ongoing maintenance arrangement to keep the module current with schema revisions.
Does it submit the file to the government automatically?
The base scope generates a schema-valid, signature-ready XML that you download and submit through your usual channel. Automated e-signature or e-Deklaracje submission via the XML-RPC/JSON-RPC API can be added to scope if you need a hands-off filing flow.
Do you validate the file before we submit?
Yes. The generated JPK file is validated against the current XSD inside Odoo before it is offered for download, and we reconcile a sample period against your on-screen Odoo tax report during UAT so structural and totals errors surface before filing.
Related Modules

Jordan JoFotara E-Invoicing for Odoo
A build-to-order Odoo module that submits your invoices to Jordan's JoFotara national e-invoicing platform with ISTD-compliant XML and embedded QR codes. ECOSIRE builds, installs, and supports it around your chart of accounts and tax setup.

Kenya Payroll (PAYE, NSSF, SHIF) for Odoo
Build-to-order Odoo Kenya payroll — PAYE, NSSF Tier I/II, SHIF/SHA & Housing Levy with KRA P9/P10 reporting. Built & installed by ECOSIRE.

Klarna BNPL Gateway for Odoo (Europe)
Build-to-order Odoo payment provider bringing Klarna pay-in-3, pay-later and financing to your European checkout — built, installed and supported by ECOSIRE.
JPK VAT
A build-to-order Odoo module that generates schema-valid Polish JPK VAT XML (JPK_V7M / JPK_V7K) directly from your posted tax entries. ECOSIRE scopes, builds, installs and supports it around your specific chart of accounts and tax mapping.
- New declaration model (`models.Model`) that aggregates posted `account.move.line` tax entries into JPK_V7 boxes P_10–P_69 via `@api.depends` computed fields
- JPK_V7M (monthly) and JPK_V7K (quarterly) variants, generating the combined VAT return + register in one signed-ready XML
- Element-by-element serialisation to the current Ministry of Finance XSD, with in-Odoo schema validation before the file is offered for download
- Poland-specific fields added to `account.move` / `account.move.line` via inheriting models: GTU commodity codes (GTU_01–GTU_13)
