Jak czytać XML faktury z KSeF
Dlaczego w ogóle warto rozumieć XML
W KSeF faktura ustrukturyzowana ma postać elektroniczną zgodną z oficjalnym wzorem dokumentu. W praktyce oznacza to, że kluczowe dane faktury są zapisane w pliku XML, a PDF jest tylko wizualizacją do wygodnego podglądu. Czym różni się podgląd w portalu od PDF z KSeF i czego wizualizacja nie pokazuje — Wizualizacja faktury KSeF — podgląd, PDF i ograniczenia. Faktura ustrukturyzowana w KSeF to dokument wystawiony przy użyciu KSeF wraz z przydzielonym numerem identyfikującym tę fakturę w systemie.
Nie musisz być programistą, żeby z takiego XML-a korzystać. Wystarczy wiedzieć:
- gdzie są najważniejsze dane,
- jak je znaleźć,
- czego nie pomylić.
To daje Ci realną przewagę:
- szybciej wychwycisz błędy,
- nie dasz się zwieść samemu wyglądowi PDF,
- lepiej kontrolujesz faktury w firmie.
Czym jest XML
XML to po prostu tekst, w którym dane są zapisane w uporządkowanych polach.
Wygląda to na przykład tak:
<NIP>1111111111</NIP> <!-- przykład fikcyjny -->
<Nazwa>Przykładowa Firma</Nazwa>
Czyli:
- nazwa pola to
<NIP>, - wartość to
1111111111(przykład fikcyjny).
To nie jest nic „magicznego”. To po prostu uporządkowany zapis danych.
Jak wygląda faktura KSeF „w środku”
W FA(3) znajdziesz m.in. część nagłówkową, dane stron transakcji i właściwą treść faktury. W uproszczeniu możesz myśleć o niej tak:
<Faktura>
<Naglowek>...</Naglowek>
<Podmiot1>...</Podmiot1>
<Podmiot2>...</Podmiot2>
<Fa>...</Fa>
</Faktura>
Najważniejsze sekcje:
| Sekcja | Co tam znajdziesz |
|---|---|
| Naglowek | dane techniczne i podstawowe informacje o dokumencie |
| Podmiot1 | sprzedawca |
| Podmiot2 | nabywca |
| Fa | zasadnicza treść faktury: daty, kwoty, pozycje, płatność |
Takie uproszczenie pomaga czytać XML, nawet jeśli nie znasz całego schematu FA(3). Sama dokumentacja MF pokazuje, że plik ma format XML, a pola w strukturze mają charakter obowiązkowy, opcjonalny albo fakultatywny.
Sprzedawca i nabywca – gdzie sprawdzać
Sprzedawca (Podmiot1)
<!-- dane przykładowe, fikcyjne -->
<Podmiot1>
<DaneIdentyfikacyjne>
<NIP>1111111111</NIP>
<Nazwa>Przykładowa Firma Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
</Podmiot1>
Nabywca (Podmiot2)
<!-- dane przykładowe, fikcyjne -->
<Podmiot2>
<DaneIdentyfikacyjne>
<NIP>2222222222</NIP>
<Nazwa>Klient Testowy Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
</Podmiot2>
To są jedne z pierwszych danych, które warto sprawdzić:
- czy NIP się zgadza,
- czy nazwa firmy jest poprawna.
KSeF weryfikuje m.in. zgodność techniczną dokumentu oraz część reguł, ale to nadal nie zwalnia z normalnej kontroli danych kontrahenta.
Najważniejsze pola faktury w części „Fa”
To tutaj znajdziesz najważniejsze informacje biznesowe.
<!-- dane przykładowe, fikcyjne -->
<Fa>
<P_1>2026-03-15</P_1> <!-- data wystawienia -->
<P_2>FV/2026/03/001</P_2> <!-- numer faktury nadany przez sprzedawcę -->
<P_6>2026-03-15</P_6> <!-- data sprzedaży, jeśli jest wspólna dla całej faktury -->
<P_13_1>10000.00</P_13_1> <!-- netto dla stawki 23% -->
<P_14_1>2300.00</P_14_1> <!-- VAT dla stawki 23% -->
<P_15>12300.00</P_15> <!-- kwota należności ogółem -->
</Fa>
Najważniejsze pola:
| Pole | Co oznacza |
|---|---|
| P_1 | data wystawienia |
| P_2 | numer faktury nadany przez sprzedawcę |
| P_6 | data dokonania lub zakończenia dostawy towarów albo wykonania usługi |
| P_13_1 | kwota netto dla danej stawki VAT |
| P_14_1 | kwota VAT dla danej stawki VAT |
| P_15 | kwota należności ogółem |
Bardzo ważne: czego NIE mylić
P_2 to nie jest numer KSeF
To bardzo częsta pomyłka.
P_2to numer nadany przez sprzedawcę,- numer KSeF jest nadawany przez system po przyjęciu faktury.
To są dwa różne numery.
P_6 to nie jest termin płatności
To kolejny częsty błąd.
P_6oznacza datę sprzedaży lub wykonania usługi,- termin płatności jest w części dotyczącej płatności.
Jeżeli data sprzedaży nie jest wspólna dla całej faktury, może pojawić się także na poziomie pozycji.
Gdzie jest termin płatności i rachunek
W FA(3) dane płatności są w sekcji Fa/Platnosc. Ta sekcja jest fakultatywna, więc może w ogóle nie wystąpić.
To oznacza też, że w XML możesz trafić na poprawną fakturę bez numeru rachunku. Jeśli chcesz zobaczyć, jak interpretować taki przypadek biznesowo, zajrzyj do tekstu Brak numeru konta na fakturze KSeF – czy to błąd?.
Przykład:
<!-- dane przykładowe, fikcyjne -->
<Platnosc>
<TerminPlatnosci>
<Termin>2026-03-31</Termin>
</TerminPlatnosci>
<RachunekBankowy>
<NrRB>PL00FIKCYJNYRACHUNEK000000000000</NrRB>
</RachunekBankowy>
</Platnosc>
Tu sprawdzasz przede wszystkim:
- kiedy trzeba zapłacić,
- na jaki rachunek ma trafić płatność.
Pozycje faktury – co właściwie kupiono
Pozycje faktury są zapisywane w elementach takich jak FaWiersz.
Przykład uproszczony:
<!-- dane przykładowe, fikcyjne -->
<FaWiersz>
<P_7>Usługa konsultingowa</P_7>
<P_8B>10</P_8B>
<P_9A>1000.00</P_9A>
</FaWiersz>
Najprościej czytać to tak:
P_7– nazwa towaru lub usługi,P_8B– ilość,P_9A– cena jednostkowa netto.
Jak czytać XML w praktyce
Nie musisz używać narzędzi programistycznych.
Najprostszy sposób:
otwórz plik XML w przeglądarce, prostym edytorze tekstu albo edytorze kodu,
wyszukaj najważniejsze pola, np.:
- NIP,
- P_1,
- P_2,
- P_15,
- Termin,
- NrRB,
porównaj te dane z:
- wizualizacją PDF,
- systemem księgowym,
- danymi kontrahenta,
- wcześniejszymi fakturami.
Co warto sprawdzać w praktyce
1. Czy dane kontrahenta się zgadzają
- NIP
- nazwa
2. Czy dobrze rozumiesz kwoty
Sprawdź:
- czy kwota należności ogółem odpowiada temu, czego się spodziewasz,
- czy wartości na pozycjach wyglądają sensownie,
- czy nie ma nietypowych kwot albo podejrzanych zaokrągleń.
KSeF wykonuje kontrole techniczne i część kontroli semantycznych, ale nie zastępuje Twojej biznesowej weryfikacji dokumentu.
3. Czy rachunek nie budzi wątpliwości
Sprawdź:
- czy rachunek zgadza się z wcześniejszymi fakturami,
- czy nie pojawił się nagle nowy rachunek,
- czy rachunek pasuje do kontrahenta.
Sam schemat FA(3) nie potwierdza, czy rachunek należy do danego podmiotu — to sprawdza się osobno. Jeżeli pole rachunku nie występuje w ogóle, nie trzeba od razu zakładać błędu faktury, ale dane do płatności trzeba ustalić poza samą fakturą.
4. Czy opis pozycji nie jest zbyt ogólny
Przykłady:
- „usługi różne”
- „inne”
- „konsultacje”
To nie musi oznaczać oszustwa, ale może być sygnałem ostrzegawczym.
Najczęstsze błędy
„PDF się zgadza, więc wszystko jest w porządku”
Nie zawsze.
PDF może wyglądać poprawnie, ale najważniejsze dane faktury są w XML. Zob. też: Wizualizacja faktury KSeF — podgląd, PDF i ograniczenia.
„KSeF przyjął fakturę, więc faktura jest na pewno poprawna”
To zbyt daleko idący wniosek.
KSeF sprawdza zgodność techniczną i część reguł, ale nie ocenia sensu gospodarczego transakcji ani wiarygodności kontrahenta.
Mylenie podstawowych pól
Najczęstsze pomyłki:
- numer faktury vs numer KSeF,
- data sprzedaży vs termin płatności,
- XML vs PDF.
Czego KSeF nie sprawdza
Odczyt pól z XML (NIP, kwoty, rachunek) pokazuje treść dokumentu, ale KSeF nie potwierdza, czy te dane odpowiadają rzeczywistej transakcji, czy rachunek należy do sprzedawcy ani czy sumy są poprawnie wyliczone. Sam schemat FA(3) nie zastępuje weryfikacji biznesowej po stronie odbiorcy.
Jak można to zweryfikować automatycznie
Narzędzia mogą parsować XML, porównywać kluczowe pola z kartoteką kontrahenta, sprawdzać rachunek w wykazie VAT i sygnalizować rozbieżności względem wcześniejszych faktur. To skraca ręczne przeglądanie plików przy większym wolumenie dokumentów.
FAQ
Czy księgowy musi umieć czytać cały XML?
Nie.
W praktyce wystarczy znać kilka kluczowych pól.
Czy mogę zmienić fakturę już przyjętą w KSeF?
Nie.
Jeśli jest błąd, trzeba wystawić dokument korygujący.
Czy KSeF przechowuje faktury?
Tak – przez 10 lat.
Czy PDF wystarczy?
Nie.
PDF to tylko wizualizacja. Fakturą w KSeF jest XML.
Powiązane artykuły
- Wizualizacja faktury KSeF — podgląd, PDF i ograniczenia – podgląd i PDF a nie sam XML
- KSeF pobieranie faktur — krok po kroku w Aplikacji Podatnika – jak pobrać XML i PDF z portalu
- Co powinna zawierać faktura w KSeF? Struktura FA(3) – pełna lista pól w schemacie
- Co KSeF sprawdza, a czego nie sprawdza – granice walidacji systemowej
Treść ma charakter informacyjny i edukacyjny. Nie stanowi porady prawnej ani podatkowej.
Przydatne serwisy
Pierwszy serwis prezentuje informacje o statusie samego KSeF, drugi – komunikaty techniczne Ministerstwa Finansów.