KSeF 2026 — co naprawdę musisz zrobić, żeby nie dostać 100% kary VAT
Od 1 lutego 2026 KSeF (Krajowy System e-Faktur) jest obowiązkowy dla każdego B2B w Polsce. Bez wpięcia faktury są nieważne, a Urząd nalicza karę do 100% wartości VAT. Pokażę co dokładnie się zmienia, jak wpiąć Subiekt/Comarch/Symfonia w 2 tygodnie i czego nie powie Ci dostawca ERP.
Co się zmienia 1 lutego 2026 — w trzech zdaniach
Wszystkie faktury B2B w Polsce muszą trafiać do centralnego systemu Ministerstwa Finansów (KSeF) przez API. Twoja faktura PDF wysłana mailem nie jest fakturą prawną dopóki nie pojawi się w KSeF z numerem KSeF (UID). Klient B2B nie ma prawa odebrać faktury, której nie ma w KSeF — nie odliczy VAT-u i może odrzucić płatność.
Kto musi się wpiąć (i kiedy)
- Firmy VAT-czynne (czynni podatnicy VAT) — wszystkie, niezależnie od skali. Od 1 lutego 2026.
- Firmy zwolnione z VAT (do 200k obrotu) — odroczone do 1 kwietnia 2026 (jest projekt rozporządzenia).
- Faktury B2C (do osoby fizycznej) — nadal poza KSeF, można wystawiać tradycyjnie.
- Faktury międzynarodowe / eksport — KSeF nieobowiązkowy, ale można dobrowolnie.
Co dokładnie robi KSeF API
KSeF to nie jest aplikacja w którą się logujesz i klikasz "wystaw fakturę". To zewnętrzny system, do którego Twój ERP / księgowa wysyła ustrukturyzowany plik XML (format FA(2)) — KSeF go waliduje, przydziela unikalny numer KSeF i archiwizuje na 10 lat. Klient odbiorca dostaje fakturę bezpośrednio z KSeF — Ty wystawiasz, on odbiera, Urząd widzi w czasie rzeczywistym.
Flow techniczny — 4 kroki
- Twój ERP generuje fakturę XML w formacie FA(2) (struktura zdefiniowana przez MF).
- ERP autoryzuje się w KSeF tokenem (certyfikat kwalifikowany lub Token API z e-Urząd).
- POST /api/online/Session/InitSigned + POST /api/online/Invoice/Send — XML trafia do KSeF.
- KSeF zwraca status (Accepted / Rejected) + numer KSeF. Ten numer ZASTĘPUJE Twój numer faktury.
Co musisz zrobić w swoim ERP
Każdy popularny polski ERP ma już lub będzie miał oficjalny moduł KSeF. Problem: różne wersje są na różnym etapie. Subiekt GT (od insERT) ma KSeF od wersji 1.81 jako moduł dodatkowy (płatny, ~1200 zł netto). Comarch ERP XL ma to natywnie od 2024. Symfonia ma od 2025. Optima dopiero pracuje nad pełną integracją.
Subiekt GT — czego potrzebujesz
- Subiekt GT v1.81+ (sprawdź "Pomoc → O programie")
- Moduł KSeF dla Subiekt (zakupujesz osobno u insERT lub partnera)
- Certyfikat kwalifikowany lub Token e-Urzędu firmy
- Konto testowe na ksef-test.mf.gov.pl (do testów przed produkcją)
Comarch — czego potrzebujesz
- Comarch ERP XL 2024.0+ lub Optima 2025.4+
- Modul "Faktury elektroniczne KSeF" aktywowany w licencji
- Token dostępu KSeF (jednorazowa konfiguracja w Konfiguracji → KSeF)
- Mapowanie pól (NIP, JPK_FA, kody GTU) — sprawdź czy dane klientów są kompletne
Kiedy potrzebna jest automatyzacja (i kiedy nie)
Jeśli wystawiasz do 50 faktur miesięcznie i wszystkie są w ERP — moduł natywny wystarczy. Klikasz w Subiekt "wyślij do KSeF", on robi POST i odbiera UID. Koniec. Problem zaczyna się gdy faktury są wystawiane w wielu miejscach:
- Sklep Shopify / WooCommerce wystawia faktury proforma dla klientów B2B
- BaseLinker generuje paragony/faktury dla Allegro
- Subiekt obsługuje hurt + sklep stacjonarny
- Księgowa zewnętrzna wystawia faktury dla niektórych klientów ręcznie
W takim setupie każde z tych źródeł musi się komunikować z KSeF — albo każde osobno (4 integracje), albo wszystkie przez wspólny hub. Hub-and-spoke (jeden centralny middleware → KSeF) jest tańsze, łatwiejsze do debugowania i nie wymaga zmian w każdym systemie osobno.
Architektura: n8n jako hub dla KSeF
Najczęstszy setup który wdrażam dla klientów z 200+ fakturami/mc: workflow w n8n nasłuchuje na webhooki z każdego źródła (Shopify, Subiekt, BaseLinker), normalizuje dane do struktury FA(2), strzela do KSeF API, zapisuje UID z powrotem w źródłowym systemie. Wszystko w 6 sekund.
Konkretny flow — przykład hurtowni
- Klient B2B składa zamówienie na sklepie Shopify (15 000 zł netto).
- Shopify wysyła webhook order.created do n8n.
- n8n walidate NIP przez API GUS (REGON), dopisuje dane do CRM Laravel.
- n8n generuje XML FA(2) z templatu (dane firmy, klient, pozycje, kwoty, GTU).
- n8n autoryzuje się w KSeF tokenem, POST /Invoice/Send.
- KSeF zwraca status + UID (np. "20260514-12345-ABC123-FF").
- n8n zapisuje UID w Subiekt GT (przez insERT API) i w Shopify order metafields.
- Klient dostaje mail z linkiem do faktury w KSeF + numer UID do księgowości.
Co się dzieje gdy KSeF padnie (i tak — czasem pada)
Ministerstwo Finansów przewidziało "tryb offline" — gdy KSeF jest niedostępny (zaplanowane przerwy techniczne lub awaria), masz prawo wystawić fakturę offline z czasowym numerem i przesłać ją do KSeF w ciągu 7 dni roboczych po przywróceniu serwisu. W praktyce: Twój workflow musi mieć fallback queue (np. Redis lub PostgreSQL), który łapie nieprzesłane faktury i retry po przywróceniu połączenia.
Realne koszty wdrożenia — bez waterglasów
- Moduł KSeF do Twojego ERP: 800 – 2400 zł netto (one-time, opłata licencyjna producenta)
- Certyfikat kwalifikowany (jeśli nie masz): 200 – 400 zł / rok
- Wdrożenie modułu natywnego + szkolenie (do 100 faktur/mc): 1500 – 4000 zł
- Hub-and-spoke automation (200+ fak/mc, wiele źródeł): 4 900 – 12 000 zł (one-time)
- Self-hosted infrastruktura (n8n + monitoring): od 80 zł/mc na serwer + setup
Dla typowej hurtowni 18 osób, ~400 faktur/mc z trzech źródeł (Subiekt + Shopify + BaseLinker), wdrożenie hub-and-spoke kosztuje 7 900 zł netto i trwa 2 tygodnie. Po wdrożeniu księgowa odzyskuje ~4 godziny dziennie (przepisywanie + walidacja UID po stronie klientów).
Czego dostawca ERP Ci nie powie
- Moduł natywny obsługuje TYLKO faktury z tego ERP. Faktury z Shopify, BaseLinker, Allegro — pomijane.
- Mapping NIP do KSeF wymaga aktualizacji bazy klientów — często 30%+ wymaga ręcznego dopisania kraju, kodu pocztowego, formatu NIP.
- Format FA(2) jest sztywny — pola opcjonalne w starym formacie są tu wymagane (np. kod GTU dla niektórych branż).
- Faktury korygujące w KSeF mają inny flow niż zwykłe — potrzebny osobny endpoint i osobna logika.
- Wystawienie błędnej faktury w KSeF NIE jest cofalne. Korekta = nowa faktura korygująca z odwołaniem do UID oryginału.
Checklist: czy jesteś gotowy
- Czy znasz aktualny status modułu KSeF w swoim ERP? (Zadzwoń do dostawcy)
- Czy masz certyfikat kwalifikowany lub Token e-Urzędu? Jeśli nie — wyrobienie trwa 5–10 dni roboczych.
- Czy Twoja baza klientów ma kompletne dane (pełny NIP, kraj, kod pocztowy)?
- Czy wiesz ile masz źródeł wystawiających faktury? (ERP, sklep online, BaseLinker, marketplace, ręcznie)
- Czy masz plan B na awarię KSeF? (Fallback queue, monitoring, alerty)
- Czy księgowa była przeszkolona z korekt w KSeF i obsługi statusów (Accepted / Rejected / Processing)?
Najczęstsze błędy w pierwszych miesiącach
- "Rejected — invalid GTU code" — produkty z branży medycznej, alkoholowej, IT mają wymagane kody GTU. Wpisz je w karcie produktu w ERP.
- "Rejected — invalid NIP format" — KSeF wymaga 10 cyfr bez myślników. Stare karty klientów często mają "522-300-13-91".
- "Timeout" — KSeF czasem zwraca timeout przy peak hours. Implementacja retry z exponential backoff (3 próby, 2s/8s/30s).
- Faktura wystawiona przez 2 systemy jednocześnie (Shopify wysłał i Subiekt też → duplikat). Lock na zamówieniu w bazie middleware.
- Brak archiwizacji UID po stronie klienta — przy reklamacjach księgowa nie wie który UID był na pierwotnej fakturze.
Co dalej — od jutra
Jeśli jeszcze nie zacząłeś — pierwsze 3 kroki: (1) Zadzwoń do dostawcy ERP i zapytaj o moduł KSeF — wersja, cena, dostępność. (2) Sprawdź w bazie klientów ile pozycji ma niepełne dane (NIP/kraj/kod). (3) Policz ile masz źródeł wystawiających faktury — jeśli więcej niż 2, rozważ hub-and-spoke zamiast 4 osobnych integracji.
FAQ — najczęstsze pytania
Czy mogę wystawiać faktury bez KSeF jeśli jestem zwolniony z VAT?
Do 1 kwietnia 2026 — tak. Po tej dacie KSeF jest obowiązkowy także dla podatników zwolnionych z VAT (do 200k obrotu). Dobrowolnie można wpiąć się wcześniej.
Co jeśli klient B2B nie ma konta w KSeF?
Każda firma B2B musi mieć dostęp do KSeF (czytelnik) niezależnie od tego czy wystawia faktury. Jeśli klient nie ma — i tak wystawiasz w KSeF, klient zaloguje się przez e-Urząd żeby pobrać.
Czy faktura w KSeF zastępuje fakturę PDF wysłaną mailem?
Prawnie — tak, faktura KSeF jest jedynym ważnym dokumentem. Biznesowo — większość firm dalej wysyła PDF mailem dla wygody klienta (link do KSeF + załącznik PDF jako kopia).
Ile czasu trwa typowe wdrożenie hub-and-spoke (3 źródła faktur)?
2–3 tygodnie. Tydzień 1: audyt + mapping danych + setup n8n + tokeny KSeF. Tydzień 2: integracja źródeł + testy na środowisku ksef-test. Tydzień 3 (opcjonalny): tuning + szkolenie księgowej + go-live z monitoringiem.
Co z fakturami zaliczkowymi?
Faktury zaliczkowe mają osobny typ w formacie FA(2) (kod "ZAL"). Po finalnym rozliczeniu wystawia się fakturę końcową z odwołaniem do UID zaliczki — KSeF łączy je w jeden flow.
Jakie kary za błędną fakturę w KSeF?
Za nieumyślny błąd (zły NIP, brak GTU) — brak kary, wystawiasz korektę. Za świadome niewystawienie faktury obowiązkowo w KSeF — do 100% wartości VAT. Za powtarzające się problemy — możliwa blokada konta bankowego (Sankcja Sił).
Czy mogę testować KSeF przed wdrożeniem na produkcji?
Tak — środowisko ksef-test.mf.gov.pl ma osobny token i pełną funkcjonalność produkcyjnej. Każde wdrożenie powinno przejść 7-dniowe testy na sandbox przed go-live.