Większość biur rachunkowych trzyma dane fakturowe klientów w arkuszach Excela. Jeden plik na klienta, kolumny z numerem faktury, NIP-em nabywcy, kwotą netto i stawką VAT, a na końcu miesiąca trzeba to wszystko przenieść do Krajowego Systemu e-Faktur. Problem w tym, że KSeF nie przyjmie pliku .xlsx. System akceptuje wyłącznie ustrukturyzowany plik XML w schemacie FA(3). W tym artykule pokazujemy, jak przejść od arkusza do gotowego FA(3) i hurtowo wysłać faktury, bez przepisywania każdej pozycji ręcznie.
Dlaczego nie wgrasz Excela wprost do KSeF
To pierwsze nieporozumienie, na które trafia każde biuro. KSeF nie jest skrzynką na pliki. To rządowe repozytorium, które przyjmuje fakturę tylko wtedy, gdy ma ona ściśle określoną strukturę: zdefiniowane pola, ich kolejność i typy danych zgodne ze schematem FA(3) opublikowanym przez Ministerstwo Finansów.
Arkusz Excela jest „płaski". Wiersz to faktura, kolumna to jedno pole, a komórka zawiera surową wartość. FA(3) jest „zagnieżdżony": dane sprzedawcy i nabywcy siedzą w osobnych blokach (Podmiot1, Podmiot2), pozycje faktury w sekcji FaWiersz, a podsumowania VAT w polach P_13_x i P_14_x. Konwersja polega więc na zmapowaniu kolumn arkusza na właściwe elementy XML, a nie na zwykłym „zapisz jako".
Jeśli chcesz najpierw zrozumieć samą anatomię tego formatu, zacznij od artykułu Schemat FA(3): struktura faktury w KSeF. Tutaj skupiamy się na drodze od Excela do wysyłki.
Co naprawdę oznacza „eksport faktur z Excela do KSeF"
Pod tym hasłem kryją się dwa różne scenariusze, które warto rozróżnić, zanim zaczniesz działać.
Scenariusz A: dane wystawione poza KSeF
Klient prowadzi własną ewidencję sprzedaży w Excelu (sklep, usługi, najem) i co miesiąc przekazuje biuru gotowy arkusz z listą faktur. Biuro musi te faktury wystawić w KSeF jako faktury sprzedażowe klienta. To najczęstszy przypadek i właśnie o nim mówimy w dalszej części.
Scenariusz B: raport kontrolny przed wysyłką
Tu Excel służy jako warstwa weryfikacji: biuro buduje arkusz zbiorczy, sprawdza sumy VAT, wyłapuje duplikaty numerów, a dopiero potem przekształca dane na FA(3). Ten krok zmniejsza liczbę odrzuceń po stronie KSeF i jest dobrym nawykiem nawet przy niewielkiej liczbie faktur.
Jak przygotować arkusz pod konwersję do FA(3)
Jakość pliku XML zależy przede wszystkim od jakości arkusza. Czysty, jednoznaczny Excel konwertuje się gładko, a bałaganiarski wymusza ręczne poprawki przy każdej fakturze.
Minimalny zestaw kolumn
Aby zbudować poprawne FA(3), arkusz musi zawierać co najmniej:
- numer faktury (pole
P_2), na przykładFV/2026/05/0012, - datę wystawienia w formacie
RRRR-MM-DD(poleP_1), - NIP nabywcy (10 cyfr, bez myślników i spacji),
- nazwę i adres nabywcy,
- nazwę pozycji, ilość, cenę jednostkową netto,
- stawkę VAT jako liczbę:
23,8,5,0lub oznaczeniezw, - wartość netto i kwotę VAT dla każdej stawki.
Najczęstsze pułapki w danych z Excela
- NIP z formatowaniem.
525-276-32-66albo5252763266ze spacją na końcu psują walidację. NIP musi być ciągiem 10 cyfr. - Stawka VAT jako tekst. Komórka zawierająca
23%to tekst, nie liczba. W FA(3) stawka trafia do osobnego pola, a procent jest tylko opisem. - Przecinek zamiast kropki w kwotach. Polski Excel domyślnie zapisuje
1 230,00, a XML wymaga1230.00, bez separatora tysięcy i z kropką dziesiętną. - Daty jako tekst.
4 maja 2026albo04.05.2026muszą zostać sprowadzone do2026-05-04. - Puste wiersze i sumy częściowe. Wiersz „RAZEM" w środku arkusza zostanie potraktowany jako kolejna faktura, jeśli go nie usuniesz.
Im wcześniej posprzątasz dane, tym mniej błędów zobaczysz później. O typowych komunikatach odrzucenia piszemy w artykule Najczęstsze błędy KSeF i jak je naprawić.
Metoda 1: ręczne przepisywanie do formularza
Najprostsza i najwolniejsza droga. Otwierasz aplikację (np. bezpłatną Aplikację Podatnika MF), wybierasz „nowa faktura" i przepisujesz pola z arkusza jedno po drugim.
Dla pięciu faktur miesięcznie to do zaakceptowania. Dla biura obsługującego kilkudziesięciu klientów, gdzie każdy generuje od kilkunastu do kilkuset dokumentów, ręczne przepisywanie oznacza dziesiątki godzin pracy i wysokie ryzyko literówki w NIP-ie lub kwocie. To nie jest metoda, którą da się skalować.
Metoda 2: własny skrypt mapujący Excel na FA(3) XML
Jeśli w zespole jest osoba znająca podstawy programowania, można napisać skrypt, który czyta arkusz i generuje pliki XML. Idea jest prosta: każda kolumna arkusza odpowiada jednemu elementowi FA(3).
Przykład mapowania kolumny na pole FA(3)
Załóżmy, że arkusz ma kolumny: Numer, Data, NIP_nabywcy, Netto, VAT. Fragment wynikowego XML dla jednej faktury wygląda tak:
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2026-05-04</P_1>
<P_2>FV/2026/05/0012</P_2>
<P_13_1>1000.00</P_13_1>
<P_14_1>230.00</P_14_1>
<P_15>1230.00</P_15>
</Fa>
Tu P_13_1 to suma netto w stawce 23%, P_14_1 to kwota VAT w tej stawce, a P_15 to należność ogółem (brutto). Jeśli faktura ma pozycje w kilku stawkach, trafiają one do kolejnych par pól (P_13_2/P_14_2 dla 8% i tak dalej).
Minusy własnego skryptu: trzeba go utrzymywać przy każdej zmianie schematu po stronie MF, samodzielnie obsłużyć uwierzytelnianie tokenem, szyfrowanie sesji i pobieranie potwierdzeń. To realny projekt programistyczny, nie jednorazowy makrowiec w Excelu. Jeśli mimo to chcesz iść tą drogą, przyda się przewodnik Token KSeF: jak go wygenerować.
Metoda 3: hurtowy import pliku Excel w Cockpicie KSeF
Trzecia droga to gotowe narzędzie, które bierze na siebie konwersję, walidację, wysyłkę i pobranie potwierdzeń. W FakturaFlow wygląda to tak:
- Wgrywasz plik Excel z listą faktur klienta (obsługujemy też PDF i gotowy XML).
- System mapuje kolumny na pola FA(3) i pokazuje podgląd do sprawdzenia.
- Wbudowana walidacja sygnalizuje błędne NIP-y, brakujące pola i niespójne sumy VAT, zanim cokolwiek poleci do MF.
- Po akceptacji faktury są szyfrowane i wysyłane hurtowo na produkcyjny endpoint
api.ksef.mf.gov.pl. - Dla każdej faktury system pobiera Urzędowe Poświadczenie Odbioru (UPO) i zapisuje je razem z numerem KSeF.
Wysyłka hurtowa z pliku jest dostępna w planie Professional (319 zł / mies.) oraz Enterprise (499 zł / mies.). Plan Starter (199 zł / mies.) obsługuje pojedyncze faktury i mniejszy zestaw klientów. Pełny przebieg masowej wysyłki opisujemy w artykule Jak wysyłać faktury do KSeF hurtowo.
Walidacja przed wysyłką: dlaczego to się opłaca
Niezależnie od wybranej metody, sprawdź XML, zanim trafi do KSeF. System odrzuci fakturę z błędną strukturą i zwróci kod błędu, ale Twoim celem jest, żeby do odrzucenia w ogóle nie doszło, bo każda poprawka po fakcie to dodatkowa runda komunikacji z systemem.
Jeśli generujesz XML poza naszym narzędziem (na przykład własnym skryptem), możesz go bezpłatnie sprawdzić w naszym walidatorze KSeF. Walidator wykonuje dziewięć kontroli zgodności ze schematem FA(3) i działa w całości w przeglądarce, więc plik z danymi klienta nie opuszcza Twojego komputera. Surowe dane fakturowe mogą zawierać dane osobowe kontrahentów, więc lokalna walidacja ogranicza zakres ich przetwarzania zgodnie z RODO.
Workflow miesięczny biura: od arkusza do UPO
Poskładajmy to w powtarzalny proces dla biura obsługującego wielu klientów:
- Zbierz arkusze. Klienci przesyłają miesięczne zestawienia sprzedaży w ustalonym szablonie Excela. Jeden szablon dla wszystkich oszczędza godziny na sprzątaniu danych.
- Wyczyść dane. Usuń puste wiersze, ujednolicaj format dat i kwot, sprawdź NIP-y.
- Skonwertuj na FA(3). Hurtowy import zamienia arkusz na zestaw plików XML.
- Zwaliduj. Wyłap błędy przed wysyłką, najlepiej automatycznie na etapie podglądu.
- Wyślij hurtowo. Cały plik leci do KSeF jednym działaniem, a nie fakturą po fakturze.
- Pobierz i zarchiwizuj UPO. Każde potwierdzenie zapisujesz przy fakturze, razem z numerem KSeF, na potrzeby kontroli.
Tak wygląda różnica między „przepisywaniem do północy ostatniego dnia miesiąca" a procesem, który da się zamknąć w jedno popołudnie.
Kiedy obowiązek wejdzie w życie
Warto pamiętać o kontekście, bo to on wymusza uporządkowanie eksportu z Excela. Obowiązek KSeF wchodzi etapami: od 1 lutego 2026 r. dla największych podatników (obrót powyżej 200 mln zł), od 1 kwietnia 2026 r. dla pozostałych czynnych podatników VAT, a od 1 stycznia 2027 r. obejmie także najmniejszych przedsiębiorców. Dla biur rachunkowych oznacza to, że ad hoc wpisywanie faktur przestaje być opcją: potrzebny jest powtarzalny, walidowany proces hurtowy.
Najczęstsze pytania
Czy KSeF kiedyś będzie przyjmował pliki Excel bezpośrednio?
Ministerstwo Finansów nie zapowiadało takiej funkcji, a docelowym formatem pozostaje ustrukturyzowany XML w schemacie FA(3). Excel pozostanie formatem roboczym po stronie biura, a konwersja będzie potrzebna zawsze.
Czy jeden arkusz może zawierać faktury kilku klientów?
Technicznie tak, ale w praktyce wygodniej rozdzielić arkusze per klient, bo każda faktura sprzedażowa jest wystawiana w kontekście konkretnego sprzedawcy (z jego NIP-em w sekcji Podmiot1). Mieszanie sprzedawców w jednym pliku komplikuje mapowanie.
Co z fakturami w kilku stawkach VAT?
FA(3) obsługuje wiele stawek na jednej fakturze. W arkuszu wystarczy mieć osobne kolumny netto i VAT dla każdej stawki albo osobne wiersze pozycji, a narzędzie zsumuje je do właściwych pól P_13_x i P_14_x.
Podsumowanie
Eksport faktur z Excela do KSeF to nie zapis pliku, tylko mapowanie danych na schemat FA(3) i wysyłka ustrukturyzowanego XML. Możesz przepisywać ręcznie (wolno i ryzykownie), napisać własny skrypt (elastycznie, ale kosztownie w utrzymaniu) albo użyć gotowego importu hurtowego, który zamknie cały cykl od arkusza do UPO. Jeśli generujesz XML samodzielnie, sprawdź go najpierw w bezpłatnym walidatorze KSeF, a dane klienta zostaną na Twoim komputerze.