Skip to main content
JPK VAT for Odoo — A build-to-order Odoo module that generates schema-valid Polish JPK VAT XML (JPK_V7M / JPK_V7K) directly f — 1/1Illustrative preview

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.

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

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)
Procedure markers (`TP`, `MPP`, `FP`, `EE`, `TT_WNT`, etc.) and document-type flags (`RO`, `WEW`, `VAT_RR`) captured at invoice source
Tax-to-box mapping layer tying each Odoo tax to its correct JPK declarative field, configurable per your chart of accounts
Invoice form `views` (XML/OWL) extended so accountants set GTU codes and markers directly on the document
`automated actions` to apply default GTU/markers where source data is unambiguous, reducing manual tagging
QWeb summary report so a controller can review the declaration and evidence totals before submission
Correction filing support (correcting declaration with cel złożenia / purpose-of-submission field) for resubmitted periods
Immutable attachment storage of every generated JPK file for audit traceability
Access control via `ir.model.access.csv` plus record rules restricting generation and viewing to the finance role
XML-RPC / JSON-RPC endpoints so external e-signature or e-Deklaracje submission can be automated if in scope
Verified against Odoo 17.0, 18.0 and 19.0, with Community vs Enterprise accounting-engine differences confirmed for your edition

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

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

CriterionECOSIRECustom BuildCompetitorOdoo Native
Polish JPK_V7M/V7K XML outputBuilt to the current XSD, validated in Odoo before downloadPossible but you build and validate it yourselfProvided, but fixed to the vendor's mapping assumptionsNot available — no JPK schema in core
GTU codes & procedure/document markersAdded to invoices and views, defaulted where unambiguousWhatever you choose to buildUsually included but hard to tailor to your catalogueNo such fields in standard accounting
Tax-to-JPK-box mappingConfigured to your chart of accounts during setupYou define and maintain itPreset mapping you must conform toNone
Fit to your Odoo version/editionBuilt and tested for your exact 17/18/19 + Community/EnterpriseDepends on your team's coverageListing-dependent; may lag new versionsCore only, no Polish reporting
Source code & git handoverFull source plus tagged git repository handed overYou own it by definitionOften obfuscated or license-lockedN/A
Audit trail & access controlImmutable file attachments plus record-rule-restricted accessOnly if you build itVaries by vendorNot provided for JPK
Delivery & supportone working week, UAT + rollback, post-go-live support windowBound by your internal roadmap and capacitySelf-install; support via ticketing at bestNo delivery — feature does not exist
Total cost of ownershipFrom $999 indicative, fixed quote after scopingHigh developer time and ongoing maintenanceLow sticker price, high adaptation/maintenance effortNo 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.

Request a quote

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)

Request a Quotation

Tell us about your JPK VAT 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.