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. 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>
<Nazwa>Przykładowa Firma</Nazwa>

Czyli:

  • nazwa pola to <NIP>,
  • wartość to 1111111111.

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:

SekcjaCo tam znajdziesz
Naglowekdane techniczne i podstawowe informacje o dokumencie
Podmiot1sprzedawca
Podmiot2nabywca
Fazasadnicza 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:

PoleCo oznacza
P_1data wystawienia
P_2numer faktury nadany przez sprzedawcę
P_6data dokonania lub zakończenia dostawy towarów albo wykonania usługi
P_13_1kwota netto dla danej stawki VAT
P_14_1kwota VAT dla danej stawki VAT
P_15kwota 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_2 to 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_6 oznacza 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ć.

Przykład:

<!-- dane przykładowe, fikcyjne -->
<Platnosc>
    <TerminPlatnosci>
        <Termin>2026-03-31</Termin>
    </TerminPlatnosci>

    <RachunekBankowy>
        <NrRB>PL0011111111111111111111111111</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:

  1. otwórz plik XML w przeglądarce, prostym edytorze tekstu albo edytorze kodu,

  2. wyszukaj najważniejsze pola, np.:

    • NIP,
    • P_1,
    • P_2,
    • P_15,
    • Termin,
    • NrRB,
  3. 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 trzeba sprawdzić osobno.

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.

„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.

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.


Treść ma charakter informacyjny i edukacyjny. Nie stanowi porady prawnej ani podatkowej.

Przydatne serwisy

Status KSeF

Pierwszy serwis prezentuje informacje o statusie samego KSeF, drugi – komunikaty techniczne Ministerstwa Finansów.

Dalsze korzystanie z tej witryny oznacza akceptację Polityki prywatności . Używamy plików cookie, aby zapewnić najlepszą jakość korzystania z naszej witryny internetowej. Przeczytaj naszą Politykę plików cookie .
Akceptuj Odrzuć