W świecie KSeF nie ma faktur "ładnych" ani "brzydkich" — są tylko poprawne i odrzucone. Faktura ustrukturyzowana to plik XML, w którym każda informacja — od NIP-u po stawkę VAT — jest zakodowana w ściśle określonym formacie. Nie ma w niej grafiki, logo firmy ani kolorowego nagłówka. Jest za to coś cenniejszego: dane, które mogą być automatycznie przetworzone przez każdy system informatyczny na świecie. W tym artykule wyjaśnię, jak wygląda faktura ustrukturyzowana, jakie ma wymagania i co musisz wiedzieć jako przedsiębiorca.
Czym jest faktura ustrukturyzowana
Faktura ustrukturyzowana to faktura w formacie XML, zgodna ze schematem FA(2) określonym przez Ministerstwo Finansów. W przeciwieństwie do tradycyjnej faktury (PDF, papier, Word), faktura ustrukturyzowana ma ściśle zdefiniowaną strukturę — każde pole (data, kwota, NIP, stawka) jest oznaczone maszynowym znacznikiem, który umożliwia automatyczne odczytanie i przetworzenie dokumentu.
Faktura ustrukturyzowana vs. zwykła e-faktura
Zwykła e-faktura (PDF wysłany e-mailem) to dokument elektroniczny, ale "nieustrukturyzowany" — system informatyczny widzi go jako obraz lub tekst, nie jako dane. Żeby go przetworzyć, trzeba użyć OCR lub ręcznie przepisać. Faktura ustrukturyzowana to dane w formacie XML — system odczytuje każde pole automatycznie, bezbłędnie i natychmiast.
Standaryzacja formatu to sens istnienia KSeF. Gdy każda faktura w Polsce ma identyczną strukturę danych, możliwa jest pełna automatyzacja — od wystawiania, przez monitoring płatności, po windykację należności. To zmiana, która na dłuższą metę przynosi korzyści każdej firmie.
Schemat FA(2) — co to jest
Schemat FA(2) to oficjalna specyfikacja techniczna faktury ustrukturyzowanej, opublikowana przez Ministerstwo Finansów. Definiuje, jakie pola musi zawierać faktura, w jakim formacie i w jakiej kolejności. Każdy program księgowy, który integruje się z KSeF, musi generować faktury zgodne z tym schematem.
Co definiuje schemat
- Strukturę dokumentu — hierarchia elementów XML (nagłówek, dane sprzedawcy, dane nabywcy, pozycje, podsumowanie)
- Wymagane pola — które elementy muszą być obecne w każdej fakturze
- Opcjonalne pola — które elementy można dodać, ale nie są obowiązkowe
- Formaty danych — np. data w formacie RRRR-MM-DD, NIP jako 10 cyfr bez myślników, kwoty z dokładnością do dwóch miejsc po przecinku
- Dozwolone wartości — np. lista dopuszczalnych stawek VAT, kody walut, kody krajów
Pro tip: jako przedsiębiorca nie musisz znać schematu FA(2) na pamięć. Twój program księgowy generuje XML automatycznie — Ty wypełniasz zwykły formularz faktury, a program tłumaczy to na poprawny XML. Schemat jest istotny dla programistów i dostawców oprogramowania, nie dla użytkowników końcowych.
Obowiązkowe elementy faktury ustrukturyzowanej
Faktura ustrukturyzowana musi zawierać te same elementy co tradycyjna faktura VAT — ale w ustandaryzowanym formacie. Oto pełna lista pól, które KSeF wymaga w każdej fakturze.
Dane identyfikacyjne
| Pole | Opis | Format |
|---|---|---|
| Numer faktury | Unikalny numer nadany przez wystawcę | Tekst (do 256 znaków) |
| Data wystawienia | Dzień wystawienia faktury | RRRR-MM-DD |
| Data sprzedaży / wykonania usługi | Jeśli inna niż data wystawienia | RRRR-MM-DD |
| Rodzaj faktury | Faktura, korekta, zaliczkowa itp. | Kod z listy (np. VAT, KOR, ZAL) |
| Waluta | Waluta rozliczenia | Kod ISO 4217 (np. PLN, EUR) |
Dane sprzedawcy i nabywcy
| Pole | Opis | Wymagane |
|---|---|---|
| NIP | Numer identyfikacji podatkowej | Tak (10 cyfr, bez myślników) |
| Nazwa | Pełna nazwa firmy | Tak |
| Adres | Adres siedziby (ulica, numer, kod, miejscowość) | Tak |
| Kod kraju | Dwuliterowy kod kraju (ISO 3166) | Tak (np. PL) |
Pozycje faktury
| Pole | Opis | Wymagane |
|---|---|---|
| Nazwa towaru / usługi | Opis przedmiotu sprzedaży | Tak |
| Jednostka miary | np. szt., kg, godz., usł. | Opcjonalne |
| Ilość | Liczba jednostek | Opcjonalne |
| Cena jednostkowa netto | Cena za jednostkę bez VAT | Opcjonalne |
| Wartość netto | Kwota netto pozycji | Tak |
| Stawka VAT | 23%, 8%, 5%, 0%, zw., np., oo. | Tak |
| Kwota VAT | Wartość podatku VAT | Tak |
| Wartość brutto | Kwota netto + VAT | Tak |
Podsumowanie i dane płatności
- Łączna kwota netto — suma wartości netto wszystkich pozycji
- Łączna kwota VAT — z podziałem na stawki
- Łączna kwota brutto — kwota do zapłaty
- Termin płatności — opcjonalny w schemacie, ale kluczowy dla monitoringu
- Numer rachunku bankowego — opcjonalny, ale rekomendowany
- Forma płatności — przelew, gotówka, kompensata itp.
Uwaga: choć termin płatności i numer konta są opcjonalne w schemacie FA(2), zawsze je umieszczaj. Termin płatności to podstawa do naliczania odsetek za opóźnienie i do automatycznego monitoringu. Numer konta ułatwia kontrahentowi szybką zapłatę. Brak tych pól to strzał w kolano.
Elementy dodatkowe — kiedy są wymagane
W zależności od rodzaju transakcji, faktura ustrukturyzowana może wymagać dodatkowych elementów. Schemat FA(2) przewiduje pola na specjalne adnotacje i oznaczenia.
Najczęstsze dodatkowe elementy
Mechanizm podzielonej płatności (split payment)
Jeśli transakcja podlega obowiązkowemu split paymentowi — faktura musi zawierać oznaczenie "mechanizm podzielonej płatności". W XML to osobne pole z wartością logiczną.
Odwrotne obciążenie
Przy transakcjach z odwrotnym obciążeniem — adnotacja wskazująca, że VAT rozlicza nabywca, nie sprzedawca.
Kody GTU
Kody grup towarów i usług (GTU_01 do GTU_13) — obowiązkowe dla określonych kategorii towarów i usług (np. paliwa, elektronika, usługi budowlane). Twój program księgowy powinien automatycznie przypisywać kody GTU na podstawie klasyfikacji towaru.
Oznaczenia procedur
Specjalne oznaczenia dla konkretnych procedur podatkowych — np. TP (transakcje z podmiotami powiązanymi), MR_T (marża — towary używane), WEW (dokument wewnętrzny).
Pro tip: nie musisz pamiętać o tych oznaczeniach ręcznie. Dobry program księgowy automatycznie dodaje odpowiednie kody i adnotacje na podstawie rodzaju transakcji i towaru. Twoja rola to prawidłowe sklasyfikowanie tego, co sprzedajesz — resztę robi oprogramowanie.
Jak wygląda faktura ustrukturyzowana — podgląd kontra rzeczywistość
Faktura ustrukturyzowana to plik XML — ciąg znaczników i wartości, czytelny dla maszyny, ale nieczytelny dla człowieka. Nikt nie "czyta" faktur ustrukturyzowanych gołym okiem. To, co widzisz na ekranie (w programie księgowym lub w aplikacji KSeF), to wizualizacja — graficzne przedstawienie danych z XML.
XML vs. wizualizacja
Plik XML (dane)
- Ciąg znaczników i wartości
- Czytelny dla systemów informatycznych
- Automatycznie przetwarzalny
- To jest prawdziwa faktura
Wizualizacja (podgląd)
- Graficzny podgląd w formacie PDF
- Czytelny dla ludzi
- Generowany z danych XML
- To jest pomocniczy dokument
Ministerstwo Finansów udostępnia narzędzie do wizualizacji — konwersji XML na czytelny PDF. Większość programów księgowych generuje własną wizualizację automatycznie. Możesz ją wydrukować, wysłać kontrahentowi jako "podgląd" czy załączyć do dokumentacji — ale prawdziwa, wiążąca faktura to dane w KSeF, nie PDF na Twoim dysku.
Zmiana myślenia: faktura to nie "dokument, który wygląda". Faktura to "zestaw danych, który jest poprawny". W świecie KSeF wygląd nie ma znaczenia — liczy się struktura, kompletność i poprawność danych.
Najczęstsze błędy w fakturach ustrukturyzowanych
KSeF waliduje każdą fakturę przed nadaniem numeru. Niepoprawna faktura jest odrzucana — nie trafia do systemu, nie jest doręczona nabywcy, termin płatności nie zaczyna biec. Oto najczęstsze przyczyny odrzuceń.
Brakujące pola wymagane
Najczęstszy błąd — brak pola, które schemat FA(2) wymaga. Na przykład: brak kodu kraju sprzedawcy, brak daty wystawienia, brak stawki VAT przy pozycji. Program księgowy powinien walidować fakturę lokalnie przed wysłaniem — ale nie wszystkie to robią.
Nieprawidłowy format danych
Data w formacie DD-MM-RRRR zamiast RRRR-MM-DD. NIP z myślnikami zamiast samych cyfr. Kwota z przecinkiem zamiast kropki (lub odwrotnie, zależy od ustawień). Drobne, ale fatalne — KSeF nie "domyśla się", co miałeś na myśli.
Niedozwolone znaki w polach tekstowych
Nazwy towarów lub firm zawierające znaki specjalne (np. &, <, >, cudzysłowy) mogą powodować problemy z parsowaniem XML. Program księgowy powinien automatycznie "escapować" takie znaki — ale przy ręcznym tworzeniu XML to częsty błąd.
Niezgodność sum kontrolnych
Suma kwot netto pozycji nie zgadza się z łączną kwotą netto w podsumowaniu. Lub suma kwot VAT per stawka nie zgadza się z łączną kwotą VAT. KSeF sprawdza spójność matematyczną faktury — i odrzuca dokumenty z niespójnymi sumami.
Błędne kody GTU lub oznaczeń
Użycie kodu GTU, który nie pasuje do rodzaju towaru/usługi, lub brak wymaganego oznaczenia (np. split payment). Sprawdź klasyfikację GTU dla swoich produktów i upewnij się, że program przypisuje je prawidłowo.
Pro tip: przed uruchomieniem produkcyjnego fakturowania w KSeF wyślij 10–20 testowych faktur do środowiska demo. Pokryj różne scenariusze: różne stawki VAT, korekty, split payment, faktury walutowe. Każda odrzucona testowa faktura to jeden problem mniej na produkcji. Więcej o rozwiązywaniu problemów przeczytasz w artykule o problemach z KSeF.
Faktury korygujące w KSeF
Faktura korygująca w KSeF to osobny dokument XML, który odnosi się do numeru KSeF faktury pierwotnej. Korekta przechodzi przez ten sam proces co faktura — walidacja, nadanie numeru, doręczenie nabywcy.
Co musi zawierać korekta
- Numer KSeF faktury korygowanej — jednoznaczne powiązanie z dokumentem pierwotnym
- Przyczyna korekty — opis, co i dlaczego jest korygowane
- Dane przed i po korekcie — stara i nowa wartość korygowanego pola
- Wszystkie obowiązkowe pola — korekta to pełnoprawna faktura, musi zawierać komplet danych
Uwaga: w KSeF nie można "usunąć" ani "nadpisać" faktury. Błędna faktura pozostaje w systemie — możesz ją jedynie skorygować, wystawiając fakturę korygującą. Dlatego tak ważna jest walidacja przed wysłaniem — raz nadany numer KSeF jest nieodwracalny.
Faktura ustrukturyzowana a monitoring płatności
Standaryzacja formatu to dar dla systemów do monitoringu płatności. W tradycyjnym modelu system musi "odgadnąć" dane z PDF-a (OCR) lub polegać na ręcznym imporcie. Z fakturą ustrukturyzowaną — po prostu odczytuje odpowiednie pole XML.
Które pola są kluczowe dla monitoringu
- Termin płatności — trigger dla sekwencji przypomnień
- Kwota brutto — ile kontrahent jest winien
- NIP nabywcy — identyfikacja kontrahenta i powiązanie z historią
- Numer faktury + numer KSeF — jednoznaczna identyfikacja dokumentu
- Numer rachunku bankowego — panel dłużnika wyświetla go kontrahentowi przy płatności
- Data wystawienia — punkt wyjścia do obliczania odsetek
W Paido dane z faktury ustrukturyzowanej zasilają cały cykl — od automatycznego przypomnienia przed terminem, przez naliczanie odsetek, po generowanie wezwań do zapłaty. Wszystko na podstawie danych, które już są w XML — bez ręcznego wpisywania czegokolwiek.
FAQ — najczęściej zadawane pytania
Czy muszę znać XML, żeby wystawiać faktury w KSeF?
Nie. Twój program księgowy generuje XML w tle — Ty wypełniasz zwykły formularz faktury (tak jak dotychczas). XML to „język", którym program rozmawia z KSeF — nie musisz go znać, tak jak nie musisz znać protokołu HTTP, żeby przeglądać strony internetowe.
Czy mogę dodać logo firmy do faktury ustrukturyzowanej?
Nie do samego XML — faktura ustrukturyzowana to dane, nie grafika. Ale wizualizacja (PDF generowany z XML) może zawierać Twoje logo, kolorystykę i układ graficzny — to zależy od programu księgowego. Kontrahent widzi wizualizację, system widzi XML.
Co, jeśli KSeF odrzuci moją fakturę?
Dostajesz informację o błędzie — KSeF wskazuje, które pole jest nieprawidłowe lub brakujące. Poprawiasz w programie księgowym i wysyłasz ponownie. Odrzucona faktura nie istnieje w KSeF — nie ma numeru, nie jest doręczona, nie rodzi skutków podatkowych.
Czy faktura ustrukturyzowana musi zawierać termin płatności?
W schemacie FA(2) termin płatności jest polem opcjonalnym. Ale dla Twojej firmy to pole kluczowe — bez niego system monitoringu nie wie, kiedy uruchomić sekwencję, a Ty nie masz podstawy do naliczania odsetek od konkretnego dnia. Zawsze go umieszczaj.
Czy schemat FA(2) może się zmienić?
Tak — Ministerstwo Finansów może aktualizować schemat, dodając nowe pola lub zmieniając wymagania. Dlatego ważne jest, żeby Twój program księgowy był na bieżąco z aktualizacjami. Programy chmurowe (SaaS) aktualizują się automatycznie — desktopowe wymagają ręcznego pobrania nowej wersji.
Twoje faktury ustrukturyzowane pod automatyczną kontrolą
Paido odczytuje dane z faktur ustrukturyzowanych w KSeF i automatycznie pilnuje terminów. Wystawiasz fakturę — system robi resztę.
Wypróbuj za darmo