Od 1 lutego 2026 każda faktura wysłana do KSeF musi być zgodna ze schematem FA(3). Faktura ustrukturyzowana to nie PDF ani skan. To plik XML o ściśle określonej strukturze, który Twój system księgowy musi umieć wygenerować i przetworzyć.
Faktura ustrukturyzowana vs tradycyjna faktura
Tradycyjna faktura to dokument wizualny. Może być w PDF, na papierze, w dowolnym układzie graficznym. Człowiek ją czyta, program OCR próbuje rozpoznać tekst. Faktura ustrukturyzowana FA(3) działa inaczej. To plik XML z określonymi polami w określonej kolejności. Każda wartość ma swoje miejsce. Nie ma miejsca na interpretację.
Różnica jest jak między zdjęciem paragonu a rekordem w bazie danych. Zdjęcie wymaga rozpoznawania. Rekord w bazie można od razu przetworzyć, zaimportować, zaksięgować.
Dla księgowego oznacza to koniec przepisywania danych z faktur. Koniec sprawdzania, czy OCR poprawnie rozpoznał kwoty. Koniec niejasności, czy data to 01.02 czy 02.01. Dane w fakturze ustrukturyzowanej są jednoznaczne i natychmiast gotowe do przetworzenia przez system.
Struktura pliku FA(3)
Schemat FA(3) publikuje Ministerstwo Finansów. Oficjalna nazwa techniczna to http://crd.gov.pl/wzor/2025/06/25/13775/. Plik XML składa się z kilku głównych sekcji:
- Naglowek – informacje o rodzaju faktury, dacie wystawienia, walucie
- Podmiot1 – dane sprzedawcy (NIP, nazwa, adres)
- Podmiot2 – dane nabywcy
- Fa – szczegóły faktury: pozycje, stawki VAT, kwoty, forma płatności
- Stopka – opcjonalne informacje dodatkowe
Każda sekcja ma dziesiątki pól. Niektóre są obowiązkowe, inne opcjonalne. Błąd w jednym polu oznacza odrzucenie całej faktury przez KSeF. Łącznie schemat FA(3) definiuje ponad 300 elementów i atrybutów, choć typowa faktura sprzedaży wykorzystuje około 30-50 z nich.
Wymagane pola w fakturze FA(3)
KSeF waliduje każdą fakturę przed przyjęciem. Jeśli brakuje wymaganego pola lub format jest niepoprawny, faktura zostaje odrzucona. Oto najczęściej sprawdzane elementy:
Dane identyfikacyjne
- NIP sprzedawcy – 10 cyfr, bez kresek i spacji
- NIP nabywcy – wymagany dla transakcji B2B
- Numer faktury – unikalny w ramach roku, zgodny z wewnętrzną numeracją
- Data wystawienia – format YYYY-MM-DD
- Data sprzedaży – może być zakresem dat
Pozycje faktury
Każda pozycja (element FaWiersz) wymaga:
- Nazwy towaru lub usługi
- Jednostki miary (szt., kg, m, godz., itp.)
- Ilości
- Ceny jednostkowej netto
- Wartości netto
- Stawki VAT
- Kwoty VAT
Podsumowanie VAT
Sekcja FaPodsumowanie zawiera sumy z rozbiciem na stawki VAT. KSeF przelicza wartości i sprawdza zgodność. Jeśli suma pozycji nie zgadza się z podsumowaniem, faktura zostaje odrzucona.
Pola opcjonalne
Oprócz pól obowiązkowych FA(3) przewiduje dziesiątki pól opcjonalnych. Możesz dodać:
- Numer rachunku bankowego sprzedawcy
- Termin płatności
- Informacje o rabacie
- Numer zamówienia lub umowy
- Kod PKWiU dla usługi
- Kod CN dla towaru (handel zagraniczny)
- Oznaczenia GTU (grupy towarów i usług)
- Informacje o transakcji powiązanej (MPP)
Te pola nie są wymagane do przyjęcia faktury przez KSeF, ale mogą być wymagane przez przepisy podatkowe lub kontrahenta. Na przykład oznaczenie GTU_10 jest obowiązkowe przy sprzedaży budynków.
Różnice między FA(2) a FA(3)
Poprzednia wersja schematu, FA(2), obowiązywała do połowy 2025 roku. FA(3) wprowadza zmiany, które musisz uwzględnić w swoim oprogramowaniu.
| Element | FA(2) | FA(3) |
|---|---|---|
| Namespace XML | crd.gov.pl/.../12648/ | crd.gov.pl/.../13775/ |
| Obsługa korekt | Podstawowa | Rozszerzona o korekty zbiorcze |
| Pola adresowe | Struktura krajowa | Ujednolicona struktura UE |
| Kody GTU | Opcjonalne | Wymagane dla określonych towarów |
| MPP | Pole opisowe | Dedykowany znacznik boolean |
| Walidacja NIP UE | Podstawowa | Walidacja VIES |
Jeśli Twój system generuje faktury w formacie FA(2), musisz zaktualizować generator przed 1 lutego 2026. KSeF nie przyjmie faktur w starym formacie.
Jak wygląda faktura FA(3) w praktyce
Przykładowa faktura sprzedaży w formacie FA(3) ma około 2-5 KB dla prostej transakcji z kilkoma pozycjami. Oto uproszczony fragment struktury:
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/">
<Naglowek>
<KodFormularza kodSystemowy="FA (3)">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-01-05</DataWytworzeniaFa>
</Naglowek>
<Podmiot1>
<NIP>1234567890</NIP>
<Nazwa>Przykładowa Sp. z o.o.</Nazwa>
...
</Podmiot1>
<Fa>
<P_1>2026-01-05</P_1>
<P_2>FV/2026/001</P_2>
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Usługa konsultingowa</P_7>
<P_8A>godz.</P_8A>
<P_8B>10</P_8B>
<P_9A>200.00</P_9A>
<P_11>2000.00</P_11>
<P_12>23</P_12>
</FaWiersz>
...
</Fa>
</Faktura> Nazwy pól (P_1, P_7, P_11) odpowiadają polom z deklaracji VAT. P_1 to data wystawienia, P_7 to nazwa towaru/usługi, P_11 to wartość netto. Ta numeracja jest spójna w całym systemie podatkowym.
Pełna dokumentacja schematu FA(3) dostępna jest na stronie Ministerstwa Finansów. Schemat XSD możesz pobrać i użyć do walidacji faktur przed wysłaniem. Każda aktualizacja schematu publikowana jest z wyprzedzeniem, zwykle 3-6 miesięcy przed wejściem w życie.
Walidacja faktury przed wysłaniem do KSeF
Zanim wyślesz fakturę do KSeF, sprawdź ją lokalnie. Błąd walidacji oznacza odrzucenie i konieczność poprawki. Oto najczęstsze problemy:
Błędy strukturalne
- Niepoprawny namespace – system wciąż używa FA(2)
- Brakujące pola obowiązkowe – np. brak NIP nabywcy w B2B
- Niepoprawna kolejność elementów – XML wymaga określonej sekwencji
Błędy rachunkowe
- Suma pozycji ≠ podsumowanie – różnica nawet o 1 grosz
- Błędna stawka VAT – np. 22% zamiast 23%
- Niepoprawne zaokrąglenia – standard to 2 miejsca po przecinku
Błędy danych
- NIP z kreskami – powinien być ciągiem 10 cyfr
- Data w złym formacie – wymagany YYYY-MM-DD
- Numer faktury z niedozwolonymi znakami – tylko litery, cyfry, /, -
Większość programów księgowych ma wbudowaną walidację. Jeśli tworzysz własną integrację, użyj schematu XSD udostępnionego przez MF do walidacji przed wysłaniem.
Proces wysyłania faktury do KSeF
Wysłanie faktury ustrukturyzowanej do KSeF to proces wieloetapowy:
- Generowanie XML – Twój system tworzy plik zgodny z FA(3)
- Walidacja lokalna – sprawdzenie schematu XSD
- Autoryzacja – uzyskanie tokena dostępu do KSeF
- Wysłanie – POST do API KSeF
- Potwierdzenie – KSeF zwraca numer KSeF faktury
- Archiwizacja – zapisanie numeru KSeF przy fakturze
Cały proces dla jednej faktury trwa 1-3 sekundy. Przy masowym wysyłaniu (np. 1000 faktur) system kolejkuje i przetwarza partiami.
API KSeF obsługuje również wysyłanie wsadowe. Możesz przesłać paczkę do 100 faktur w jednym żądaniu HTTP. System przetwarza je sekwencyjnie i zwraca status dla każdej faktury osobno. Jeśli jedna faktura zostanie odrzucona, pozostałe nadal są przetwarzane.
Numer KSeF a numer faktury
Po przyjęciu faktury KSeF nadaje jej unikalny numer KSeF. To nie jest to samo co Twój numer faktury. Masz teraz dwa identyfikatory:
- Numer własny – np. FV/2026/00123 (Twoja numeracja)
- Numer KSeF – np. 1234567890-20260105-ABC123DEF456 (nadany przez system)
W komunikacji z kontrahentami i urzędem używasz numeru KSeF. Numer własny służy do wewnętrznej identyfikacji. Oba numery musisz przechowywać i móc powiązać.
Numer KSeF jest globalnie unikalny i niezmienny. Składa się z NIP wystawcy, daty i losowego identyfikatora. Dzięki temu numer jednoznacznie wskazuje na konkretną fakturę w całym systemie. Urząd skarbowy może w kilka sekund pobrać dowolną fakturę znając tylko jej numer KSeF.
Odbiór faktur z KSeF
Jako nabywca nie musisz już czekać na email z fakturą. Faktury od Twoich dostawców pojawiają się automatycznie w KSeF. Możesz je pobrać przez:
- Interfejs webowy – logowanie na ksef.podatki.gov.pl
- API – automatyczne pobieranie do systemu księgowego
- Aplikację Ministerstwa – e-mikrofirma
Dla biura rachunkowego obsługującego wielu klientów jedyne praktyczne rozwiązanie to integracja przez API. Ręczne logowanie się na dziesiątki kont jest niewykonalne. Więcej o obsłudze wielu klientów znajdziesz w artykule KSeF dla biur rachunkowych.
Przechowywanie faktur ustrukturyzowanych
Faktury ustrukturyzowane musisz przechowywać przez 5 lat. Masz dwie opcje:
Przechowywanie w KSeF
KSeF archiwizuje wszystkie faktury przez 10 lat. Możesz w każdej chwili pobrać historyczną fakturę. To upraszcza archiwizację, ale wymaga stałego dostępu do internetu.
Przechowywanie lokalne
Pobierasz faktury z KSeF i zapisujesz we własnym systemie. Masz kopię offline, ale musisz zadbać o backup i bezpieczeństwo danych.
Rekomendowane podejście: synchronizuj faktury z KSeF do własnej bazy, traktując KSeF jako źródło prawdy, a lokalną kopię jako cache do szybkiego dostępu.
Obsługa korekt w FA(3)
Korekta faktury ustrukturyzowanej to osobny dokument XML ze wskazaniem na fakturę pierwotną. FA(3) obsługuje:
- Korekta pojedyncza – odnosi się do jednej faktury
- Korekta zbiorcza – może korygować wiele faktur jednym dokumentem
- Nota korygująca – dla błędów formalnych (bez wpływu na kwoty)
Każda korekta zawiera pole PrzyczynaKorekty, które jest obowiązkowe. KSeF automatycznie wiąże korektę z dokumentem źródłowym.
W przypadku korekty zbiorczej możesz skorygować np. ceny dla jednego kontrahenta za cały miesiąc jednym dokumentem. To upraszcza obsługę rabatów okresowych i rozliczeń zbiorczych. System wymaga podania numerów KSeF wszystkich korygowanych faktur.
Autoryzacja dostępu do KSeF
Aby wysyłać i pobierać faktury przez API, musisz się uwierzytelnić w KSeF. Do końca 2026 roku masz dwie opcje:
- Token autoryzacyjny - generujesz go w portalu KSeF, działa do 31 grudnia 2026
- Certyfikat kwalifikowany - podpis elektroniczny, działa bezterminowo
Token jest prostszy w użyciu, ale wymaga wymiany przed 2027 rokiem. Certyfikat kwalifikowany to rozwiązanie długoterminowe, ale wymaga zakupu (około 200-300 PLN rocznie) i konfiguracji. Szczegółową instrukcję generowania tokena znajdziesz w artykule Jak wygenerować token KSeF.
Terminy i obowiązki
Obowiązek wystawiania faktur ustrukturyzowanych wchodzi w życie etapami:
- 1 lutego 2026 – firmy z przychodami powyżej 200 mln PLN rocznie
- 1 kwietnia 2026 – pozostałe firmy
- 1 stycznia 2027 – najmniejsze podmioty (przychody poniżej 2 mln PLN)
W 2026 roku nie ma kar za błędy. Od 1 stycznia 2027 zaczynają obowiązywać sankcje za niewystawianie faktur w KSeF. Więcej o terminach i harmonogramie wdrożenia znajdziesz na stronie KSeF 2026.
Checklist: przygotowanie do FA(3)
Sprawdź, czy Twój system jest gotowy na faktury ustrukturyzowane:
- Program księgowy obsługuje schemat FA(3) (nie starszy FA(2))
- Generator XML tworzy poprawną strukturę z właściwym namespace
- Walidacja lokalna sprawdza fakturę przed wysłaniem
- Integracja z API KSeF (autoryzacja tokenem lub certyfikatem)
- Przechowywanie numerów KSeF przy fakturach
- Mechanizm obsługi błędów i ponownego wysyłania
- Pobieranie faktur zakupowych z KSeF
- Obsługa korekt zgodna z FA(3)
Automatyzacja przetwarzania faktur
Manualne przetwarzanie faktur ustrukturyzowanych nie ma sensu. Skoro dane są już w formacie maszynowym, kolejnym logicznym krokiem jest automatyzacja.
System może automatycznie: pobierać nowe faktury z KSeF, kategoryzować je według kontrahenta i typu wydatku, przygotowywać do dekretacji, przekazywać do zatwierdzenia. Księgowy weryfikuje i zatwierdza, zamiast ręcznie przepisywać dane.
Przy 500+ fakturach miesięcznie różnica między manualnym a automatycznym przetwarzaniem to dziesiątki godzin pracy. Skoro KSeF wymusza standaryzację danych, automatyzacja staje się naturalna i opłacalna.