Integracja z KSeF: jak wybrać swoją drogę
Nie ma jednej „integracji z KSeF”. Jeśli wystawiasz faktury w polskim programie do faktur, KSeF masz już w środku i wystarczy go włączyć. Jeśli sprzedajesz przez polską platformę e-commerce, ona ma własny moduł. Jeśli rozliczasz płatności przez Stripe, potrzebujesz mostu i dopiero tu zaczyna się nasza rola. Jeśli piszesz własne oprogramowanie, idziesz prosto do API. A jeśli wystawiasz kilka faktur miesięcznie ręcznie, wystarczy darmowa rządowa Aplikacja Podatnika.
Ta strona ma jedno zadanie: postawić Cię przed właściwymi drzwiami, zanim stracisz tydzień na rozwiązywanie problemu, którego nie masz. Najpierw krótka tabela, potem po akapicie na każdą drogę.
| Czym dziś wystawiasz faktury | Co zrobić |
|---|---|
| Fakturownia, inFakt, wFirma, iFirma, Comarch, Symfonia | Włącz KSeF w ustawieniach programu. Nic nie integrujesz. |
| BaseLinker, Allegro, idoSell, Shoper | Użyj modułu KSeF swojej platformy. |
| Stripe (Billing, Checkout, subskrypcje) | Potrzebujesz mostu ze Stripe'a do KSeF. |
| Własne oprogramowanie | Integrujesz się bezpośrednio z API KSeF. |
| Kilka faktur miesięcznie, ręcznie | Aplikacja Podatnika, za darmo. |
Wystawiasz faktury w polskim programie do faktur
Fakturownia, inFakt, wFirma, iFirma, Comarch, Symfonia i cała reszta polskich programów księgowych mają KSeF wbudowany od dawna, bo musiały. Obowiązek objął ich klientów 1 lutego i 1 kwietnia 2026 r. Nie integrujesz więc niczego. Wchodzisz w ustawienia, wklejasz token KSeF albo wgrywasz certyfikat i od tej pory faktury lecą do systemu.
W usługach chmurowych, czyli w Fakturowni, inFakcie, wFirmie i iFirmie, KSeF jest zwykle bez dopłaty, w każdym planie. W systemach ERP bywa inaczej: Comarch Optima wprowadził za KSeF osobną opłatę od 1 sierpnia 2026 r., a Symfonia liczy za niego rocznie. Sprawdź własny cennik, ale nie kupuj drugiego narzędzia po to, żeby zrobić coś, co Twój program już umie.
To jest odpowiedź dla większości osób, które w ogóle zadają pytanie o integrację z KSeF. My nic tu nie wnosimy i nie ma sensu udawać, że jest inaczej.
Sprzedajesz przez polską platformę e-commerce
BaseLinker, Allegro, idoSell i Shoper wypuściły własne moduły KSeF w pierwszym kwartale 2026 r., pod ten sam obowiązek. Płatności idą przez Przelewy24 albo PayU, faktury powstają w panelu platformy, i tam też jest przełącznik do KSeF. Włącz go u siebie i sprawdź na pierwszym zamówieniu.
Nasze narzędzie nie ma tu czego szukać. Nie czyta zamówień z marketplace'ów, tylko faktury ze Stripe'a.
Rozliczasz płatności przez Stripe
Tu zaczyna się luka. Stripe wystawia i finalizuje faktury, ale o polskim KSeF nie wie nic: nie zna
schematu FA(3), nie zna numeru KSeF, nie odbierze UPO. Potrzebujesz czegoś
pomiędzy. Czegoś, co nasłuchuje zdarzenia invoice.finalized, buduje z faktury XML w FA(3),
uwierzytelnia się w KSeF, szyfruje dokument i odbiera numer.
Dokładnie to robi KSeF Kit i dokładnie na tym się kończy. Powiedzmy wprost, czego nie robi: to nie jest program do fakturowania. Nie wystawisz w nim faktury ręcznie, nie wprowadzisz sprzedaży gotówkowej, nie wpiszesz kosztów. Bez konta Stripe nie ma z niego żadnego pożytku. Jeśli szukasz programu do faktur, wróć do pierwszej drogi.
Cała mechanika, razem z miejscami, w których ta droga najczęściej pęka, jest w integracji Stripe z KSeF. Co trzeba zebrać po stronie Stripe'a, żeby faktura w ogóle przeszła walidację, opisujemy w danych klienta. Jeśli wystawiasz kilkanaście faktur miesięcznie, zmieścisz się w planie darmowym.
Piszesz własne oprogramowanie
KSeF ma publiczne, darmowe REST-owe API w wersji 2, a kontrakt produkcyjny jest zamrożony od 22 grudnia 2025 r., więc integracja napisana raz nie rozjeżdża się co miesiąc. Zakres pracy jest jednak większy, niż wygląda z opisu: uwierzytelnienie, sesja z własnym kluczem AES, budowa i walidacja FA(3), obsługa odrzuceń, korekty, przechowywanie UPO. Rozkładamy to na czynniki w API KSeF dla programistów.
Nie musisz zaczynać od zera. Publikujemy gem ksef na licencji Apache-2.0: czysty Ruby, bez Rails
i bez Stripe'a, sam protokół. Uwierzytelnianie tokenem i podpisem XAdES, szyfrowanie RSA-OAEP
i AES-256-CBC, sesje online i wsadowe, budowanie oraz walidacja FA(3) po schemacie XSD, parsowanie
UPO, kontrola sumy kontrolnej NIP-u i przeliczanie kwot po kursie NBP. Możesz go wziąć niezależnie
od tego, czy korzystasz z naszej aplikacji. Jeśli wolisz uruchomić całość u siebie, opisujemy to
w samodzielnym hostingu.
Wystawiasz kilka faktur miesięcznie ręcznie
Aplikacja Podatnika KSeF to darmowa aplikacja Ministerstwa Finansów, działająca w przeglądarce, bez
instalacji i bez umowy. Wystawisz w niej fakturę, odbierzesz te, które przyszły do Ciebie, pobierzesz
UPO i wygenerujesz token dla innych programów. Przy kilku fakturach miesięcznie to naprawdę dobra
odpowiedź i nikt nie musi Ci sprzedawać nic więcej. Adresy: ap.ksef.mf.gov.pl dla produkcji,
ap-test.ksef.mf.gov.pl dla środowiska testowego. Co dokładnie w niej zrobisz, a gdzie kończy się
jej sensowność, opisujemy w Aplikacji Podatnika.
Granica jest prosta. Ręczne przepisywanie działa do momentu, w którym faktur robi się kilkadziesiąt miesięcznie albo zaczynają powstawać w tle, bez Twojego udziału. Wtedy przepisywanie staje się osobną pracą, którą ktoś musi wykonywać codziennie.
Co jest wspólne dla każdej drogi
Niezależnie od tego, który wiersz tabeli jest Twój, cztery rzeczy wyglądają tak samo, bo narzuca je sam system.
- Uwierzytelnienie. Potrzebujesz tokena KSeF albo certyfikatu. Token wklejasz raz i ruszasz od razu, certyfikat jest darmowy, ważny dwa lata i to on jest kierunkiem docelowym. Różnice i pułapkę przejścia z jednego na drugie rozkładamy w token czy certyfikat.
- Środowiska. Najpierw TEST, dopiero potem PROD. TEST działa na fikcyjnych tożsamościach, więc nic tam nie zepsujesz, a faktura wysłana na PROD jest wystawiona i nie da się jej cofnąć. Zobacz środowisko testowe KSeF.
- Format FA(3). Faktura jedzie jako XML w schemacie FA(3), obowiązującym od 1 lutego 2026 r. FA(2) nie przechodzi już walidacji, więc każdy poradnik i każda biblioteka, które nadal go opisują, opisują coś, czego KSeF nie przyjmie. Pojęcia zbieramy w fakturze ustrukturyzowanej.
- Numer KSeF i UPO w drodze powrotnej. Integracja nie kończy się na wysyłce. Wraca numer KSeF i UPO, czyli dowód, że faktura została wystawiona. Jedno i drugie trzeba zapisać i przechować.
Dalej dochodzą rzeczy zależne od tego, co sprzedajesz: kod QR na dokumencie przekazywanym poza systemem, korekta KOR zamiast anulowania, faktura eksportowa przy klientach zagranicznych i kurs NBP przy fakturach w walucie obcej. Kogo i od kiedy obowiązek dotyczy, sprawdzisz w KSeF obowiązkowy 2026, a jeśli prowadzisz jednoosobową działalność, zacznij od KSeF dla JDG.
Zapier i Make: dlaczego tej integracji nie ma
Pytanie wraca regularnie, więc odpowiedzmy raz. W katalogu Zapiera nie ma aplikacji KSeF. W Make również jej nie ma. To nie jest luka, którą ktoś za chwilę zapełni.
Powód jest techniczny. Żeby wysłać jedną fakturę, trzeba pobrać challenge z API, podpisać go kluczem
z certyfikatu .p12 podpisem XAdES albo zaszyfrować token algorytmem RSA-OAEP, wygenerować na tę
jedną sesję klucz AES-256, opakować go kluczem publicznym Ministerstwa Finansów, zaszyfrować XML
w AES-256-CBC i zadeklarować naraz cztery skróty oraz rozmiary. Węzeł HTTP w narzędziu no-code nie
robi żadnej z tych rzeczy, bo nie ma dostępu do materiału kryptograficznego ani miejsca, w którym
mógłby go trzymać. Nie chodzi o to, że nikt się za to nie zabrał.
Dostawcy programów do faktur też się do tego nie palą. Fakturownia ma zgłoszenie „integracja przez Zapier” otwarte od listopada 2016 r., ze 109 głosami, i w lutym 2025 r. odpowiedziała, że natywnej integracji z Zapierem ani z Make nie zrobi, powołując się na bezpieczeństwo i ograniczenia po stronie samego Zapiera. Najbliżej no-code jest inFakt, który ma aplikację w Zapierze, tyle że to on wystawia fakturę, a KSeF-em zajmuje się już po swojej stronie. No-code potrafi więc dowieźć dane do programu do faktur, ale nie do KSeF.
Jeśli masz Stripe'a i szukałeś właśnie „Zapiera do KSeF”, tym brakującym elementem jest most ze Stripe'a do KSeF, czyli dokładnie ta część, której no-code zrobić nie może.