5 pól z faktur KSeF, których Twój program księgowy nie importuje — a CSV tak

Opublikowano: 1 czerwca 2026 · Czas czytania: 8 min

5 brakujących pól z KSeF w programach księgowych — porównanie Optima, Symfonia, wFirma, Insert

W skrócie

  • Problem: Standardowe importy KSeF w programach księgowych pomijają pola kluczowe dla JPK i kontroli podatkowej: numer KSeF, GTU, walutę, opis pozycji, flagi MPP.
  • Rozwiązanie: Eksport CSV z KSeF Import zawiera wszystkie 22 pola z XML FA(3) — każda faktura z kompletem danych.
  • Efekt: Pełen obraz danych z faktury w rejestrze. Zero pytań od klienta "a dlaczego tego nie ma?"
  • Dla kogo: Biura rachunkowe i księgowi używający Optimy, Symfonii, wFirmy lub Insert, którzy potrzebują pełnych danych z KSeF.

Importujesz faktury z KSeF do Optimy. Myślisz, że masz wszystko. A potem klient pyta: "Dlaczego w rejestrze nie ma numeru KSeF przy tej fakturze?" Ups. Albo urząd skarbowy wysyła wezwanie, bo w JPK_V7 brakuje oznaczenia GTU_12 — choć w KSeF to oznaczenie jest. Twój program po prostu go nie zaimportował.

XML FA(3) z KSeF zawiera ponad 80 pól na fakturę. Standardowy import do programu księgowego przenosi 10-15 z nich. Reszta znika — bo program nie ma pola docelowego, bo import nie obsługuje tego elementu XML, bo nikt nie pomyślał, że to będzie potrzebne. A jest. Oto 5 pól, które najczęściej giną — i dlaczego ich brak kosztuje. Pełny pipeline importu CSV do Optimy krok po kroku: KSeF do CSV do Optima. A jeśli obsługujesz wielu klientów — sprawdź jak biuro rachunkowe zarządza 20 NIPami.

Pole #1: Numer KSeF — identyfikator, bez którego nie uzgodnisz z JPK

Numer KSeF (KsefReferenceNumber) to 35-znakowy unikalny identyfikator nadawany każdej fakturze przez Krajowy System e-Faktur w momencie przyjęcia. Wygląda tak: 1-123-45678-FA3-20260301-ABCDEF12345-67. Od lutego 2026 struktura JPK_V7(3) wymaga podania numeru KSeF przy każdej fakturze — zakupowej i sprzedażowej.

Dlaczego to ważne: Urząd skarbowy krzyżuje dane z JPK_V7 z bazą KSeF. Brak numeru KSeF = rozbieżność = wezwanie do wyjaśnień. Przy 200 fakturach miesięcznie i 3 brakujących numerach — musisz wyjaśniać każdy.

Kto gubi to pole: Optima przechowuje numer KSeF jako atrybut dokumentu, ale nie wyświetla go domyślnie w rejestrze VAT — trzeba dodać kolumnę ręcznie. Symfonia Handle importuje go opcjonalnie (zależy od konfiguracji). wFirma i Insert — nie importują numeru KSeF w ogóle.

CSV rozwiązanie: kolumna numer_ksef — zawsze obecna, zawsze pełne 35 znaków. Bez dodatkowej konfiguracji.

Pole #2: Oznaczenia GTU — gdy import źle mapuje grupę towarową

GTU (Grupy Towarów i Usług) to kody od GTU_01 do GTU_13, które oznaczają specyficzne kategorie — np. GTU_01 (alkohol), GTU_09 (leki), GTU_12 (usługi niematerialne), GTU_13 (usługi transportowe). Każda faktura w KSeF może mieć przypisane jedno lub więcej oznaczeń GTU.

Dlaczego to ważne: Błędne GTU w JPK_V7 = korekta deklaracji. Brak GTU, gdy powinno być = wezwanie z urzędu. To nie jest pole informacyjne — to obowiązek wynikający z Rozporządzenia MF. Przy kontroli krzyżowej urząd porównuje GTU z JPK ze strukturą XML w KSeF.

Kto gubi to pole: Optima importuje GTU jako atrybut, ale nie zawsze mapuje wszystkie kody — zwłaszcza rzadsze (GTU_03, GTU_05, GTU_06). Symfonia Handle obsługuje GTU opcjonalnie, ale wymaga mapowania w konfiguracji importu. wFirma i Insert nie importują GTU z KSeF.

CSV rozwiązanie: kolumna gtu z pełną listą kodów per faktura (np. "GTU_12, GTU_13"). Jeśli faktura ma 3 oznaczenia — wszystkie 3 w jednej komórce, rozdzielone przecinkiem.

Pole #3: Waluta oryginalna i kurs — kluczowe dla faktur zagranicznych

Pole KodWaluty w XML KSeF określa walutę transakcji (EUR, USD, GBP, CHF). Przy fakturach zagranicznych XML zawiera też datę kursu NBP, która determinuje właściwy przelicznik PLN.

Dlaczego to ważne: Błędny kurs przeliczeniowy = błędna kwota netto w PLN = błędny VAT naliczony. Przy imporcie z Chin za 50 000 USD różnica 1 grosza na kursie to 50 PLN na kwocie netto. Przy audycie — to rozbieżność.

Kto gubi to pole: Większość programów importuje faktury z KSeF wyłącznie jako kwoty PLN — bo tak je widzi w podsumowaniu FA(3). Oryginalna waluta i kurs NBP często nie trafiają do rejestru. Optima wymaga ręcznego ustawienia waluty na dokumencie po imporcie. Symfonia i wFirma nie importują waluty z KSeF.

CSV rozwiązanie: kolumny waluta i kwota_waluta — waluta oryginalna + kwota w walucie obcej. Przy fakturach w PLN kolumna waluta = "PLN", kwota_waluta = kwota netto.

Pole #4: Pełne opisy pozycji — nie 30 znaków, a całość

Element FaWiersz → P_7 w XML FA(3) to opis pozycji faktury. Schemat FA(3) dopuszcza do 512 znaków na pozycję. Dla faktur usługowych — opis często zawiera pełne specyfikacje: "Usługa programistyczna — moduł płatności online, Sprint 14, 40h × 250 PLN, zakres: integracja Stripe + testy".

Dlaczego to ważne: Opis pozycji to podstawa alokacji kosztów. Biuro rachunkowe musi wiedzieć, czy to koszt IT, marketingu, czy administracji. Przy 30 znakach widać "Usługa programistycz..." — i trzeba otwierać oryginał, żeby dowiedzieć się reszty.

Kto gubi to pole: Optima obcina opisy pozycji do 80 znaków (zależy od wersji). Symfonia Handle — do 120 znaków. wFirma importuje pełne opisy. Insert — nie importuje opisów pozycji z KSeF.

CSV rozwiązanie: kolumna opis_pozycji z pełnym tekstem ze wszystkich pozycji faktury. Bez obcinania, bez utraty kontekstu.

Pole #5: Flagi MPP, odwrotne obciążenie, załącznik 15

XML KSeF zawiera flagi transakcji specjalnych: MPP (mechanizm podzielonej płatności, obowiązkowy powyżej 15 000 PLN brutto dla towarów z załącznika 15), odwrotne obciążenie (TP — transakcje z podmiotami powiązanymi) i oznaczenie załącznika 15 do ustawy o VAT.

Dlaczego to ważne: Brak flagi MPP przy fakturze powyżej 15 000 PLN brutto = potencjalna sankcja 30% kwoty VAT. Brak oznaczenia odwrotnego obciążenia = błędna linia VAT w JPK_V7. To nie są opcjonalne metadane — to obowiązkowe oznaczenia podatkowe.

Kto gubi to pole: Optima mapuje MPP częściowo (zależy od wersji i konfiguracji). Symfonia — nie importuje MPP z KSeF. wFirma — obsługuje MPP, ale nie odwrotne obciążenie z importu. Insert — nie importuje żadnych flag specjalnych.

CSV rozwiązanie: kolumny mpp, odwrotne_obciazenie, zalacznik_15 — wartości logiczne (TAK/NIE). Jednoznaczne, bez interpretacji.

Podsumowanie: mam to w moim programie?

Pole Optima Symfonia wFirma Insert CSV
Numer KSeF ⚠ atrybut ⚠ opcjonalnie
Oznaczenia GTU ⚠ częściowo ⚠ opcjonalnie
Waluta oryginalna ⚠ ręcznie
Pełne opisy pozycji ⚠ ucina do 80 zn. ⚠ ucina do 120 zn.
Flagi MPP / OO / zał. 15 ⚠ częściowo ⚠ tylko MPP

Legenda: = importuje poprawnie, = częściowo lub wymaga konfiguracji, = nie importuje. Żaden program nie daje 5/5. CSV z KSeF Import — zawsze 5/5.

Jak włączyć brakujące pola w eksporcie CSV

Konfiguracja w KSeF Import zajmuje 2 minuty:

  1. Przejdź do Pola eksportu

    Zobaczysz listę 22 dostępnych kolumn. Domyślnie włączone: numer faktury, data, NIP, nazwa, netto, VAT, brutto. Brakujące pola — numer KSeF, GTU, waluta, opis pozycji, MPP — są wyłączone domyślnie.

  2. Zaznacz brakujące kolumny

    Kliknij checkboxy przy: numer_ksef, gtu, waluta, kwota_waluta, opis_pozycji, mpp, odwrotne_obciazenie. Kolejność kolumn możesz zmienić drag-and-dropem.

  3. Zapisz szablon

    Konfiguracja zapisuje się per klient (NIP). Następny eksport CSV będzie zawierał wszystkie zaznaczone kolumny. Nie musisz konfigurować ponownie — szablon obowiązuje przy każdym pobraniu.

FAQ — najczęstsze pytania

Czy Optima 2026 naprawiła brakujące pola?

Comarch systematycznie rozszerza integrację KSeF w Optimie, ale tempo jest powolne. Wersja 2025.5 dodała lepsze mapowanie GTU, a 2026.1 poprawiła obsługę numeru KSeF w rejestrze VAT. Jednak waluta oryginalna, pełne opisy pozycji i flagi odwrotnego obciążenia nadal wymagają ręcznej interwencji lub dodatkowych modułów (ERP Plus). CSV daje te dane od pierwszego eksportu, bez czekania na aktualizacje.

Czy mogę dodać własne kolumny do CSV?

KSeF Import oferuje 22 predefiniowane kolumny — wszystkie oparte na polach z XML FA(3). Własne kolumny obliczeniowe (np. marża, kategoria kosztu) nie są dostępne w CSV, bo wymagałyby logiki biznesowej spoza faktury. Natomiast po imporcie CSV do Excela możesz dodać własne kolumny z formułami — np. =JEŻELI(H2="GTU_12";"Usługa";"Towar").

Co z polami specyficznymi: nr rejestracyjny pojazdu, data dostawy?

XML FA(3) zawiera wiele pól opcjonalnych: numer rejestracyjny pojazdu (przy fakturach paliwowych), data dostawy (P_6), termin płatności (Platnosc → TerminPlatnosci), numer zamówienia (NrZamowienia). KSeF Import parsuje i eksportuje te pola, jeśli są obecne w XML. W ustawieniach eksportu znajdziesz je jako dodatkowe kolumny: data_dostawy, termin_platnosci, nr_zamowienia. Jeśli wystawca faktury ich nie podał w XML — kolumna jest pusta.

Czy brakujące pola wpływają na JPK_V7?

Tak, bezpośrednio. JPK_V7(3) wymaga: numeru KSeF (od lutego 2026), oznaczeń GTU, flag MPP i oznaczeń procedur (TP, SW, EE). Jeśli Twój program księgowy nie importuje tych pól z KSeF, musisz je uzupełnić ręcznie przed wysłaniem JPK — albo ryzykujesz wezwanie. CSV z pełnymi danymi pozwala zweryfikować, czy rejestr VAT w programie jest kompletny: wystarczy porównać kolumny CSV z danymi w rejestrze za pomocą formuły WYSZUKAJ.PIONOWO.

Powiązane artykuły

Artykuł przygotowany przez zespół KSeF Import (ANTENA Sp. z o.o.)

Eksportuj faktury z WSZYSTKIMI polami — 7 dni za darmo

7-dniowy okres próbny, bez karty kredytowej.

Wypróbuj za darmo