Poradniki

KSeF w WooCommerce: co muszą przygotować polskie sklepy

Autor: Mariusz Szatkowski · Zaktualizowano: 2026-06-25

Jeśli prowadzisz sklep WooCommerce sprzedający w Polsce, KSeF to jedna z najważniejszych nadchodzących zmian w fakturowaniu. Przenosi ono dokumentowanie sprzedaży z PDF-ów i załączników do e-maili na ustrukturyzowane dokumenty elektroniczne wystawiane przez centralną platformę państwową. Dobra wiadomość jest taka, że niemal cała praca, jaką możesz dziś sensownie wykonać, to higiena danych, a ta opłaca się natychmiast, niezależnie od tego, kiedy zacznie się Twój etap. Ten przewodnik wyjaśnia, czym jest KSeF, kogo dotyczy, jak naprawdę wyglądają czyste dane faktury oraz jak Polski dla WooCommerce przygotowuje sklep, nie udając przy tym Twojego systemu księgowego.

Czym jest KSeF i dlaczego ma znaczenie dla sklepu

KSeF (Krajowy System e-Faktur) to centralna platforma do wystawiania i odbierania faktur w Polsce. Zamiast wygenerować PDF i wysłać go klientowi e-mailem, sprzedawca przekazuje do KSeF fakturę ustrukturyzowaną. System weryfikuje ją i rejestruje, nadaje oficjalny numer i udostępnia nabywcy. Faktura przestaje być dokumentem, który projektujesz, a staje się zapisem przechowywanym przez państwo.

Kluczowa zmiana polega na tym, że faktura staje się określoną strukturą danych, a nie dowolnym plikiem. PDF może mieć dowolny układ; faktura ustrukturyzowana musi zawierać konkretne pola w określonym formacie, aby system mógł odczytać ją automatycznie. Nie ma tu miejsca na zasadę “księgowy sobie poradzi”, gdy brakująca nazwa firmy lub błędny NIP powoduje odrzucenie przy przesyłaniu.

Dla właściciela sklepu WooCommerce ma to znaczenie, ponieważ dane faktury nie mogą już być luźno sformatowane. NIP nabywcy, nazwa firmy, adres, pozycje i stawki VAT muszą być zebrane czysto i spójnie, bo zasilają bezpośrednio dokument ustrukturyzowany. Wszystko, co zbierzesz w koszyku jako rozjechany, dowolny tekst, zamienia się w problem na etapie fakturowania.

Kogo dotyczy i etapowy harmonogram

KSeF jest wprowadzany etapowo, a nie dla wszystkich naraz. Zgodnie z obecnie planowanym harmonogramem najpierw obejmuje największych podatników, a w kolejnych fazach wdrożenia etapowego dołączają pozostali przedsiębiorcy. Docelowo zamiarem jest szerokie pokrycie fakturowania B2B dla firm działających w Polsce.

Ponieważ terminy regulacyjne potrafią się przesuwać, każdą konkretną datę, którą gdzieś przeczytasz, traktuj jako tymczasową. Pewne podejście to weryfikacja aktualnego harmonogramu i własnego obowiązku bezpośrednio w Ministerstwie Finansów oraz, w razie potrzeby, u księgowego. Tym, co raczej się nie zmieni, jest kierunek: ustrukturyzowane e-fakturowanie przez centralny system nadchodzi, a wczesne przygotowanie danych kosztuje bardzo niewiele i zostawia Cię gotowym na moment, gdy nadejdzie Twój etap. To, czy i kiedy KSeF dotyczy konkretnie Twojej firmy, możesz rozstrzygnąć wyłącznie Ty wraz ze swoim doradcą.

Ostrzeżenie: Każdą konkretną datę KSeF, którą przeczytasz, traktuj jako tymczasową i potwierdź aktualny harmonogram oraz to, czy dotyczy Twojej firmy, w Ministerstwie Finansów i u księgowego.

Jakie dane faktury i klienta muszą być poprawne

Format ustrukturyzowany używany przez KSeF (potocznie określany jako schemat FA_VAT) oczekuje danych kompletnych i poprawnie sformułowanych. W praktyce oto obszary, które warto dopiąć w sklepie:

  • NIP dla nabywców firmowych. Gdy klient kupuje na firmę, potrzebujesz jego polskiego numeru NIP zebranego w koszyku i zapisanego przy zamówieniu. NIP z błędną liczbą cyfr lub błędną sumą kontrolną warto wychwycić w punkcie sprzedaży, a nie przy przesyłaniu do systemu.
  • Komplet danych nabywcy. Nazwa firmy, pełny adres i kod pocztowy muszą być obecne i spójne, a nie częściowo wypełnione czy wpisane w nieprzewidywalny sposób z ręki.
  • Prawidłowe stawki VAT. Każda pozycja musi nieść właściwą stawkę VAT. Niespójne lub brakujące stawki to jedna z częstszych przyczyn błędów na fakturach.
  • Wyraźny sygnał “to jest zamówienie firmowe”. Musisz wiedzieć dla każdego zamówienia, czy faktura jest w ogóle oczekiwana, aby zamówień firmowych nie traktować jak anonimowej sprzedaży detalicznej.
  • Czyste, ustrukturyzowane dane jako całość. Ponieważ dokument jest odczytywany maszynowo, drobne luki, które człowiek by wybaczył (brakujące pole, dziwny znak, pusta nazwa firmy), stają się realnym problemem.

Dopilnowanie tych podstaw przynosi korzyści Twojej księgowości już dziś, niezależnie od tego, w który etap KSeF wpadniesz.

Wskazówka: Niemal całe użyteczne przygotowanie, jakie możesz dziś wykonać, to higiena danych, a ta opłaca się natychmiast dla Twojej księgowości, niezależnie od tego, kiedy zaczyna się Twój etap.

Czego potrzebuje dobra warstwa przygotowawcza

Sklep WooCommerce nie potrzebuje pełnej bramki KSeF wbudowanej w każdą wtyczkę. Potrzebuje warstwy przygotowawczej, która kilka rzeczy robi dobrze i schodzi z drogi narzędziu fakturującemu, które ostatecznie wykona przesyłanie. Potraktuj to jako listę kontrolną:

  • Zbieraj NIP czysto w koszyku, z walidacją, aby błędne numery nigdy nie dotarły do zamówienia.
  • Działaj na klasycznym i blokowym koszyku, bo sklepy korzystają z obu, a dane muszą trafiać w to samo miejsce w każdym przypadku.
  • Rozpoznawaj, które zamówienia wymagają faktury, abyś nie musiał lustrować każdego zamówienia i zgadywać.
  • Pokazuj ten status tam, gdzie pracujesz, na liście zamówień, a nie ukryty w metaboksie.
  • Udostępniaj hooki, aby dedykowana integracja fakturująca lub księgowa mogła zadziałać na zamówieniu w chwili, gdy jest gotowe, bez ręcznego łączenia czegokolwiek.

Zwróć uwagę, czego na tej liście nie ma: faktycznego wysyłania faktur do KSeF. Warstwa przygotowawcza, która po cichu próbowałaby być systemem księgowym, wykraczałaby poza swoją rolę. Jej zadanie to sprawić, by dane były poprawne, a stan zamówienia czytelny; przesyłanie zostaje przy narzędziu do tego zbudowanym.

Uwaga: Darmowa wtyczka to warstwa przygotowawcza, a nie silnik fakturujący. Zbiera NIP, oznacza zamówienia i udostępnia hooki, ale generowanie faktury i przesyłanie XML KSeF to osobne zadanie realizowane przez PRO lub dedykowane narzędzie fakturujące.

Jak radzi sobie z tym Polski

Polski dla WooCommerce to darmowa, modułowa wtyczka dla polskich sklepów, a jej wsparcie dla KSeF jest świadomie zakrojone jako warstwa przygotowawcza, a nie silnik fakturujący. Pracę wykonują dwa moduły: pola B2B w koszyku, które zbierają dane, oraz moduł gotowości KSeF, który je oznacza i udostępnia.

Zbieranie danych w koszyku

Moduł koszyka B2B dodaje pola, których potrzebuje polskie zamówienie firmowe. Jest opcjonalny przełącznik “Kupuję na firmę”, pole NIP oraz opcjonalne pola REGON i IBAN, każde wyłączane lub włączane zależnie od tego, co Twój sklep faktycznie chce zbierać. NIP jest walidowany prawidłową sumą kontrolną, więc przestawiona cyfra lub numer, który zwyczajnie nie jest poprawnym NIP-em, zostaje odrzucony w koszyku z czytelnym komunikatem, zamiast zostać zapisany w stanie błędnym. REGON jest sprawdzany pod kątem prawidłowej długości 9 lub 14 cyfr, a IBAN jest walidowany od początku do końca, w tym cyframi kontrolnymi mod-97 wg ISO 13616, więc błędnie wpisany numer rachunku nie przejdzie dalej.

Co istotne, pola działają na klasycznym i blokowym koszyku. Na nowoczesnym WooCommerce (8.6 i nowszym) Polski rejestruje je przez ujednolicone API dodatkowych pól WooCommerce, dzięki czemu pojawiają się natywnie w koszyku blokowym, a wartości są odwzorowywane do standardowych metadanych zamówienia _billing_nip, _billing_regon i _billing_iban. To odwzorowanie ma znaczenie: oznacza, że moduł KSeF, narzędzie do faktur czy eksport księgowy odczytują te same przewidywalne klucze, niezależnie od tego, który koszyk zebrał dane.

Oznaczanie zamówień pod KSeF

Przy włączonym module gotowości KSeF Polski analizuje każde zamówienie w chwili jego złożenia i decyduje, czy wygląda ono na wymagające faktury KSeF, na podstawie obecności NIP-u. Zapisuje tę decyzję przy zamówieniu i udostępnia kolumnę KSeF na liście zamówień WooCommerce, działającą zarówno na klasycznym magazynie danych, jak i na HPOS (High-Performance Order Storage). Zamówienie wymagające faktury pokazuje kolorowy znacznik statusu; takie, które jej nie wymaga, pokazuje neutralną kreskę. Ekran zamówienia w panelu również pokazuje status KSeF w sekcji rozliczeniowej. Jednym spojrzeniem na cały ekran zamówień widzisz, które z nich to faktury firmowe czekające na obsługę.

Hooki, do których podłącza się integracja

To tutaj warstwa przygotowawcza zasługuje na swoją nazwę. Decyzja “czy to wymagane” przechodzi przez filtr polski/ksef/is_required, więc integracja lub Twój własny kod może nadpisać regułę (na przykład, aby oznaczać również zamówienia bez NIP-u, które niosą zaznaczone pole “wymaga faktury”). Gdy ustalono, że zamówienie wymaga faktury, Polski uruchamia akcję polski/ksef/invoice_ready, przekazując zamówienie. Wtyczka fakturująca, synchronizacja księgowa lub własny skrypt mogą nasłuchiwać tego jednego hooka i rozpocząć własny proces w chwili, gdy zamówienie jest gotowe, z NIP-em i danymi rozliczeniowymi już zwalidowanymi i zapisanymi pod znanymi kluczami metadanych. Dostajesz okablowanie bez pisania kleju spinającego.

Konfiguracja

Uruchomienie warstwy przygotowawczej zajmuje kilka minut:

  1. Zainstaluj Polski dla WooCommerce z Wtyczki > Dodaj nową, następnie aktywuj. WooCommerce musi być zainstalowane i aktywne.
  2. Otwórz menu Polski i przejdź do Modułów.
  3. Włącz pola B2B w koszyku, aby NIP (oraz, jeśli chcesz, REGON i IBAN) były zbierane w koszyku. Wybierz, które pola pokazać.
  4. Włącz moduł gotowości KSeF, aby zamówienia były oznaczane i pojawiła się kolumna KSeF na liście zamówień.
  5. Sprawdź, czy Twoje stawki VAT w WooCommerce są poprawne, bo VAT na pozycjach jest częścią każdej faktury ustrukturyzowanej.
  6. Złóż testowe zamówienie z firmowym NIP-em i sprawdź, czy zostaje oznaczone na liście zamówień i pokazuje status KSeF na ekranie zamówienia.

Ponieważ Polski jest zgodny z HPOS i obsługuje zarówno klasyczny, jak i blokowy koszyk oraz finalizację zamówienia, dobrze działa na nowoczesnej instalacji WooCommerce. Moduły są niezależne, więc możesz uruchomić tylko części KSeF i B2B, a resztę wtyczki zostawić wyłączoną.

Praktyczne wskazówki, jak przygotować się już teraz

Wtyczka daje mechanizm; dyscyplina należy do Ciebie. Kilka praktycznych wskazówek:

  • Włącz walidację NIP, zanim będzie potrzebna. Wychwycenie błędnego numeru w koszyku jest znacznie tańsze niż odkrycie go, gdy faktura zostaje odrzucona. Walidacja jest już na miejscu, gdy pole zostanie włączone.
  • Uporządkuj istniejące kartoteki klientów. Przejrzyj konta firmowe i uzupełnij brakujące NIP-y i adresy teraz, gdy jest to rutyna, a nie pilna sprawa.
  • Ujednolić sposób zbierania danych firmowych. Jedno, zwalidowane pole NIP jest lepsze niż pozwalanie klientom wklejać numer w pole uwag, gdzie żadne narzędzie nie odczyta go niezawodnie.
  • Wybierz narzędzie fakturujące wcześnie. Darmowa warstwa przygotowawcza oznacza i udostępnia zamówienia; coś musi wygenerować dokument i go przesłać. Wiedza, czy będzie to integracja księgowa, czy dedykowana wtyczka do faktur, kształtuje to, jak korzystasz z hooków.
  • Traktuj daty jako tymczasowe. Zbuduj dyscyplinę danych już teraz, aby ewentualne przełączenie było krokiem konfiguracyjnym, a nie nerwowym pośpiechem.

Gotowość na KSeF a domyślne WooCommerce

WooCommerce potrafi przyjąć zamówienie i je zwrócić, ale nie ma pojęcia o NIP-ie, nie wie, które zamówienia to faktury firmowe, i nie ma hooka, którego mógłby się chwycić system fakturujący. Oto różnica konkretnie pod kątem gotowości na KSeF:

FunkcjaDomyślne WooCommercePolski dla WooCommerce
Pole NIP w koszykuBrak wbudowanegoZwalidowane pole NIP, koszyk klasyczny i blokowy
Zbieranie REGON / IBANBrakOpcjonalne, z walidacją długości i mod-97
Walidacja sumy kontrolnej NIPBrakTak, odrzucane w koszyku jeśli błędne
Sygnał “zamówienie firmowe”BrakPrzełącznik “kupuję na firmę” i flaga przy zamówieniu
Które zamówienia wymagają faktury KSeFRęczne zgadywanieAuto-oznaczanie przy złożeniu zamówienia
Status KSeF na liście zamówieńBrakKolumna na liście klasycznej i HPOS
Hooki integracyjneBrakFiltr is_required, akcja invoice_ready
Generowanie faktury / XML KSeFBrakRęcznie / zewnętrznie (PRO dodaje to)
KosztDarmowe (bez świadomości KSeF)Darmowe; PRO dodaje faktury i XML KSeF

Wersja darmowa a PRO

Edycja darmowa to prawdziwa warstwa przygotowawcza, a nie zajawka: zwalidowane zbieranie NIP, REGON i IBAN na klasycznym i blokowym koszyku, automatyczne oznaczanie zamówień wymagających faktury KSeF, kolumna statusu KSeF na liście zamówień oraz filtr i akcja, do których podłącza się integracja. Dla większości sklepów przygotowujących się przed swoim etapem to właśnie praca, którą trzeba wykonać teraz.

Polski PRO buduje na tym silnik fakturujący. Dodaje faktury PDF (Faktura VAT) z autonumeracją i eksportem XML KSeF, pełną walidację NIP przez API GUS/REGON wraz z przyciskiem w koszyku “pobierz dane z GUS”, który automatycznie uzupełnia nazwę firmy, adres i REGON z oficjalnego rejestru, silnik reguł podatkowych przypisujący kody GTU i JPK_V7 oraz synchronizację księgową z wFirma, Fakturownia i iFirma. Jest też endpoint faktur w formacie Markdown, dzięki któremu narzędzia księgowe i obsługi klienta odczytują dane faktury, w tym referencję i status KSeF, bez parsowania PDF-a. Darmowa warstwa zbiera i oznacza; PRO wytwarza i przesyła.

Niezmienne zastrzeżenie dotyczy całości: Polski dostarcza moduły techniczne, a nie poradę prawną, i żadna wtyczka nie gwarantuje zgodności. Potwierdzenie, czy Twój sklep spełnia wymogi KSeF, pozostaje Twoją odpowiedzialnością, najlepiej przy wsparciu księgowego i oficjalnych wytycznych Ministerstwa Finansów.

W skrócie

KSeF zamienia fakturę z PDF-a, który projektujesz, w ustrukturyzowany zapis weryfikowany przez państwo, co oznacza, że dane faktury muszą być czyste, kompletne i czytelne maszynowo, zanim nadejdzie Twój etap. Domyślne WooCommerce nie ma o tym żadnej świadomości. Darmowy Polski dla WooCommerce zamyka lukę gotowości: zbiera zwalidowany NIP (oraz opcjonalnie REGON i IBAN) na klasycznym i blokowym koszyku, oznacza, które zamówienia wymagają faktury KSeF, pokazuje ten status na liście zamówień i udostępnia hooki, na których może zadziałać narzędzie fakturujące. PRO dodaje silnik generujący faktury VAT w PDF, eksportujący XML KSeF, walidujący przez GUS i synchronizujący z systemem księgowym, gdy będziesz gotów zautomatyzować resztę.

Polski dla WooCommerce - moduł KSeF