Stripe a KSeF 2026 — jak wystawiać faktury zgodne z polskim prawem (3 ścieżki)

Dariusz Zaktualizowano: 08 maj 2026 Czas czytania: ~5 min

Stripe to wygodny procesor płatności, ale ma jedną słabość, której wielu polskich przedsiębiorców nie widzi do momentu pierwszej kontroli — nie wystawia faktur zgodnych z polskim prawem. PDF, który Stripe generuje po płatności, to dokument księgowy w stylu anglosaskim: brakuje tam NIP-u w naszym formacie, polskich stawek VAT (ZW, NP), numeracji zgodnej z ustawą i — co najważniejsze od 2026 roku — formatu XML FA(2) wymaganego przez KSeF.

Od 1 lutego 2026 r. KSeF jest obowiązkowy dla największych firm (sprzedaż w 2024 powyżej 200 mln zł brutto). Od 1 kwietnia 2026 r. obowiązek obejmuje praktycznie wszystkich pozostałych przedsiębiorców — z drobnym wyjątkiem dla mikropodatników, których miesięczna sprzedaż nie przekracza 10 000 zł brutto (mogą czekać do końca 2026 r.). Jeśli przyjmujesz płatności przez Stripe — Checkout, Payment Links, subskrypcje, API — masz maksymalnie kilka tygodni na ułożenie procesu. Ten poradnik pokazuje trzy realne ścieżki, którymi przepuścisz Stripe przez polski reżim podatkowy bez nadgodzin księgowej.

Deadline: 1 kwietnia 2026 r. Po tej dacie faktura wystawiona poza KSeF (papier, PDF z e-maila, dokument z konta Stripe) nie istnieje w sensie podatkowym — nie da prawa do odliczenia VAT i naraża wystawcę na sankcje. Najpóźniejszy moment na konfigurację to luty/marzec 2026, żeby przetestować pełen przepływ na realnych płatnościach.

Dlaczego Stripe nie wystawia faktur dla KSeF (i nie wystawi)

Stripe ma wbudowany moduł "Invoices", który generuje PDF-y dla klientów po płatności. To wygląda jak faktura — i czasami nią jest, ale nie w polskim systemie prawnym. Cztery konkretne braki:

  • NIP nabywcy w polskim formacie — Stripe zbiera VAT ID w jednolitym formacie unijnym (np. PL1234567890), ale nie w wymaganym przez polską ustawę o VAT zapisie 10-cyfrowym z myślnikami i nie waliduje go przez Białą Listę.
  • Brak polskich stawek VAT — w Stripe ustawiasz "23% VAT" jako standardową stawkę, ale system nie zna stawek ZW (zwolniony przedmiotowo), NP (nie podlega), ani 0% dla WDT. Każda sprzedaż usługi cyfrowej do polskiego klienta na ryczałcie zwolnionym z VAT to ryzyko błędnej stawki na PDF-ie.
  • Numeracja — polskie przepisy wymagają ciągłej, niepowtarzalnej numeracji. Stripe numeruje faktury w obrębie konta, ale nie gwarantuje ciągłości w polskim sensie ustawowym (np. miesięczny prefiks).
  • Brak XML FA(2) i komunikacji z KSeF — to jest kluczowe. KSeF nie przyjmuje PDF-ów. Wymaga ustrukturyzowanego pliku XML w schemacie FA(2), wysłanego przez API Ministerstwa Finansów po uwierzytelnieniu tokenem podpisu. Stripe nie ma i nie planuje takiej integracji — to byłoby narzędzie tylko dla rynku polskiego.

Stripe oficjalnie traktuje swoje PDF-y jako "payment confirmations" — potwierdzenia, nie dokumenty podatkowe. Jeśli kiedykolwiek dzwoniłeś do Stripe Support z prośbą o "fakturę z polskim NIP-em" — wiesz, że odpowiedź zawsze brzmi: użyj zewnętrznego narzędzia.

Druga warstwa problemu: prowizje Stripe to import usług

Zanim przejdziemy do wystawiania faktur sprzedaży, ważna sprawa po stronie kosztów. Stripe Payments ma siedzibę w Irlandii (Stripe Payments Europe Ltd., Dublin). Każda prowizja, którą pobiera od Twoich transakcji, to z punktu widzenia polskiego VAT import usług, rozliczany przez mechanizm odwrotnego obciążenia (reverse charge).

Co to znaczy w praktyce:

  • Czynny podatnik VAT — wykazujesz podatek należny i naliczony jednocześnie (transakcja neutralna), ale zapis w JPK_V7 musi być. Stripe pośrednictwo finansowe to zwolnione z VAT (art. 43 ust. 1 pkt 40 ustawy o VAT). Inne usługi (np. Stripe Atlas, Stripe Tax) — stawka 23%.
  • Podatnik zwolniony podmiotowo (limit 200 tys. zł rocznie) — tu jest pułapka. Musisz zarejestrować się jako VAT-UE, a podatek od importu usług rozliczyć przez deklarację VAT-9M. Bez prawa do odliczenia. Płacisz realny VAT od prowizji Stripe.
Praktyka: w temacie "Stripe a import usług stawka VAT" na forum.gofin.pl wątek nr 1288270 pokazuje konkretny przypadek nievatowca, który rozliczał prowizje Stripe z błędną stawką 23%, podczas gdy pośrednictwo finansowe jest zwolnione (art. 43 ust. 1 pkt 40). Sprawdź klasyfikację każdej pozycji na fakturze od Stripe — niekiedy jest tam też "Stripe Tax" lub "Atlas", które już zwolnione nie są.

To jest temat, który zostawiamy księgowej, ale warto mieć go w tyle głowy, gdy konfigurujesz integrację — dobry program księgowy (zwłaszcza wFirma i narzędzia gotowe na KSeF) potrafi zaksięgować taką prowizję automatycznie po wczytaniu wyciągu ze Stripe.

Trzy ścieżki: jak wystawiać faktury KSeF dla płatności Stripe

Architektura jest zawsze taka sama: Stripe wysyła webhook → coś (lub ktoś) tworzy fakturę w polskim programie księgowym → ten program wysyła XML do KSeF. Różni się to, kto siedzi w środku.

Ścieżka 1: Bridge zewnętrzny (Stripto, Striplo, Billio)

Najszybsze wdrożenie. Bridge to małe SaaS-y, które łączą Stripe z polskim programem księgowym i działają jako tłumacz między API. Konfiguracja: 15 minut. Klucz API ze Stripe → klucz API z Fakturowni (lub inFakt, lub wFirma) → mapowanie pól (NIP, opis usługi, stawka VAT) → gotowe.

Trzy najczęściej spotykane na rynku polskim:

  • Stripto — najstarszy, integruje Fakturownię, inFakt, wFirma, iFirma. Ceny od 19 zł/mies. (plan Mini do 25 faktur), 39 zł (Starter do 100), 99 zł (Pro do 1000).
  • Striplo — nowszy, focus na Fakturownię i inFakt, wspiera KSeF natywnie. Pozwala wybrać tryb automatyczny (faktura od razu) lub półautomatyczny (z akceptacją).
  • Billio — Stripe + Fakturownia/inFakt + KSeF, prosty model cenowy.

Każda z tych usług nasłuchuje webhooka checkout.session.completed, invoice.paid lub charge.succeeded i woła API programu księgowego. Faktura ląduje w docelowym systemie, który (jeśli ma włączoną integrację z KSeF) wysyła ją do MF i odbiera numer KSeF + UPO (Urzędowe Poświadczenie Odbioru).

Dla kogo: jednoosobowy biznes online, SaaS, kurs, sklep z 50–500 transakcji/mies. — szkoda Twojego czasu na pisanie webhooka.

Pułapki: bridge nie zna kontekstu Twojej firmy. Jeśli sprzedajesz w wielu walutach, masz mix usług zwolnionych i opodatkowanych, albo część klientów to firmy z UE (WDT, VAT-OSS) — sprawdź dokładnie mapowanie. Część bridge'y nie obsługuje poprawnie odwrotnego obciążenia dla klientów spoza Polski.

Ścieżka 2: Natywna integracja programu księgowego ze Stripe

Niektóre programy księgowe mają wbudowaną integrację Stripe — bez pośrednika. To zwykle taniej, bardziej niezawodnie i daje lepszą kontrolę nad mapowaniem.

Program Jak łączy się ze Stripe KSeF Uwagi
Fakturownia Natywna integracja przez API Stripe + automatyczny webhook Tak, wbudowane wysyłanie XML FA(2) Po połączeniu Fakturownia sama tworzy webhook w Stripe; konfiguracja w 5 minut. Wybierasz typ dokumentu (FV / paragon / proforma) i tryb (firma / osoba prywatna)
inFakt Brak natywnej; przez webhook + REST API (samodzielnie lub bridge) Tak, wbudowane KSeF API REST/JSON jest dobrze udokumentowane. Programista postawi to w 1 dzień
wFirma Przez API + bridge (Stripto), brak natywnej Tak, automatyczne wysyłanie do KSeF z poziomu API po włączeniu opcji w ustawieniach Pełny stack księgowy (KPIR, ZUS, JPK) — najlepsza ścieżka jeśli chcesz wszystko w jednym miejscu
NATYWNA STRIPE Najmniej tarcia

Fakturownia — jedyny program z gotową integracją Stripe out-of-the-box

Po połączeniu konta Stripe (klucz API live + test) Fakturownia sama dodaje webhook i od następnej płatności faktury wystawiają się automatycznie. Włączasz KSeF (token z e-Urzędu Skarbowego, jednorazowo) i każda faktura jedzie do KSeF równo z odbiorem płatności. Konfiguracja: 10 minut.

  • Tryb testowy (test API key) — przetestuj cały przepływ przed produkcją
  • Faktura VAT dla firm + paragon dla osób prywatnych (auto-detekcja na podstawie NIP)
  • Obsługa subskrypcji — każde odnowienie = nowa faktura, automatycznie
Sprawdź Fakturownię →

Drugi naturalny wybór, jeśli zależy Ci na pełnym pakiecie księgowym (KPiR, deklaracje, ZUS, JPK) zamiast samego fakturowania:

wFirma — pełny stack: faktury, księgowość, KSeF, ZUS

Jeśli prowadzisz JDG i chcesz mieć Stripe, fakturowanie, KPiR i deklaracje w jednym miejscu — wFirma to najlepiej zoptymalizowany stack na polskim rynku. KSeF wbudowany, faktury wysyłane automatycznie po wystawieniu (włączasz w ustawieniach integracji). Stripe podłączasz przez bridge (Stripto) lub własny webhook do API wFirmy.

Wypróbuj wFirmę →

Dla kogo: firmy z większym wolumenem (1000+ transakcji/mies.), wymagające pełnej kontroli nad mapowaniem, lub działające w niszy gdzie bridge nie ogarnia (np. mix usług zwolnionych i 23%, sprzedaż międzynarodowa).

Ścieżka 3: Manualnie z eksportu CSV

Najprostsza, najwolniejsza, najbardziej narażona na ludzkie błędy — ale czasami sensowna. Eksportujesz raz w miesiącu transakcje ze Stripe Dashboard (Format: CSV), wczytujesz do programu księgowego (Fakturownia, inFakt i wFirma mają importery CSV) i wystawiasz faktury wsadem. KSeF wysyła je hurtem.

Dla kogo:

  • Mikropodatnik z miesięczną sprzedażą poniżej 10 000 zł brutto, który do końca 2026 r. nie musi być na KSeF — i woli papierową/PDF fakturę. Po przekroczeniu progu lub od stycznia 2027 r. musisz przejść na ścieżkę 1 lub 2.
  • Sprzedaż jednorazowa lub bardzo nieregularna (kilka transakcji miesięcznie).
  • Specyficzny przypadek: każda transakcja wymaga indywidualnej weryfikacji (np. sprzedaż usług doradczych, gdzie zakres usługi i stawka VAT ustalasz po fakcie).

Wada: w 2026 r. opóźnienie między płatnością Stripe a wystawieniem faktury KSeF nie powinno przekraczać terminu ustawowego (15. dnia miesiąca następującego po sprzedaży lub do 7 dni od otrzymania zaliczki). Manualne podejście wymaga dyscypliny.

Klienci spoza UE — osobny scenariusz

Stripe spina płatności globalne. Jeśli sprzedajesz B2B do firmy w USA, Wielkiej Brytanii, Szwajcarii lub innym kraju trzecim — to nie jest sprzedaż krajowa, nie podlega KSeF w sensie ustawowym (faktura wystawiana dla niepolskiego nabywcy nie wymaga formatu FA(2)), ale wymaga prawidłowej kwalifikacji jako eksport usług (stawka NP — nie podlega) oraz wpisu w JPK_V7.

To jest zupełnie osobny temat — szczegółowo opisaliśmy go w poradniku KSeF a faktury zagraniczne. Krótko: faktura dla US/UK klienta nie idzie do KSeF, ale w polskiej księdze przychodów musi się znaleźć (ze stawką NP i adnotacją "reverse charge" jeśli B2B w UE, lub bez VAT dla B2C poza UE z uwzględnieniem pakietu VAT-OSS przy usługach cyfrowych).

Token KSeF — jak go zdobyć krok po kroku

Niezależnie którą ścieżkę wybierzesz, fundamentem jest token KSeF. To 32-znakowy ciąg, który uwierzytelnia Twój program księgowy w API Ministerstwa Finansów. Bez niego żadna faktura nie wyjdzie z systemu do KSeF.

  1. Zaloguj się do e-Urząd Skarbowy (e-US) przez Profil Zaufany lub kwalifikowany podpis elektroniczny. Konto musi należeć do osoby uprawnionej do reprezentowania firmy (właściciel JDG, członek zarządu sp. z o.o., prokurent).
  2. Wybierz "KSeF" → "Tokeny" → "Generuj token". System poprosi o nazwę (np. "Fakturownia produkcja") i zakres uprawnień. Dla pełnej funkcjonalności wybierz "wystawianie i odbieranie faktur".
  3. Skopiuj token natychmiast. System pokazuje go raz, nie zobaczysz go drugi raz. Wklej do programu księgowego (Fakturownia → Ustawienia → KSeF; wFirma → Ustawienia → Integracje → KSeF; inFakt → Konto → KSeF).
  4. Wykonaj test wystawienia. Każdy program ma "tryb testowy KSeF" — faktura idzie do środowiska test MF, nie produkcyjnego. Sprawdź czy wraca numer KSeF (format: NIP-rok-miesiąc-dzień-XXXXXXXX).
  5. Backup tokena. Zapisz token w menedżerze haseł. Jeśli zgubisz — musisz wygenerować nowy i przekonfigurować integracje.

Token ma datę ważności (domyślnie 2 lata, ale można skrócić). Po wygaśnięciu faktury nie wyjdą — pojawi się błąd 401 z API. Ustaw przypomnienie w kalendarzu na 30 dni przed.

Subskrypcje Stripe a KSeF — pułapka odnowień

Stripe Subscriptions to mechanizm cyklicznego pobierania płatności. Każde odnowienie generuje webhook invoice.paid i to powinno wywołać wystawienie nowej faktury. Tu czyhają trzy częste błędy:

  1. Pierwsza faktura jest wystawiona przy zakupie, ale odnowienia idą w pustkę. Sprawdź, czy bridge/integracja nasłuchuje invoice.paid a nie tylko checkout.session.completed. To dwa różne eventy.
  2. Upgrade/downgrade w trakcie okresu rozliczeniowego. Stripe generuje proration credit — to nie jest sprzedaż w polskim sensie, ale niektóre integracje próbują wystawić korektę. Konsultuj z księgową, jak to ujmować.
  3. Failed payment + retry. Stripe próbuje pobrać płatność wielokrotnie. Faktura wystaw się dopiero przy invoice.paid, nie przy próbach. Niektóre konfiguracje generują "fakturę proforma" przy każdej próbie — to nie jest dokument podatkowy, ale śmieci w bazie.

Checklist przed deadlinem 1.04.2026

Lista kontrolna do odhaczenia, najlepiej do końca lutego 2026:

  1. Token KSeF — pobierz z e-Urzędu Skarbowego (e-US → Profil zaufany → KSeF → Generuj token). Pasuje tylko jednej osobie z konta firmy.
  2. Wybierz program księgowy z aktywną integracją KSeF — Fakturownia (jedyna z natywną integracją Stripe), wFirma (najpełniejszy stack), inFakt (dobre API).
  3. Wybierz ścieżkę połączenia ze Stripe: bridge (Stripto/Striplo/Billio) jeśli chcesz szybko, natywna jeśli używasz Fakturowni, custom webhook jeśli masz programistę.
  4. Skonfiguruj test mode — Stripe pozwala na pełen test z testowymi kluczami. Wystaw kilkanaście testowych faktur, sprawdź czy wpadają do KSeF (po włączeniu opcji "test KSeF" w programie).
  5. Sprawdź mapowanie pól: NIP nabywcy (wymagany dla B2B), opis usługi (powinien być merytoryczny, nie "Stripe charge #123"), stawka VAT (zwykle 23%, ale dla zwolnionych przedmiotowo ZW), waluta (PLN dla krajowych, kurs NBP z dnia poprzedniego dla walut obcych).
  6. Ustal proces dla klientów spoza UE — oddzielny szablon faktury (NP, "reverse charge"), nie idzie do KSeF.
  7. Rozliczenie prowizji Stripe — ustal z księgową, czy Stripe Payments to zwolnione (pośrednictwo finansowe), a Stripe Tax/Atlas to 23% (import usług). Jeśli jesteś zwolniony podmiotowo — rejestracja VAT-UE i comiesięczne VAT-9M.
  8. Rezerwowy plan B — jeśli KSeF API padnie (już się zdarzało w testach), faktury można wystawić w trybie offline z 7-dniowym oknem na dosłanie. Sprawdź, czy Twój program księgowy obsługuje ten tryb.

VAT-OSS i sprzedaż B2C w UE — jeszcze jedna warstwa

Jeśli sprzedajesz przez Stripe usługi cyfrowe (ebooki, kursy, SaaS) klientom prywatnym (B2C) w innych krajach UE, dotyczy Cię procedura VAT-OSS (One Stop Shop). To znaczy, że VAT od sprzedaży należy się krajowi nabywcy, nie Polsce. Stripe nie wie nic o VAT-OSS — to znowu Twoja odpowiedzialność.

Praktyka:

  • W Stripe Checkout włącz "Stripe Tax" (płatne, ale automatyzuje wyliczanie stawki VAT per kraj UE) lub ręcznie zbieraj kraj nabywcy.
  • Faktura wystawiona w Twoim programie księgowym musi mieć stawkę VAT kraju nabywcy (np. 25% dla Niemiec, 20% dla Francji), a nie 23% PL.
  • Te faktury nie idą do KSeF (KSeF dotyczy tylko transakcji krajowych), ale muszą być wykazane w deklaracji VAT-OSS, składanej kwartalnie.
  • Większość bridge'y (Stripto, Striplo) ma podstawową obsługę VAT-OSS, ale konfigurację robisz ręcznie. Dla skomplikowanych przypadków rozważ Stripe Tax + dedykowany OSS-handler.

Dla większości polskich freelancerów i twórców kursów sprzedających głównie do polskich klientów to nie jest problem — ale jeśli masz 30%+ sprzedaży z innych krajów UE, planuj VAT-OSS w tym samym sprincie co KSeF.

Co najczęściej idzie źle (i jak nie wpaść)

Brak NIP-u w Stripe Checkout. Domyślny formularz Stripe Checkout nie zbiera NIP-u. Trzeba ręcznie dodać custom field z walidacją. Bez tego każda faktura ląduje jako "osoba prywatna" → paragon zamiast FV. Dla B2B SaaS to kompletny falstart.

Stripe pobiera od razu, faktura wystawia się dzień później. Niektóre bridge'e działają z opóźnieniem (15 min — 24h). To nie zawsze jest problem, ale zwróć uwagę na datę sprzedaży na fakturze (powinna być datą płatności, nie datą wystawienia) — KSeF rozróżnia te pola.

Klient płaci kartą zagraniczną w PLN. Stripe pobiera prowizję wyższą (cross-border fee), ale to nie wpływa na fakturę dla klienta. Faktura jest na pełną kwotę PLN. Prowizja Stripe to osobny koszt (import usług, reverse charge).

Disputes i refundy. Jeśli klient zwróci pieniądze przez Stripe, faktura już została wystawiona i wysłana do KSeF. Musisz wystawić korektę (faktura korygująca) — wszystkie programy z KSeF to obsługują, ale zwróć uwagę, że bridge nie zawsze nasłuchuje webhooka charge.refunded. Możesz zostać z fakturą bez korekty.

Werdykt: którą ścieżkę wybrać

Bez owijania w bawełnę:

  • SaaS, kurs online, e-book, do 500 transakcji/mies., chcesz tylko fakturowanie → Fakturownia + Stripe (natywna integracja). Konfiguracja w 10 minut, KSeF wbudowany, najmniej ruchomych części.
  • JDG na pełnym stacku księgowym (KPiR, ZUS, deklaracje), wszystko w jednym miejscu → wFirma + Stripto (bridge). Najpełniejszy stack na rynku, automatyczne KSeF, Stripto za 19–99 zł/mies. dokłada warstwę webhooków.
  • Programista w zespole, niestandardowy przepływ, mix walut/usług/krajów → inFakt API + własny webhook. Najwięcej kontroli, najlepiej udokumentowane API.
  • Mikropodatnik <10 000 zł/mies., niska liczba transakcji, do końca 2026 r. → ścieżka 3 (manualnie + CSV). Ale po 1 stycznia 2027 r. musisz przejść na ścieżkę 1 lub 2.

Na rynku jest też kilka rozwiązań typu Stripebridge, KSeFSync — różne hybrydy bridge+własna platforma. Sprawdziliśmy je pobieżnie i nie odbiegają funkcjonalnie od Stripto/Striplo, ale zostawiamy je do osobnego porównania.

Najważniejsze: nie zostawiaj tego na marzec. Każdy bridge i każda integracja KSeF wymagają realnego testu na produkcji (z drobnymi kwotami), a problemy zawsze wychodzą tam, gdzie się ich nie spodziewasz. Jeśli na razie nie masz nic — zacznij od najprostszej ścieżki: Fakturownia z natywną integracją Stripe i token KSeF z e-US.

Jeśli planujesz przy okazji robić porządek z księgowością — sprawdź ranking programów do fakturowania online 2026, gdzie porównujemy wszystkie wymienione narzędzia plus kilka tańszych alternatyw. A jeśli sprzedajesz głównie do klientów spoza Polski — nasz osobny poradnik KSeF a faktury zagraniczne wyjaśnia, kiedy faktura w ogóle nie idzie do KSeF.

O autorze

Komentarze

Brak komentarzy. Bądź pierwszy, który podzieli się swoimi przemyśleniami!

Zostaw komentarz