Excel przetrwał w polskich firmach dłużej niż niejeden system ERP. Do końca marca 2026 roku broniło go proste założenie: faktura to dokument, który trzeba wydrukować albo wysłać PDF-em, a arkusz robi jedno i drugie.
Od 1 kwietnia 2026 r. obowiązek wystawiania faktur w KSeF objął wszystkich czynnych podatników VAT. Jedyna furtka, która została, to przepis przejściowy dla najmniejszych: do 31 grudnia 2026 r. można fakturować poza KSeF, jeśli miesięczna wartość sprzedaży brutto udokumentowana takimi fakturami nie przekracza 10 000 zł (wyjaśnienia MF). To pięć miesięcy. Potem arkusz przestaje być opcją, a nie tylko złym nawykiem.
Ten tekst nie jest o tym, że Excel jest zły. Jest o tym, gdzie konkretnie pęka, kiedy podłączysz go do KSeF.
KSeF nie przyjmuje tabel, tylko XML w strukturze FA(3)
Faktura ustrukturyzowana ma definicję ustawową: to faktura wystawiona przy użyciu KSeF, której system nadał indywidualny numer identyfikujący (art. 2 pkt 32a ustawy o VAT). Oba warunki muszą być spełnione naraz. Plik, który nie trafił do KSeF, fakturą ustrukturyzowaną nie jest, nawet jeśli wygląda idealnie.
Do wszystkich faktur ustrukturyzowanych wystawianych od 1 lutego 2026 r. stosuje się strukturę FA(3) (broszura informacyjna MF). To hierarchiczny dokument XML z kilkuset polami, podzielony na bloki Naglowek, Podmiot1, Podmiot2 i Fa, z zagnieżdżonymi pozycjami, zamkniętymi słownikami wartości i sztywnymi regułami, które pole może wystąpić w jakim kontekście.
Arkusz to płaska tabela. Nie ma w nim zagnieżdżeń, nie ma typów, nie ma walidacji przeciwko XSD. Możesz oczywiście napisać makro, które składa XML ze stringów. Wtedy jednak nie masz już arkusza, tylko własny, nieutrzymywany parser, który musi nadążać za każdą zmianą schematu po stronie Ministerstwa Finansów.
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/">
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0">FA</KodFormularza>
Namespace i wersja schematu to pierwsze dwie linie, na których wykłada się ręcznie sklejany plik. KSeF sprawdza zgodność XML ze strukturą xsd w pełni automatycznie i odrzuca dokument bez możliwości poprawienia go po stronie systemu (Podręcznik KSeF 2.0, cz. II). Odrzucenie oznacza, że faktura nie została wystawiona.
Numeracja: pierwszy problem, który wysadza arkusz
Art. 106e ust. 1 pkt 2 ustawy o VAT wymaga kolejnego numeru nadanego w ramach jednej lub więcej serii, który jednoznacznie identyfikuje fakturę. Numer KSeF tego obowiązku nie zastępuje, bo jest nadawany przez system po przyjęciu dokumentu, a nie przez Ciebie w momencie wystawiania.
W arkuszu numer powstaje formułą typu =MAX(A:A)+1. Dopóki plik ma jednego użytkownika, działa. Problem zaczyna się przy dwóch osobach w tym samym pliku na dysku sieciowym: obie widzą tę samą wartość maksymalną, obie dostają ten sam numer, jedna wersja pliku nadpisuje drugą i pojawia się „kopia w konflikcie”. W programie do fakturowania nadanie numeru jest operacją atomową: rekord licznika jest blokowany na czas transakcji, więc dwa równoległe wystawienia fizycznie nie mogą dostać tego samego numeru. Arkusz nie ma takiego mechanizmu i mieć go nie będzie.
Konkretny przypadek z życia biura rachunkowego: klient wystawia 12 faktur miesięcznie z pliku na wspólnym dysku. W maju księgowa i właściciel pracowali równolegle. Efekt: dwie faktury z numerem FV/2026/05/007 i konieczność wystawienia korekty do dokumentu, który już poszedł do KSeF.
Excel po cichu psuje dane, których KSeF nie wybacza
Arkusz jest zaprojektowany tak, żeby zgadywać intencje użytkownika. Przy danych fiskalnych to wada, nie zaleta.
NIP jako liczba. Wpisany bez apostrofu traci wiodące zera, a przy 10 cyfrach potrafi wskoczyć w notację naukową (
5,26E+09). NIP nabywcy musi trafić do polaNIP, bo tylko wtedy faktura zostanie prawidłowo udostępniona nabywcy w KSeF.Daty. Autokonwersja formatu przy imporcie CSV zamienia
2026-08-04na04.08.2026,08/04/2026albo liczbę porządkową. FA(3) oczekuje formatu ISO.Zaokrąglenia. Sumowanie kwot w formacie zmiennoprzecinkowym daje odchylenia na groszach. KSeF sprawdza spójność sum, więc różnica grosza między sumą pozycji a wartością zbiorczą kończy się odrzuceniem.
Autokorekta. Kody towarów, indeksy i numery rachunków bywają zamieniane na daty albo formuły.
Wykonywalne komórki. To nie jest teoria: wartość zaczynająca się od
=,+,-lub@w pliku CSV jest przez Excela traktowana jak formuła. Dlatego przy eksporcie rejestrów w Biurko każda taka wartość dostaje prefiks apostrofu, zanim trafi do pliku. Arkusz z danymi kontrahentów pobrany z niezaufanego źródła to wektor ataku, a nie dokument księgowy.
Arkusz nie przechowa numeru KSeF, UPO ani statusu wysyłki
Wystawienie faktury w KSeF nie kończy się na wysłaniu pliku. Po przyjęciu dokumentu system nadaje numer KSeF i udostępnia Urzędowe Poświadczenie Odbioru. To UPO, a nie Twoja kopia XML, jest dowodem, że faktura została skutecznie wystawiona.
Do obsłużenia zostaje więc pełny cykl życia dokumentu: sesja, wysyłka, status pośredni, ponowienie po błędzie, pobranie UPO, weryfikacja podpisu na UPO, archiwizacja. Do tego tryby wyjątkowe: offline24 z obowiązkiem przesłania faktury najpóźniej w następnym dniu roboczym oraz tryb awaryjny z terminem 7 dni roboczych od zakończenia awarii. Każdy z nich ma własny termin, którego przekroczenie trzeba wykrywać.
Dochodzi jeszcze jedno: od 1 stycznia 2027 r. numer KSeF ma się pojawiać w tytule przelewu za fakturę. Numer, którego arkusz nie zapisał, nie trafi ani do przelewu, ani do rozliczenia płatności.
To jest maszyna stanów, a nie kolumna. Kolumna „wysłane TAK/NIE” wypełniana ręcznie przestaje być prawdziwa w drugim tygodniu.
Kiedy Excel nadal jest w porządku
Uczciwie: arkusz ma sensowne zastosowania obok KSeF, byle nie w roli rejestru sprzedaży.
Sprzedaż poniżej progu 10 000 zł miesięcznie do 31 grudnia 2026 r., o ile pilnujesz limitu. Uwaga: prawo do fakturowania poza KSeF tracisz począwszy od faktury, którą przekroczysz próg, a nie od kolejnego miesiąca.
Faktury konsumenckie, które nie są objęte obowiązkiem wysyłki do KSeF.
Cenniki, kalkulacje, symulacje marży, budżety. Tu Excel wygrywa z każdym systemem.
Analiza danych już wystawionych. Rejestr zakupu czy zestawienie sprzedaży wyeksportowane do XLSX i przekazane księgowej to normalny obieg pracy.
Jednorazowa migracja: uporządkowanie bazy kontrahentów i produktów w arkuszu przed przeniesieniem jej do systemu.
Zasada jest prosta: Excel jako wejście i wyjście, nie jako księga. Jeśli nie chcesz jeszcze płacić za oprogramowanie, Ministerstwo Finansów udostępnia bezpłatną Aplikację Podatnika KSeF w wersji webowej i mobilnej (szczegóły na ksef.podatki.gov.pl). Jest ograniczona, ale generuje poprawny XML i to jest w tej chwili minimum.
Lista kontrolna: zanim zamkniesz arkusz po raz ostatni
Sprawdź, czy w ogóle jesteś jeszcze na wyłączeniu: policz sprzedaż brutto z faktur za każdy miesiąc 2026 roku osobno.
Wyeksportuj bazę kontrahentów z arkusza i zweryfikuj NIP-y, zanim je zaimportujesz. Zwróć uwagę na wiodące zera i notację naukową.
Ustal jeden format numeracji na typ dokumentu i sprawdź, czy w bieżącym okresie nie ma duplikatów ani luk.
Zdecyduj, kto w firmie ma prawo wystawiać faktury. W arkuszu to pytanie nie istniało, w KSeF uprawnienia są weryfikowane przy każdej wysyłce.
Załóż uwierzytelnienie do KSeF dla firmy i przetestuj wysyłkę na środowisku demo, zanim zrobisz to na produkcji.
Zaplanuj archiwizację UPO razem z XML. Wizualizacja PDF nie jest dowodem wystawienia.
Zostaw arkusz tam, gdzie jest dobry: przy analizie, nie przy wystawianiu.
Podsumowanie
Excel nie przegrywa z KSeF dlatego, że jest stary. Przegrywa, bo KSeF wymaga trzech rzeczy, których arkusz z definicji nie ma: sztywnej struktury XML, gwarancji unikalności numeru i trwałego stanu dokumentu po wysyłce. Każdą z nich można obejść makrem. Żadnej nie da się obejść na długo.
Biurko wystawia faktury bezpośrednio w strukturze FA(3), pilnuje ciągłości numeracji, pobiera i weryfikuje UPO, a rejestry oddaje z powrotem w CSV i XLSX, jeśli Twoja księgowa woli pracować w arkuszu. Załóż bezpłatne konto na biurko.io i przetestuj wysyłkę na własnych danych. Konto darmowe jest stałe, nie jest to okres próbny.
FAQ
Czy można wystawiać faktury w Excelu w 2026 roku? Tak, ale tylko poza KSeF i tylko dopóki masz do tego prawo. Do 31 grudnia 2026 r. dotyczy to podatników, u których miesięczna wartość sprzedaży brutto udokumentowana fakturami nie przekracza 10 000 zł. Po przekroczeniu progu obowiązek KSeF włącza się od faktury, która ten próg przekroczyła.
Czy da się zaimportować fakturę z Excela do KSeF? Nie bezpośrednio. KSeF przyjmuje wyłącznie plik XML zgodny ze strukturą FA(3). Arkusz może być źródłem danych dla programu, który ten XML wygeneruje, ale sam plik XLSX ani CSV nie zostanie przez system przyjęty.
Czy numer KSeF zastępuje moją numerację faktur? Nie. Numer KSeF nadaje system po przyjęciu dokumentu. Obowiązek nadania własnego kolejnego numeru identyfikującego fakturę wynika z art. 106e ust. 1 ustawy o VAT i pozostaje po stronie wystawcy.
Co się stanie, jeśli KSeF odrzuci mój plik XML? Faktura nie została wystawiona. System nie poprawia dokumentów po swojej stronie: trzeba usunąć przyczynę odrzucenia i przesłać plik ponownie. Numer KSeF i UPO otrzymasz dopiero po skutecznym przyjęciu dokumentu.
Czy potrzebuję płatnego programu, żeby wystawiać faktury w KSeF? Nie. Ministerstwo Finansów udostępnia bezpłatną Aplikację Podatnika KSeF w wersji webowej i mobilnej. Płatne narzędzia mają sens przy większej liczbie dokumentów, obsłudze wielu firm, wysyłce hurtowej i automatycznym pobieraniu UPO.
