KSeF i ERP

Odoo i KSeF: co sprawdzić przed wdrożeniem Odoo w Polsce

Krótka odpowiedź

Tak: polska lokalizacja Odoo w wersjach 18, 19 i 20 wysyła faktury do KSeF w strukturze FA(3) i domyślnie co trzy godziny pobiera z KSeF faktury zakupowe. W edycji Enterprise generuje też JPK_FA i JPK_KR_PD (a JPK_V7 warto potwierdzić na wersji próbnej), a przy płatnościach krajowych od 15 000 zł sprawdza rachunek dostawcy na białej liście. Przed wdrożeniem sprawdź wersję i edycję Odoo, źródło JPK_V7 i to, kto będzie utrzymywał moduły.

Odoo kusi szerokim zakresem: sprzedaż, magazyn, CRM, zakupy, faktury i sklep w jednym systemie. W Polsce pierwsze pytanie brzmi jednak zwykle: czy Odoo poradzi sobie z KSeF, JPK i białą listą? Do niedawna uczciwa odpowiedź była „tylko z modułami firm trzecich”. Od początku 2026 r. sytuacja wygląda inaczej, ale nadal jest kilka miejsc, które trzeba sprawdzić przed podpisaniem umowy wdrożeniowej.

Ten poradnik jest dla właścicieli firm, dyrektorów finansowych i osób, które wybierają ERP lub CRM. Zebraliśmy w nim to, co mówią oficjalna dokumentacja Odoo, kod źródłowy modułów i Ministerstwo Finansów (stan na październik 2026 r.).

Odoo w pigułce: moduły, edycje, wersje

Krótko: Odoo to zestaw aplikacji (sprzedaż, magazyn, księgowość, CRM, e-commerce i inne) w dwóch edycjach: otwartej Community i płatnej Enterprise. Natywna obsługa KSeF jest w wersjach 18, 19 i 20, a nie ma jej w 17 i starszych.

Community vs Enterprise: gdzie są moduły lokalizacyjne

Polska lokalizacja to kilka modułów instalowanych automatycznie po wybraniu Polski jako kraju firmy. Dokumentacja Odoo 20 wymienia siedem z nich. Część jest w publicznym repozytorium edycji Community na licencji LGPL-3, a moduły raportów nie:

ModułDo czego służyW publicznym kodzie Community (wersja 20)
l10n_plplan kont, podatki, raport podatkowy, pozycje fiskalne, pola do JPK (GTU, TP, oznaczenia procedur); w wersji 20 także weryfikacja rachunków na białej liścietak
l10n_pl_ediKSeF: FA(3), wysyłka, UPO, pobieranie faktur zakupowychtak
l10n_pl_taxable_supply_datedata dostawy (obowiązku podatkowego)nie
l10n_pl_reportsraporty księgowenie
l10n_pl_reports_jpk_faJPK_FA w XMLnie
l10n_pl_reports_pos_jpkJPK_VAT: dane z POS (nazwa w dokumentacji: „JPK_VAT PoS Enterprise”)nie
l10n_pl_reports_account_saftJPK_KR_PD w XMLnie

W wersjach 18 i 19 weryfikacja par NIP–rachunek dla płatności PL–PL powyżej 15 000 zł jest osobnym modułem l10n_pl_bank_verification (dokumentacja Odoo 19). Modułów oznaczonych „nie” nie ma w publicznym repozytorium, więc w praktyce trzeba je traktować jako część Enterprise. Przed decyzją potwierdź to u partnera Odoo dla swojej wersji i planu.

Wersje 17, 18, 19 i 20 a KSeF 2.0

Moduł l10n_pl_edi dodano w tym samym dniu, 30 stycznia 2026 r., do gałęzi 18.0 i 19.0, a wydana jesienią 2026 r. wersja 20 ma go od początku (kod modułu). W gałęzi 17.0 z polskich modułów jest tylko l10n_pl. Wniosek praktyczny: jeśli firma pracuje na Odoo 17 lub starszym, KSeF oznacza albo aktualizację wersji, albo moduł firmy trzeciej. Nowe wdrożenie warto robić na najnowszej wersji, na której działają potrzebne Ci moduły partnerów.

KSeF w Odoo krok po kroku

Krótko: łączysz Odoo z KSeF certyfikatem, wysyłasz faktury przyciskiem „Wyślij” i śledzisz ich status. Faktury zakupowe pobierają się same, ale trafiają do Odoo bez żadnego obiegu akceptacji.

Uwierzytelnienie: certyfikat KSeF

Odoo łączy się z KSeF certyfikatem. Według dokumentacji trzeba o niego wystąpić w KSeF, zapisać hasło do klucza, pobrać plik .pem z certyfikatem i klucz prywatny, a potem wgrać je w ustawieniach księgowości w sekcji polskiej lokalizacji. Firma musi mieć w Odoo ustawiony kraj Polska i poprawny NIP.

Ministerstwo Finansów wyróżnia dwa typy certyfikatów KSeF: typ 1 do uwierzytelnienia i typ 2 do wystawiania faktur w trybach offline. Certyfikat jest ważny najwyżej 2 lata, więc jego odnowienie trzeba wpisać w kalendarz. Tokeny KSeF, które pierwotnie miały zniknąć z końcem 2026 r., zgodnie z decyzją MF zostaną utrzymane bezterminowo. W kodzie modułu Odoo widzimy jednak tylko ścieżkę z certyfikatem i nie znaleźliśmy obsługi trybów offline.

Wysyłka faktur sprzedaży (FA(3)) i odrzucenia

Zaksięgowaną fakturę wysyła się przyciskiem Wyślij z opcją „Send via KSeF (e-Faktura)”. Odoo generuje XML w strukturze FA(3), wysyła go do KSeF, zapisuje kopię w historii faktury, a po przyjęciu pozwala pobrać UPO. Moduł rozpoznaje faktury zwykłe, korygujące, zaliczkowe i rozliczeniowe.

Na co uważać:

  • Odrzucenie wraca jako status, nie jako alarm. Kod modułu mapuje odpowiedzi KSeF m.in. na błąd weryfikacji pliku, duplikat faktury i błąd semantyki dokumentu. Ktoś musi codziennie przeglądać faktury ze statusem „Rejected”.
  • Status sprawdzaj codziennie, nie raz w tygodniu. Odoo sprawdza status zaraz po wysyłce i w razie potrzeby ponawia. Jeśli KSeF odpowiada wolno albo nie działa, kolejna automatyczna kontrola zostaje zaplanowana, a stała kontrola faktur „wysłanych” uruchamia się domyślnie raz w tygodniu. Warto ją skrócić i codziennie przeglądać faktury bez UPO lub ze statusem „Rejected”.
  • Faktury wysłanej lub przyjętej przez KSeF nie cofniesz do szkicu. To dobrze, ale oznacza, że przyjętą fakturę poprawia się korektą.
  • NIP klienta decyduje, kto zobaczy fakturę. Bez NIP firmy i pełnego adresu Odoo nie wyśle faktury. Brak NIP u klienta nie zatrzyma wysyłki: Odoo wyśle fakturę jak dla konsumenta (BrakID), a firma-nabywca nie zobaczy jej w KSeF. Dlatego po migracji sprawdź NIP i kraj u wszystkich kontrahentów B2B.

Pobieranie faktur zakupowych i czego brakuje

Dokumentacja Odoo podaje, że lokalizacja domyślnie co trzy godziny pobiera z KSeF faktury zakupowe. Harmonogram zmienia się w trybie dewelopera, w akcji zaplanowanej „Polish eInvoice: Download vendor bills from KSeF”. Odoo tworzy z nich faktury zakupowe z pozycjami, a brakującego dostawcę zakłada po NIP.

Dwie rzeczy wychodzą w praktyce:

  1. Podatki zakupowe muszą pasować do stawek z faktur. Jeśli w Odoo nie ma podatku zakupowego o stawce z faktury, import kończy się błędem.
  2. Nie ma obiegu. Faktura trafia do księgowości, ale moduł KSeF nie wysyła jej do akceptacji kierownika i nie przypomina o decyzji. Konto analityczne (odpowiednik MPK) można przypisywać automatycznie modelami dystrybucji analitycznej, a w Enterprise jest aplikacja Approvals. Wielostopniowej akceptacji według MPK z zastępstwami, decyzjami z e-maila i przypomnieniami standardowo jednak nie ma. Jak taki obieg zaprojektować, opisaliśmy w artykule Obieg faktur kosztowych z KSeF: akceptacja według MPK.

Przypomnienie terminów: od 1 lutego 2026 r. odbierają w KSeF faktury wszyscy, a wystawiają najwięksi podatnicy; od 1 kwietnia 2026 r. wystawiają w nim pozostałe firmy, a najmniejsi (do 10 tys. zł sprzedaży fakturowanej miesięcznie) od 1 stycznia 2027 r. (etapy wdrożenia KSeF).

Polska księgowość w Odoo: co jest, co trzeba dobrać

Krótko: plan kont, podatki, raport podatkowy VAT i biała lista są w lokalizacji, a JPK_FA i JPK_KR_PD w edycji Enterprise. Wszystko wskazuje, że Enterprise ma też raport JPK_VAT, ale eksport JPK_V7M/K potwierdź na wersji próbnej. W Community trzeba dobrać moduł firmy trzeciej albo program księgowy.

Plan kont, podatki, pozycje fiskalne

Moduł l10n_pl zakłada polski plan kont, stawki VAT, raport podatkowy i pozycje fiskalne, które przestawiają podatki np. dla kontrahentów z UE. To dobry punkt startu, ale plan kont prawie zawsze trzeba dopasować do polityki rachunkowości firmy. Zrób to przed pierwszymi księgowaniami, a nie po imporcie danych.

JPK: co jest w lokalizacji, a co trzeba sprawdzić

Dokumentacja Odoo wymienia moduły generujące JPK_FA i JPK_KR_PD w XML oraz moduł „Poland - JPK_VAT PoS Enterprise”, który uzupełnia raport JPK_VAT o dane z punktu sprzedaży. To mocna wskazówka, że Enterprise ma raport JPK_VAT, czyli JPK_V7M/K, plik, który większość firm wysyła co miesiąc. Pośrednio potwierdza to publiczny moduł l10n_pl: dodaje kody GTU na produktach, znacznik TP u kontrahentów i oznaczenia procedur na fakturach, czyli pola potrzebne właśnie w ewidencji JPK_V7. Sam eksport jest jednak w modułach Enterprise, których kodu nie da się sprawdzić publicznie, więc potwierdź go na wersji próbnej Enterprise z polską firmą albo u partnera Odoo.

W Community JPK_V7 trzeba dobrać osobno. Na Odoo Apps Store są płatne moduły firm trzecich, które go generują (dostępne m.in. dla wersji 18–20). Taki moduł tworzy plik do pobrania, a wysyłkę do MF robi się osobno.

Moduły partnerów i społeczności: jak oceniać utrzymanie

Repozytorium OCA l10n-poland w gałęziach od 17.0 do 20.0 nie zawiera dziś modułów, więc polskie dodatki pochodzą głównie od Odoo i firm partnerskich. Przed zakupem modułu sprawdź:

  • dla której wersji i edycji jest przeznaczony i kiedy był ostatnio aktualizowany;
  • czy autor aktualizuje go po zmianach schematów JPK i FA;
  • licencję (otwarta czy własnościowa) i dostęp do kodu przy kolejnej migracji;
  • czy moduł nie zmienia tych samych obiektów co l10n_pl_edi.

Kiedy księgowość zostaje w innym programie

Często najrozsądniej jest używać Odoo do sprzedaży, magazynu, zakupów i CRM, a pełną księgowość z JPK zostawić biuru rachunkowemu albo w programie, którego używa. Wtedy Odoo wystawia faktury i wysyła je do KSeF, a do księgowości trafia eksport albo integracja. Ważne, żeby od początku ustalić, który system jest źródłem prawdy dla faktur i rozrachunków.

Integracje Odoo: e-commerce, marketplace, automatyzacje

Krótko: Odoo ma API i webhooki, więc da się je połączyć praktycznie z każdym sklepem i hurtownią danych. Przy kilku systemach naraz lepiej sprawdza się warstwa integracji niż bezpośrednie połączenia.

API, webhooki i n8n

Odoo udostępnia API do odczytu i zapisu danych. Według dokumentacji XML-RPC i JSON-RPC są przestarzałe: ich podstawowe usługi zostaną usunięte w Odoo 22 (jesień 2028 r.) i w Odoo Online 21.1 (zima 2027 r.), a zastępcą jest JSON-2 API. Nowe integracje pisz więc od razu pod JSON-2. Uwaga na plan: w Odoo Online dostęp do zewnętrznego API mają tylko plany Custom.

Webhooki działają w obie strony: reguła automatyzacji może przyjąć dane z zewnątrz albo wysłać powiadomienie przy zmianie rekordu. Przy wielu przepływach stawiamy pośrodku n8n: kolejkuje zdarzenia, ponawia nieudane wywołania i daje jedno miejsce do logów, zamiast kilkunastu skryptów rozsianych po serwerach.

Odoo i sklep (WooCommerce, Shopify, Magento) oraz BaseLinker

DaneKierunek zwykleNa co uważać
Produkty, opisy, zdjęciaOdoo lub PIM → sklepjedno źródło prawdy, warianty
Ceny i cenniki B2BOdoo → sklepgrupy klientów, waluty
Stany magazynoweOdoo → sklep i marketplace'yrezerwacje, częstotliwość
Zamówieniasklep, BaseLinker → Odoodopasowanie klienta po NIP, duplikaty
Statusy i numery przesyłekOdoo lub BaseLinker → sklepkto jest właścicielem statusu
FakturyOdoo → KSeF, klientfaktury B2C a B2B, korekty po zwrotach

Więcej o modelach integracji przeczytasz w artykule Integracja sklepu z ERP: Magento, BaseLinker i Comarch, a o tym, jak przyspieszyć sam sklep, na stronie optymalizacji e-commerce.

Plan wdrożenia Odoo

Krótko: najpierw procesy, potem konfiguracja, na końcu dane i szkolenia. Start warto zrobić równolegle ze starym systemem przez jeden okres rozliczeniowy, ale tak, by do KSeF wysyłał faktury tylko jeden z nich.

  1. Warsztat procesów. Spisz, jak dziś płyną zamówienia, zakupy, faktury i płatności, kto co akceptuje i co ma się zmienić.
  2. Decyzje architektoniczne. Wersja (dziś najnowsza to 20), edycja, hosting, zakres księgowości w Odoo, źródło JPK_V7 (w Enterprise potwierdzone na wersji próbnej, w Community moduł firmy trzeciej albo program księgowy).
  3. Konfiguracja. Plan kont, podatki, magazyny, cenniki, role i uprawnienia.
  4. KSeF na środowisku testowym. Certyfikat, wysyłka faktur każdego rodzaju, korekty, import faktur zakupowych.
  5. Integracje. Sklep, marketplace'y, kurierzy, płatności, bank.
  6. Migracja danych. Kontrahenci z NIP, produkty, stany otwarcia, otwarte należności i zobowiązania.
  7. Szkolenia według ról. Osobno sprzedaż, magazyn, księgowość.
  8. Start równoległy w trybie cienia. Faktury do KSeF wysyła tylko jeden system (stary albo Odoo). Drugi działa na środowisku testowym KSeF albo bez wysyłki i służy do porównania VAT, rozrachunków i stanów. Faktury zakupowe pobiera z produkcyjnego KSeF tylko jeden system.

Czy warto wdrożyć Odoo?

Krótko: warto, gdy firma chce jednego systemu do sprzedaży, magazynu, CRM i e-commerce i ma kogoś, kto będzie go rozwijał. Ostrożnie, gdy kluczowa jest pełna polska księgowość w jednym miejscu albo firma ma mocno nietypowe procesy.

Odoo pasuje, gdyRozważ inną drogę, gdy
chcesz połączyć sprzedaż, magazyn, CRM i sklep w jednym systemiepotrzebujesz pełnej księgowości z JPK_V7 w Community bez dodatkowych modułów
masz procesy zbliżone do standardowychprocesy są bardzo nietypowe i wymagałyby przerobienia wielu modułów
możesz pracować na wersji 18, 19 lub 20jesteś na starej wersji z wieloma własnymi modyfikacjami
masz partnera lub zespół do utrzymania i aktualizacjinikt nie przejmie aktualizacji modułów po zmianach przepisów
integracje chcesz budować przez APIbiuro rachunkowe wymaga konkretnego programu i formatu wymiany

Nie podajemy tu cen ani opinii z rynku, bo zależą od edycji, liczby użytkowników i zakresu.

Jak robimy to w Panelu firmowym

W Panelu firmowym, wdrożonym w firmie z branży hurtowej, ERP to Comarch ERP XL, a obieg faktur zakupowych działa przed ERP:

  • harmonogram regularnie pobiera faktury zakupowe z KSeF 2.0 z pełnym XML;
  • kontrahent jest sprawdzany w GUS i na białej liście VAT, łącznie z porównaniem rachunku;
  • faktura dostaje MPK i trafia do osoby akceptującej albo jej zastępcy; decyzję można podjąć w panelu, na telefonie albo z e-maila;
  • faktury spoza KSeF panel odczytuje z poczty (OCR i AI) i łączy z wersją z KSeF po numerze faktury;
  • dopiero zaakceptowana faktura trafia do ERP, a numer dokumentu wraca do panelu.

Przy Odoo da się zastosować ten sam podział: faktury z KSeF pobiera jeden system (Odoo albo warstwa obiegu), faktura czeka jako szkic na akceptację według MPK, a po decyzji obieg zatwierdza ją w Odoo przez API. To nasze podejście projektowe, a nie gotowa integracja. Kompleksowe wdrożenie KSeF z obiegiem i CRM dla Comarch zajmuje typowo do 3 miesięcy od rozpoczęcia projektu.

Od czego zacząć

Zestaw listę procesów, które Odoo ma przejąć, i zaznacz przy każdym, czy dotyczy KSeF, JPK albo integracji. Zobacz też, z jakimi systemami pracujemy, na stronie technologie i integracje, i jak budujemy automatyzacje wokół ERP.

Pytania i odpowiedzi

Czy Odoo obsługuje KSeF?

Tak. Moduł Polish E-Invoicing FA(3) (l10n_pl_edi) jest dostępny w Odoo 18, 19 i 20, także w edycji Community. Wysyła faktury sprzedaży do KSeF w strukturze FA(3), pobiera UPO i cyklicznie pobiera faktury zakupowe. Do połączenia potrzebny jest certyfikat KSeF z kluczem prywatnym. Odoo 17 i starsze nie mają tego modułu w standardzie.

Czy Odoo 18 ma integrację z KSeF?

Tak. Moduł KSeF trafił jednocześnie do wersji 18.0 i 19.0 pod koniec stycznia 2026 r., jest od tego czasu poprawiany i jest też w wydanej jesienią 2026 r. wersji 20. Dokumentacja wersji 18 opisuje wysyłkę faktur w FA(3), uwierzytelnienie certyfikatem KSeF i pobieranie UPO.

Czy Odoo nadaje się do polskiej księgowości i JPK?

Częściowo w standardzie. Lokalizacja ma polski plan kont, podatki, raport podatkowy VAT, pozycje fiskalne i pola potrzebne w JPK_V7 (kody GTU, znacznik TP, oznaczenia procedur). Moduły JPK_FA i JPK_KR_PD są w edycji Enterprise, a dokumentacja wymienia też moduł „Poland - JPK_VAT PoS Enterprise”, co wskazuje na raport JPK_VAT w Enterprise. Eksport JPK_V7M/K potwierdź na wersji próbnej Enterprise. W Community potrzebny jest moduł firmy trzeciej albo program księgowy.

Czy Odoo pobiera faktury zakupowe z KSeF?

Tak. Domyślnie co trzy godziny Odoo pobiera z KSeF faktury, w których firma jest nabywcą, i tworzy z nich faktury zakupowe. Częstotliwość zmienia się w akcji zaplanowanej w trybie dewelopera. Obiegu akceptacji według MPK w module KSeF nie ma, trzeba go zaprojektować osobno.

Co trzeba przygotować przed podłączeniem Odoo do KSeF?

Poprawny NIP i pełny adres firmy w Odoo, certyfikat KSeF w formacie .pem z kluczem prywatnym i hasłem, NIP i kraj u wszystkich kontrahentów B2B (bez NIP faktura wyjdzie jak dla konsumenta i firma-nabywca nie zobaczy jej w KSeF) oraz podatki zakupowe zgodne ze stawkami z faktur. Warto też najpierw przetestować wysyłkę na środowisku testowym KSeF.

Jak połączyć Odoo ze sklepem internetowym i innymi systemami?

Przez API Odoo (zalecane JSON-2, bo XML-RPC i JSON-RPC mają zaplanowane wycofanie), webhooki z reguł automatyzacji albo gotowe konektory. Przy wielu systemach wygodna jest warstwa integracji, np. n8n, która kolejkuje zdarzenia i ponawia błędy.

Źródła

  1. Poland — fiscal localization, dokumentacja Odoo 20.0
  2. Poland — fiscal localization, dokumentacja Odoo 19.0
  3. Poland — fiscal localization, dokumentacja Odoo 18.0
  4. Moduł l10n_pl_edi (Polish E-Invoicing FA(3)) — kod źródłowy Odoo 20.0, GitHub
  5. Certyfikaty KSeF — Ministerstwo Finansów, ksef.podatki.gov.pl
  6. Etapy wdrożenia KSeF 2.0 — Ministerstwo Finansów, ksef.podatki.gov.pl
  7. External RPC API — dokumentacja Odoo 20.0
  8. Webhooks — dokumentacja Odoo 20.0
  9. OCA l10n-poland — repozytorium społeczności Odoo, GitHub
  10. Moduł l10n_pl_jpk_vat (JPK_V7M/K, firma trzecia) — Odoo Apps Store
  11. Moduł l10n_pl (pola GTU, TP, procedury) — kod źródłowy Odoo 20.0, GitHub
  12. Analytic distribution models — dokumentacja Odoo 20.0

Stan prawny i techniczny na dzień 9 października 2026. Artykuł ma charakter informacyjny i nie jest poradą prawną ani podatkową.

Czytaj dalej

  • Usługa

    Automatyzacje procesów i AI

    Automatyzacje, agenci AI i powiadomienia, które zdejmują z zespołu powtarzalną pracę.

    Szczegóły usługi
  • Usługa

    Optymalizacja e-commerce

    Szybszy sklep, uporządkowane dane i analityka, integracje z ERP i platformami B2B.

    Szczegóły usługi

Chcesz to wdrożyć u siebie?

Opisz, jak dziś wygląda ten proces w Twojej firmie. Pierwsza rozmowa i wstępna analiza są bezpłatne, odpowiadamy w ciągu 24 godzin.