🦅 Polish Localization of Odoo: Invoicing, Accounting, Warehouse, Payroll
🦅

Polish Localization of Odoo: Invoicing, Accounting, Warehouse, Payroll

Author: Aksel Nooitgedagt, CEO at Solvti.com in collaboration with other Odoo Partners in Poland
Date: 2025-06-17

This article is intended for Solvti team members and may be published on our blog in the future if we find it valuable to share more broadly. It serves multiple purposes:

  • to clarify which Polish accounting features are supported in the standard version of Odoo and which are missing,
  • to explain what kind of custom development is needed and why,
  • to help assess whether the standard functionality is sufficient for a given client’s needs, and if not, what additional modules or modifications are required,
  • to support our internal work on developing our own Polish localization modules,
  • and finally, to be used in discussions with Odoo S.A. to clearly demonstrate which features are lacking and what improvements are needed.

Accounting requirements vary across businesses, so this article is designed to guide implementation decisions based on actual client expectations and compliance needs. It assumes reader is generally familiar with Odoo Standard functionality and focuses therefor on things that are lacking in Odoo. We inform clients that it is generally possible to run accounting in Odoo in Poland. For example, at Solvti, we fully manage our accounting in Odoo—including invoicing, expenses, JPK files, and integration with the Tax Office. However, every company is different, so accounting needs are always assessed on a case-by-case basis.

The tables below are checked against Odoo Enterprise v18.

Invoicing features

Name

Description

Available in Odoo Standard

Available as customization or module

Comment

Resources

Compliant invoice format

According to Art. 106e ust. 1 VAT act, a standard invoice must include certain fields.

Partly

We have a module for that at Solvti. Ask Jakub Wisełka for questions.

More about invoice format:

đź§ľ Polish Invoice Requirements vs. Odoo Standard Fields

Polish VAT Act – Ustawa o podatku od towarów i usług

https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU20040540535/U/D20040535Lj.pdf

Correction invoices

Issuing and tracking correction invoices (faktura korygujÄ…ca)

Partly. There is a feature called "Credit note", but it does not automatically generate the designation “FAKTURA KORYGUJÄ„CA” nor does it enforce Polish formal requirements for the content of the document (e.g., indicating the reason for the correction, linking to KSeF, lines before and lines after).

We have a module for that at Solvti. Ask Jakub Wisełka for questions.

From 2022 there is no need for showing reason of correction. Also, integration with KSeF is needed, so maybe this is a good moment for us to make our module.

Art. 106j ustawy o VAT
https://lexlege.pl/ustawa-o-podatku-od-towarow-i-uslug/art-106j/

Reverse Charge

Handling “odwrotne obciÄ…ĹĽenie” (reverse-charge) VAT invoices. Include annotation on sales invoices, plus register payable and receivable VAT for vendor bills.

Yes - use Fiscal Positions

N/A

Only allowed when both sides are B2B (VAT payers).

W przypadku importu usług z UE: art. 28b ustawy o VAT; w przypadku towarów: art. 17 ustawy o VAT

Split Payment Mechanism

Split payment (mechanizm podzielonej płatności, MPP) on sales invoices

The invoice must include the note “mechanizm podzielonej płatności” (“split payment mechanism”).

Not as a feature, but possible to add manual notes to invoices

https://apps.odoo.com/apps/modules/18.0/trilab_jpk_base

Not very often needed, to be honest.

Split Payment (MPP) is mandatory when all the following apply:

- The invoice is B2B (between VAT taxpayers)

- The gross invoice amount exceeds 15,000 PLN

- At least one item on the invoice is listed in Annex 15 of the Polish VAT Act (e.g., electronics, steel, fuels, construction services)

Ustawa o podatku od towarów i usług (VAT), w szczególności z art. 108a ust. 1a–1b tej ustawy

Invoice Duplicate Marking

Marking invoices as “DUPLIKAT” (duplicate) when re-issuing

No


As of April 2026 (KSeF) this won't be needed anymore. And in general, clients are not often asking for this.


Fetching NBP Exchange Rate for Foreign Currency Invoices in Poland


Yes

N/A



Invoice in Foreign Currency

Issuing invoices in other currencies with PLN VAT summary

Partly. VAT amount is shown in PLN, but some KSeF requirements are lacking

 N/A

In Odoo 18 polish taxes are show in PLN, so this requirement should be met. And the KSeF requirements will first be needed as of April 2026

Art. 106a–106q ustawy o VAT – możliwość wystawiania faktur w dowolnej walucie.

Art. 106e ust. 11 ustawy o VAT – kwoty podatku VAT zawsze w PLN.

Art. 31a ustawy o VAT – Przeliczenia dokonuje się według średniego kursu NBP z ostatniego dnia roboczego poprzedzającego dzień powstania obowiązku podatkowego

KSeF

Electronic invoice sending/receiving via KSeF (Krajowy System e-Faktur)

No

Solvti is working on a KSeF module. Status:
Odoo - KSeF

From February 1, 2026, KSeF will be mandatory for businesses whose 2025 sales (including VAT) exceed PLN 200 million (large taxpayers).

From April 1, 2026, all other businesses—including small, medium, micro-entrepreneurs, VAT-exempt entities, and OSS taxpayers with a Polish NIP—must use KSeF

https://ksef.podatki.gov.pl/

JPK_FA Export

Export of sales invoices in JPK_FA (Jednolity Plik Kontrolny) format

No

https://apps.odoo.com/apps/modules/18.0/trilab_jpk_fa

As of April 2026 (KSeF) this won't be needed anymore. And in general, we didn't have a single case where it was needed until now


Accounting features

Name

Description

Available in Odoo Standard

Available as customization or module

Comment

Resources

Chart of accounts & taxes

Customizable chart of accounts and polish taxes

Yes

There is a module, that imports a set of accounts. It saves a lot of time to configure everything your self:
https://apps.odoo.com/apps/modules/18.0/l10n_pl_trilab
You can also use Odoo standard chart of accounts. To be discussed with the client.

Just remember, that making changes in chart of accounts start with how they should be reported on financial statements


Different CIT and VAT Dates

In Poland, the VAT date of vendor bills does not necessarily need to be the same date as when the bill should be counted for Corporate Income Tax (CIT) purposes.

No

Yes

A vendor bill might be recognized for VAT purposes in one month (based on the delivery date) but counted for CIT purposes in a different month (based on when the invoice is received and recorded in accounting books).
Foreign Currency Considerations: For foreign currency invoices, Poland requires different exchange rates - costs are posted with the exchange rate from invoice date minus one day for CIT purposes, while VAT uses the exchange rate from the invoice date


GTU Codes on Invoices

Adding GTU codes (Grupy Towarowo-Usługowe)

No

https://apps.odoo.com/apps/modules/18.0/trilab_jpk_base 

GTU codes are exclusively a Polish requirement under domestic VAT regulations. They are not used in other EU countries. They are mandatory only for sales (they do not apply to purchases). They are not placed on the invoice - they are only shown in the JPK_V7 file (JPK_V7M or JPK_V7K). They are aimed at tightening the VAT system and facilitating fiscal control

Regulation of the Minister of Finance of October 15, 2019, on the detailed scope of data in tax declarations and VAT records (Dz. U. 2019 poz. 1988).


GTU codes are legally required in the JPK_V7 file for all qualifying sales transactions. Failing to report them can result in compliance issues with the Polish tax authorities.

Bank Synchronization & Reconciliation

Automated synchronization and reconciliation with bank accounts

Yes

N/A

Polish banks supported at 2025-05-27: 
ING Bank ĹšlÄ…ski, Santander Bank Polska, PKO Bank Polski, mBank, ING, Revolut, mBank, Alior Bank, Bank Pekao, BNP Paribas, Wise, Bank Millennium, PayPal, Aion plus many other less popular banks.


Automated Payment Processing

Creation of payment files for online banking and batch payments

Partially

Standard SEPA; Polish Elixir/SORBNET may require custom modules. Some modules are available on

TODO: Sprawdzić i używać w Solvti.


Integration with Tax Office

Possibility to send JPK files directly from Odoo to the Tax Office

No

https://apps.odoo.com/apps/modules/18.0/trilab_jpk_transfer

Usefull and wished by many, but not mandatory in Poland. You can always upload the file manually to the government portal using: 
https://www.podatki.gov.pl/e-deklaracje/


JPK_VAT

JPK_VAT is the Standard Audit File for VAT in Poland, an electronic XML report that details all sales and purchase VAT transactions. Nearly all active VAT-registered businesses in Poland must submit JPK_VAT files monthly or quarterly

Official module is available, but not tested in practice by us

https://apps.odoo.com/apps/modules/18.0/trilab_jpk_vat

Most often requested accounting feature in Poland

Ustawy o VAT (art. 109 i art. 99), RozporzÄ…dzenia Ministra FinansĂłw z 2019 r., a takĹĽe potwierdzany przez oficjalne komunikaty MF i KAS

JPK_WB

Bank Statement file in JPK structure; used by tax authorities to analyze transactions on company bank accounts

No


Not commonly requested by clients, but tax authorities may demand it during audits. Based on exported bank statements. Many banks already have export of JPK_WB

Art. 193a Ordynacji podatkowej – obowiązek przekazania organom podatkowym ksiąg i dowodów księgowych w formie JPK na ich żądanie,

JPK_CIT

Polish Standard Audit File for Corporate Income Tax. It is an electronic reporting format that standardizes how corporate income tax (CIT) data is submitted to the Polish tax authorities.

No


Rok podatkowy po 31.12.2024 - Podatnicy CIT z przychodami przekraczajÄ…cymi 50 mln euro rocznie

- Podatkowe grupy kapitałowe (PGK)

Rok podatkowy po 31.12.2025 - Wszyscy podatnicy CIT zobowiązani do składania JPK_VAT (czyli czynni podatnicy VAT)

Rok podatkowy po 31.12.2026 - Wszyscy pozostali podatnicy CIT, niezależnie od wielkości i formy prowadzenia działalności

Mandatory as of 2025-01-01 for .arge CIT taxpayers. 2026-01-01 for others.

Financial statements

Generation of official financial reports: Profit and Loss (P&L), Balance Sheet, and Cash Flow Statement according to Polish accounting standards.



Theoretically the functionallity is available in Odoo, but we use custom reports from Trilab at Solvti. To be checked why.

Ustawa z dnia 29 września 1994 r. o rachunkowości

Inventory features

Name

Description

Available in Odoo Standard

Available as customization or module

Comment

Resources

Inventory Valuation

Automatic valuation of stock (FIFO, average, manual)

Mostly 


There were some issues with goods that were bought in other currency. VAT Act (Ustawa o VAT)

Art. 31a – defines how to convert foreign currency for VAT purposes:


VAT amounts must be converted using the average NBP exchange rate from the last business day before the tax obligation arises (usually the invoice date).


This is important because Odoo (by default) may use the exchange rate from the invoice itself, which can lead to non-compliance in Poland.

1. Accounting Act (Ustawa o rachunkowości)

Art. 28 ust. 1 pkt 2 i 11 – defines how inventory should be valued:


Inventories (materials, goods, finished products) should be valued at purchase price, cost of production, or market value (if lower).


The method used must ensure true and fair presentation of the financial position.

Foreign Currency Valuation Issue in Odoo

When purchase invoices are issued in a foreign currency and later corrected (e.g., credit note, quantity adjustment)...

WIP



JPK_MAG

Monthly inventory movement report (Jednolity Plik Kontrolny – Magazyn)

No

https://apps.odoo.com/apps/modules/17.0/trilab_jpk_mag

Required for companies using full accounting and inventory. Not used often but legally required upon request by tax authorities.


Payroll features

Payroll-related topics have not yet been explored in detail by our team. We’ve heard that PwC uses Odoo for payroll processing in Poland, but they have a dedicated team for this and handle payroll for several thousand employees. It’s likely that their Odoo implementation is heavily customized to support such scale and complexity.

In general, we inform our clients that we do not advise handling Payroll in Poland using Odoo. Payroll calculations are done in an external system, and then we manually record the payroll as a journal entry in Odoo and reconcile it with the corresponding payments. E.g.