naprawa-stron.pl Online 24/7 Zgłoś awarię

KSeF w sklepie WooCommerce od 1 stycznia 2027: techniczna lista kontrolna integracji

Autor: Grzegorz Wojterzak. Aktualizacja: 30 listopada 2026. Czas czytania: około 12 minut.

$ wdrożenie KSeF + WooCommerce
Termin
Najmniejsi podatnicy: 1 stycznia 2027. Pozostali wystawiają w KSeF od 2026 roku
Najczęstszy problem
Brak NIP w zamówieniu, brak kolejki przy awarii, numer KSeF nie wraca do sklepu
Czas wdrożenia
Od jednego dnia (gotowa integracja) do kilku dni z testami i zwrotami
Czy zrobisz to sam?
Konfigurację gotowej integracji tak. Własny kod i nietypowe procesy lepiej zlecić

Szybka odpowiedź

WooCommerce sam nie wystawia faktur ani nie łączy się z KSeF. Potrzebujesz pola NIP w kasie, programu do faktur połączonego z KSeF (albo wtyczki, która robi to sama) i integracji, która przekazuje zamówienie do programu, czeka na numer KSeF i zapisuje go w zamówieniu. Integracja musi mieć kolejkę z ponawianiem na wypadek awarii KSeF, obsługiwać tryb offline i zwroty, a przed startem trzeba ją przetestować na środowisku testowym Ministerstwa Finansów.

KSeF, czyli Krajowy System e-Faktur, to system Ministerstwa Finansów, przez który firmy wystawiają i odbierają faktury w postaci pliku XML w ustalonym formacie (FA(3)). PDF, który klient dostaje mailem, jest tylko wizualizacją takiej faktury.

Ten tekst jest o technice: skąd sklep bierze dane, kto wysyła fakturę, co się dzieje przy awarii i jak to przetestować. Nie rozstrzygam tu, które sprzedaże wymagają faktury w KSeF ani jak liczyć limity. To pytania do księgowej lub doradcy podatkowego. Fakty o terminach i trybach opieram na materiałach Ministerstwa Finansów z ksef.podatki.gov.pl, stan na październik 2026. Przepisy KSeF zmieniały się już kilka razy, więc przed decyzją sprawdź aktualne komunikaty.

Terminy i dlaczego 1 stycznia 2027 dotyczy też większych sklepów

  • Odbiór faktur przez KSeF: wszyscy od 1 lutego 2026.
  • Wystawianie: największe firmy od 1 lutego 2026, pozostałe od 1 kwietnia 2026.
  • Najmniejsi: firmy, u których sprzedaż udokumentowana fakturami nie przekracza 10 000 zł brutto miesięcznie, od 1 stycznia 2027. Po przekroczeniu limitu obowiązek zaczyna się od faktury, która go przekroczyła, bez powrotu do starych zasad.

Jest jeszcze jedna data ważna dla sklepów z kasą fiskalną. Według materiałów MF do końca 2026 roku podatnicy mogą wystawiać po staremu faktury z kas rejestrujących, a paragon do 450 zł z NIP nabywcy jest uznawany za fakturę. Od 2027 roku taki paragon nie będzie już fakturą i trzeba będzie do niego wystawić fakturę w KSeF. Jeśli Twój sklep drukuje paragony z NIP dla firm, ten proces trzeba zmienić przed styczniem. Jak dokładnie, ustal z księgową.

Dla właścicieli najmniejszych firm przygotowałem osobną listę kontrolną: logowanie, certyfikaty i uprawnienia dla biura. Znajdziesz ją na mojej stronie informatyk-sieradz.pl, we wpisie o KSeF w jednoosobowej firmie od 2027 roku. Tutaj zajmuję się samym sklepem.

Krok 1: skąd sklep bierze dane do faktury

Faktura w KSeF dla firmy potrzebuje NIP nabywcy. Problem: WooCommerce w standardzie nie ma pola NIP. Dane rozliczeniowe zamówienia to imię, nazwisko, firma, adres, e-mail i telefon.

Edycja danych do faktury w zamówieniu WooCommerce: pole Firma w czerwonej ramce, bez pola NIP
Zrzut ekranuEdycja danych do faktury w zamówieniu WooCommerce. Czerwona ramka: pole „Firma”, jedyne pole związane z firmą. Pola NIP nie ma. Testowy sklep na WordPressie 7.1.4 i WooCommerce 11.2.1 po polsku, dane fikcyjne.

Pole NIP dodaje się wtyczką albo własnym kodem. Na co zwrócić uwagę:

  • Rodzaj kasy. Nowe sklepy WooCommerce mają kasę blokową, starsze często klasyczną. Wtyczka musi obsługiwać tę, której używasz. W kasie blokowej WooCommerce udostępnia mechanizm dodatkowych pól (funkcja woocommerce_register_additional_checkout_field), w klasycznej pola dodaje się filtrami. Wtyczka napisana tylko pod klasyczną kasę w blokowej po prostu nie pokaże pola.
  • Pole „chcę fakturę na firmę”. Zaznaczenie, które pokazuje NIP i nazwę firmy, jest czytelniejsze dla klienta niż zawsze widoczne pole.
  • Walidacja. NIP ma 10 cyfr i cyfrę kontrolną. Sprawdzenie sumy kontrolnej w kasie wyłapie literówki, zanim faktura zostanie odrzucona. Część integracji sprawdza też firmę w wykazie podatników VAT Ministerstwa Finansów (tzw. biała lista).
  • Zapis w zamówieniu. NIP musi trafić do danych zamówienia (meta zamówienia), a nie tylko do maila. Inaczej integracja go nie znajdzie.
  • Dane sprzedawcy. Nazwa, adres i NIP Twojej firmy pochodzą zwykle z programu do faktur, ale adres sklepu w WooCommerce warto mieć zgodny, bo z niego korzystają podatki i wysyłka.
Ustawienia ogólne WooCommerce: adres sklepu, miasto Sieradz, kraj Polska, kod pocztowy 98-200
Zrzut ekranuAdres sklepu w WooCommerce → Ustawienia → Ogólne. Sprawdź, czy zgadza się z danymi firmy w programie do faktur. Testowy sklep na WordPressie 7.1.4 i WooCommerce 11.2.1 po polsku, dane fikcyjne.

Krok 2: kto wysyła fakturę do KSeF

Są trzy typowe układy. Każdy działa, różnią się tym, gdzie leży certyfikat i kto odpowiada za błędy.

UkładJak działaPlusyNa co uważać
Sklep + program do fakturWtyczka przekazuje zamówienie do programu fakturowego lub księgowego, a program wystawia fakturę i wysyła ją do KSeFCertyfikat poza sklepem, program zwykle sam obsługuje tryby awaryjne, księgowa widzi wszystko w jednym miejscuDwa systemy do utrzymania. Trzeba sprawdzić, czy numer KSeF wraca do zamówienia
Wtyczka bezpośrednio do KSeFWtyczka w WordPressie sama buduje XML i wysyła go przez API KSeFJeden system, mniej przesyłania danychCertyfikat lub token w bazie WordPressa. Wtyczka musi nadążać za zmianami formatu i API
RęcznieTy lub księgowa wystawiacie fakturę w Aplikacji Podatnika KSeF albo w programie na podstawie zamówieniaZero integracji, dobre przy kilku fakturach w miesiącuŁatwo pominąć zamówienie. Numer KSeF trzeba wpisywać do zamówienia samemu

Przy wyborze nie sugeruj się samą ceną. Zapytaj dostawcę wtyczki lub programu o pięć rzeczy: czy obsługuje Twoją kasę (blokową lub klasyczną), czy zapisuje numer KSeF w zamówieniu, jak działa przy awarii KSeF, jak obsługuje korekty przy zwrotach i czym się uwierzytelnia (certyfikat czy token). Według obecnych przepisów tokeny miały działać do końca 2026 roku. MF zaproponowało ich utrzymanie, ale do października 2026 nie znalazłem ostatecznej zmiany przepisów. Jeśli integracja korzysta z tokena, zapytaj o plan na 2027.

Krok 3: przepływ faktury i numer KSeF w zamówieniu

Przepływ faktury: sklep WooCommerce, kolejka, program do faktur, KSeF Klient składa zamówienie z NIP w kasie. Sklep zapisuje zamówienie i wstawia zadanie do kolejki. Kolejka przekazuje dane do programu do faktur, który buduje plik XML i wysyła go do KSeF. KSeF nadaje numer KSeF i UPO. Numer wraca do zamówienia, a klient dostaje mail z wizualizacją faktury z kodem QR. Gdy KSeF nie odpowiada, kolejka ponawia próbę, a program może wystawić fakturę w trybie offline i dosłać ją później. 1. Kasa sklepu dane klienta, NIP, „chcę fakturę” 2. Zamówienie status, NIP w meta zamówienia 3. Kolejka zadanie w tle, ponawianie 4. Program XML FA(3), certyfikat KSeF 5. KSeF numer KSeF i UPO 6. Numer KSeF w zamówieniu notatka lub pole zamówienia status faktury: przyjęta 7. Mail do klienta wizualizacja PDF z kodem QR KSeF nie odpowiada kolejka ponawia, program: tryb offline z kodami QR Zamówienie i płatność nie czekają na KSeF. Czeka tylko faktura, w kolejce.
Najważniejsza zasada: sprzedaż nie może zależeć od tego, czy KSeF właśnie odpowiada. Faktura trafia do kolejki, a numer KSeF wraca do zamówienia dopiero po przyjęciu faktury przez system.

Numer KSeF to identyfikator, który system nadaje fakturze po jej przyjęciu. Według MF to inny numer niż Twój numer faktury (np. FV/2027/01/15) i nie ma go w samym pliku XML. Wraca razem z UPO, czyli urzędowym poświadczeniem odbioru. Na wizualizacji faktury przesłanej do KSeF musi być kod QR, a pod nim numer KSeF.

Dlatego integracja powinna zapisać w zamówieniu co najmniej: numer faktury, numer KSeF, datę przyjęcia i status. Najprościej jako notatkę zamówienia albo osobne pole widoczne na ekranie zamówienia. Wtedy obsługa sklepu przy reklamacji widzi od razu, czy faktura „przeszła”.

Ekran edycji zamówienia WooCommerce z panelem Notatki: Zamówienie w czerwonej ramce
Zrzut ekranuEkran zamówienia. Po prawej panel notatek („Notatki: Zamówienie”, czerwona ramka): tu dobra integracja dopisuje numer faktury, numer KSeF i ewentualne błędy wysyłki. Testowy sklep na WordPressie 7.1.4 i WooCommerce 11.2.1 po polsku, dane fikcyjne.

Kolejka i ponawianie

Wysyłka faktury nie powinna dziać się w chwili, gdy klient klika „Kupuję i płacę”. Jeśli KSeF lub program do faktur odpowie wolno albo wcale, klient czeka, a zamówienie może się zawiesić. Poprawnie zrobiona integracja:

  • wstawia zadanie do kolejki w tle, np. przez Action Scheduler, czyli wbudowany w WooCommerce mechanizm zadań w tle (podgląd w WooCommerce → Status → Zaplanowane działania),
  • ponawia próbę po błędzie połączenia, z rosnącymi przerwami, i po kilku nieudanych próbach powiadamia Ciebie mailem,
  • odróżnia błąd połączenia od odrzucenia faktury: przy błędzie danych (np. zły NIP) ponawianie nic nie da, trzeba poprawić dane,
  • nie wysyła tej samej faktury dwa razy. MF ostrzega przed ponownym wystawieniem w KSeF faktury już wystawionej poza systemem, bo powstają dwie faktury dla jednej sprzedaży.

Kolejka w WooCommerce działa dzięki zadaniom cyklicznym WordPressa (WP-Cron). Na sklepach z małym ruchem albo z wyłączonym WP-Cronem zadania potrafią czekać godzinami. Wtedy warto ustawić prawdziwe zadanie cron w panelu hostingu. Przez WP-CLI sprawdzisz zaległe zadania tym poleceniem, które wypisuje zadania oczekujące w kolejce:

wp action-scheduler action list --status=pending --fields=hook,scheduled_date

Krok 4: tryby awaryjne KSeF

Według MF są cztery sytuacje, które trzeba obsłużyć. Program do faktur powinien umieć każdą z nich, a sklep nie powinien w tym przeszkadzać.

SytuacjaCo się dziejeTermin dosłania do KSeF
Offline24: problem po Twojej stronie (internet, program)Faktura z dwoma kodami QR: „OFFLINE” i „CERTYFIKAT”Najpóźniej następnego dnia roboczego
Zapowiedziana niedostępność KSeFJak wyżejNastępnego dnia roboczego po zakończeniu prac
Ogłoszona awaria KSeFTryb awaryjny, klient może dostać wizualizacjęW ciągu 7 dni roboczych od końca awarii
Awaria całkowitaFaktura poza KSeF w dowolnej formieNie wysyła się jej później do KSeF
Bez certyfikatu typu 2 nie ma trybu offline

Kod QR „CERTYFIKAT” generuje się certyfikatem KSeF typu 2. Pobierasz go wtedy, gdy KSeF działa, i wgrywasz do programu. W czasie awarii go nie wygenerujesz. Certyfikat typu 1 służy do uwierzytelnienia programu i według materiałów KAS jest ważny maksymalnie 2 lata, więc zapisz w kalendarzu datę odnowienia.

Krok 5: test na środowisku testowym MF

Ministerstwo Finansów udostępnia środowisko testowe i przedprodukcyjne (Demo) KSeF, na którym wystawione faktury nie mają skutków podatkowych. Dokumentacja API dla programistów i integratorów jest w dziale Integratorzy IT na ksef.podatki.gov.pl.

  1. Zrób kopię sklepu i odetnij ją od klientów

    Na kopii wyłącz maile do klientów, przełącz bramkę płatności w tryb testowy i podłącz integrację do środowiska testowego KSeF, nie produkcyjnego.

  2. Przejdź typowe scenariusze

    Zamówienie na firmę z NIP, zamówienie osoby prywatnej, zamówienie z błędnym NIP, zamówienie z kilkoma stawkami VAT, z kosztem wysyłki i z kodem rabatowym.

  3. Sprawdź zwroty i anulowania

    Zrób zwrot częściowy i pełny. Korekty faktur wystawionych w KSeF też trafiają do KSeF, więc integracja musi umieć je wystawić albo przynajmniej powiadomić Cię, że trzeba to zrobić ręcznie.

  4. Zasymuluj awarię

    Odłącz na chwilę połączenie z KSeF (np. błędnym adresem środowiska w ustawieniach integracji na kopii) i sprawdź, czy zamówienie przechodzi, faktura czeka w kolejce, a po przywróceniu połączenia wysyła się sama, tylko raz.

  5. Sprawdź, co widzi klient

    Mail z wizualizacją, kod QR, numer KSeF pod kodem i dane firmy na fakturze.

Krok 6: certyfikaty, tokeny i bezpieczeństwo sklepu

Certyfikat KSeF lub token to klucz, który pozwala wystawiać faktury w imieniu Twojej firmy. Jeśli leży w bazie danych WordPressa, każdy, kto przejmie sklep, może go skopiować. A sklepy internetowe są atakowane znacznie częściej niż programy księgowe.

  • Jeśli możesz, trzymaj certyfikat w programie do faktur, a sklepowi daj tylko dostęp do API programu.
  • Nadawaj integracji najwęższe uprawnienia w KSeF, jakie wystarczą do wystawiania faktur.
  • Kopię klucza prywatnego i hasła trzymaj poza serwerem, w menedżerze haseł lub zaszyfrowanym archiwum.
  • Ogranicz liczbę administratorów sklepu i włącz logowanie dwuskładnikowe.
  • Po każdym włamaniu na stronę traktuj certyfikat i token jako wykradzione: unieważnij je w Aplikacji Podatnika KSeF (jeśli nie wiesz jak, zapytaj dostawcę programu) i wygeneruj nowe. O czyszczeniu strony piszę w poradniku Wirus na stronie WordPress.
Statusy faktury w integracji sklepu z KSeF Faktura ma statusy: w kolejce, wysłana, przyjęta z numerem KSeF. Z wysłanej przy błędzie połączenia wraca do kolejki i ponawia próbę. Przy odrzuceniu z powodu błędnych danych przechodzi do statusu odrzucona, wymagającego poprawienia danych przez człowieka. W trybie offline faktura jest wystawiona z kodami QR i czeka na dosłanie. w kolejce po zamówieniu wysłana czeka na KSeF przyjęta numer KSeF, UPO błąd połączenia: ponów odrzucona popraw dane ręcznie offline kody QR, dosłanie awaria
Statusy, które warto widzieć w sklepie. Najważniejsze jest rozróżnienie: błąd połączenia naprawia się sam przy kolejnej próbie, odrzucenie wymaga poprawienia danych przez człowieka.
Typowy scenariusz

Sklep z częściami wysyła zamówienia do programu do faktur wtyczką, która przekazuje dane od razu po opłaceniu zamówienia. Przez kilka godzin program jest niedostępny z powodu prac u dostawcy. Wtyczka nie ma kolejki: próbuje raz, dostaje błąd i nic więcej nie robi. Po tygodniu księgowa zauważa, że kilkanaście zamówień firmowych nie ma faktur. Pomaga przełączenie wtyczki w tryb wysyłki w tle z ponawianiem, ręczne przekazanie zaległych zamówień i powiadomienie mailowe o każdej nieudanej próbie.

Lista kontrolna przed 1 stycznia 2027

  • Kasa ma pole NIP z walidacją, działające w Twoim rodzaju kasy (blokowej lub klasycznej).
  • NIP zapisuje się w danych zamówienia, widocznych na ekranie zamówienia.
  • Wiesz, kto wysyła faktury do KSeF: program, wtyczka czy człowiek.
  • Numer faktury i numer KSeF wracają do zamówienia.
  • Wysyłka działa w tle, z ponawianiem i powiadomieniem o błędach.
  • Program obsługuje tryby offline, a certyfikat typu 2 jest wgrany.
  • Znasz datę wygaśnięcia certyfikatu typu 1 i plan na tokeny po 2026 roku.
  • Zwroty i korekty są obsłużone automatycznie albo masz na nie procedurę.
  • Proces paragonów z NIP został zmieniony razem z księgową.
  • Integracja przeszła test na środowisku testowym MF.

Kiedy nie robić tego samemu

Gotową integrację z programem do faktur skonfigurujesz sam, korzystając z instrukcji dostawcy. Pomoc przydaje się, gdy:

  • sklep ma własne pola, nietypową kasę albo kilka magazynów i walut,
  • wtyczka do NIP działa tylko w klasycznej kasie, a Ty masz blokową (albo odwrotnie),
  • chcesz połączyć sklep z programem, do którego nie ma gotowej wtyczki,
  • po wdrożeniu część faktur ginie albo dubluje się,
  • certyfikat lub token leży w bazie sklepu, a strona była kiedyś zainfekowana.

Pytania o to, które sprzedaże fakturować w KSeF, jak traktować paragony i zwroty od strony podatkowej, kieruj do księgowej. Ja zajmuję się tym, żeby technicznie wszystko działało.

Połączę Twój sklep z KSeF od strony technicznej

Dodam i sprawdzę pole NIP w kasie, skonfiguruję integrację z programem do faktur, kolejkę i powiadomienia o błędach oraz przetestuję całość na środowisku testowym. Takie prace wyceniam indywidualnie, zanim zacznę.

Najczęstsze pytania

Czy WooCommerce sam wysyła faktury do KSeF?

Nie. WooCommerce w standardzie nie wystawia faktur i nie ma nawet pola NIP w kasie. Do KSeF faktury wysyła program do fakturowania lub księgowości połączony z KSeF albo wtyczka, która sama komunikuje się z API KSeF. Sklep dostarcza tylko dane zamówienia.

Czy faktury dla klientów indywidualnych też muszą trafiać do KSeF?

Według materiałów Ministerstwa Finansów faktury dla konsumentów, czyli osób fizycznych nieprowadzących działalności, nie są objęte obowiązkowym KSeF i mogą być do niego wysyłane dobrowolnie. Jeśli wystawisz taką fakturę w KSeF, musisz zapewnić klientowi do niej dostęp, np. przez wizualizację z kodem QR. Jak to rozwiązać w Twoim sklepie, ustal z księgową.

Co się stanie z zamówieniem, gdy KSeF nie działa?

Zamówienie i płatność działają dalej, bo sklep nie zależy od KSeF. Problem dotyczy wystawienia faktury. Program powinien wtedy wystawić fakturę w odpowiednim trybie awaryjnym, oznaczyć ją kodami QR i dosłać do KSeF w terminie, a sklep powinien trzymać zamówienie w kolejce i ponowić wysyłkę, zamiast gubić fakturę.

Gdzie trzymać certyfikat KSeF: w sklepie czy w programie do faktur?

Najbezpieczniej w programie do faktur lub księgowości, a nie w bazie danych WordPressa. Certyfikat pozwala wystawiać faktury w imieniu firmy, a sklep internetowy jest częściej atakowany niż program księgowy. Jeśli wtyczka musi mieć certyfikat lub token, ogranicz dostęp do panelu i trzymaj kopię klucza poza serwerem.

Jak przetestować integrację KSeF bez skutków podatkowych?

Ministerstwo Finansów udostępnia środowisko testowe i przedprodukcyjne (Demo) KSeF. Połącz z nim kopię sklepu i program do faktur w trybie testowym, złóż kilka zamówień na firmę i na osobę prywatną, zrób zwrot i sprawdź, czy numer KSeF wraca do zamówienia.

Grzegorz Wojterzak naprawia strony internetowe po awariach i włamaniach: WordPress, WooCommerce, PHP i Node.js. Od ponad dekady pracuje przy stronach i sklepach internetowych polskich firm.