Co zrobić, gdy plik XML z KSeF wyświetla się jako kod

Zwykle nic złego się nie stało: plik jest poprawny, tylko przeglądarka i Notatnik nie układają danych w fakturę. Wystarczy otworzyć go w narzędziu, które tworzy wizualizację. Problem pojawia się dopiero wtedy, gdy przeglądarka zgłasza błąd, plik jest pusty, urywa się w połowie albo w ogóle nie jest fakturą.

Otwórz narzędzie: Podgląd faktury KSeF (XML)

Dlaczego zamiast faktury widzisz znaczniki?

Bo plik XML nie zawiera wyglądu, tylko dane. Dokumentacja MDN opisuje to wprost: gdy XML nie wskazuje sposobu wyświetlania, przeglądarka pokazuje go w surowej postaci. Wygląd można podpiąć instrukcją xml-stylesheet, ale faktura KSeF nie może jej mieć: według dokumentacji API KSeF plik faktury nie może zawierać instrukcji przetwarzania XML. Dlatego każda poprawna faktura wygląda tak samo w każdej przeglądarce, a Notatnik po prostu pokazuje tekst pliku, czasem w jednej długiej linii.

Chrome i Edge dodają u góry angielski komunikat „This XML file does not appear to have any style information”. To nie jest błąd, tylko informacja, że dostajesz drzewo dokumentu.

Rozpoznaj swój przypadek

Co widziszCo to znaczyCo zrobić
Drzewo znaczników i komunikat o „style information”Plik jest poprawnie zbudowanyOtwórz go w narzędziu z wizualizacją
Znaczniki w NotatnikuEdytor pokazuje treść plikuZamknij bez zapisywania i otwórz jak wyżej
„This page contains the following errors” (Chrome)Plik nie jest poprawnym XMLPobierz go ponownie
Plik pusty, rozmiar 0 KBPobranie się nie udałoPobierz go ponownie
Tekst zaczyna się od %PDF-To PDF, nie XMLOtwórz go jako PDF albo pobierz XML
Tekst zaczyna się od PKTo archiwum ZIPRozpakuj je i otwórz plik ze środka
Główny znacznik to PotwierdzenieTo UPO, czyli poświadczenie odbioruPobierz plik samej faktury
Ä… zamiast ąEdytor źle odczytał kodowanieZobacz polskie znaki

Sygnatury %PDF- i PK to standardowe początki plików PDF i ZIP. ZIP pojawia się naturalnie: Aplikacja Podatnika KSeF zapisuje w nim kilka faktur pobranych naraz.

Jak sprawdzić, czy plik jest cały?

Otwórz plik w Notatniku, ale niczego nie zapisuj. Faktura FA(3) zaczyna się mniej więcej tak:

<?xml version="1.0" encoding="UTF-8"?>
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/">
  <Naglowek>
    <KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
    <WariantFormularza>3</WariantFormularza>

Sprawdź trzy rzeczy:

  1. Początek. Jest element Faktura z adresem przestrzeni nazw. Pierwsza linia <?xml ...?> jest opcjonalna. Inny adres może oznaczać archiwalną FA(2).
  2. Środek. Wyszukaj (Ctrl+F) cztery obowiązkowe części: Naglowek, Podmiot1, Podmiot2 i Fa.
  3. Koniec. Ostatni znacznik to </Faktura>. Jego brak oznacza plik ucięty.

Uwaga na pułapkę: Chrome przy uciętym pliku pokazuje błąd, a pod nim dane do miejsca uszkodzenia. Widoczna część wygląda wiarygodnie, ale faktury nie wolno odczytywać z takiego fragmentu.

Co zrobić z uszkodzonym plikiem?

Pobierz go ponownie, zamiast naprawiać. Specyfikacja XML wymaga, by program po błędzie składni przerwał normalne przetwarzanie, więc taki plik nie otworzy się poprawnie w żadnym narzędziu.

KSeF sprawdza każdy plik względem schematu i odrzuca niezgodne, dlatego uszkodzenie zwykle powstaje później: przy zapisie, przesyłaniu mailem albo edycji. Postępuj tak:

  • Plik z KSeF. Pobierz go jeszcze raz. Faktury są w systemie przez 10 lat od końca roku wystawienia.
  • Plik od kontrahenta. Poproś o numer KSeF i wyszukaj fakturę w Aplikacji Podatnika. Numer KSeF nie jest częścią pliku, więc sam plik nie dowodzi, że faktura jest w systemie.
  • Nie poprawiaj treści ręcznie. Link weryfikujący fakturę zawiera skrót SHA-256 jej pliku, więc plik po zmianach przestaje być tym samym plikiem. Błąd merytoryczny na fakturze poprawia się korektą.

Krzaki zamiast polskich liter

To problem wyświetlania, a nie faktury. Dokumentacja KSeF wymaga kodowania UTF-8 bez znacznika BOM. Bez tego znacznika edytor może źle odgadnąć kodowanie: litera ą odczytana jako Windows-1250 wygląda jak Ä….

Zamknij plik bez zapisywania. Zapis w błędnym kodowaniu dopiero naprawdę zmieniłby jego zawartość.

Co nie pomoże?

  • Zmiana programu domyślnego. W Windows zrobisz to w Ustawienia > Aplikacje > Aplikacje domyślne, wyszukując .xml. Ma to sens tylko wtedy, gdy wybrany program rozumie strukturę FA(3), bo inny pokaże ten sam kod.
  • Zmiana rozszerzenia. Zmienia skojarzony program, a nie treść pliku.

Jeśli piszesz własne rozwiązanie, punktem wyjścia może być transformata FA(3) udostępniona przez MF na ePUAP (nr ID wzoru 13775). Podręcznik KSeF 2.0 wskazuje ją jako pomoc przy tworzeniu wizualizacji.

Jak odczytać poprawny plik?

Podgląd faktury KSeF pokazuje poprawną fakturę jako dokument, a przy problemie mówi, co jest nie tak: plik pusty, PDF, ZIP, UPO albo błąd składni. Obsługuje FA(3) i archiwalną FA(2); przy innej strukturze, np. faktury VAT RR lub PEF, pokaże błąd albo uwagę. Nie sprawdza, czy faktura jest w KSeF (pełny zakres kontroli). Działa w przeglądarce, a plik nie trafia na serwer.

Najczęstsze pytania

Czy komunikat o braku informacji o stylu oznacza błąd w fakturze?

Nie. Chrome i Edge informują w ten sposób, że plik nie wskazuje wyglądu, więc pokazują jego drzewo znaczników. To stan normalny dla faktury z KSeF, bo instrukcje przetwarzania, w tym odnośnik do arkusza stylów, są w niej niedozwolone.

Czy otwarcie faktury w Notatniku może ją uszkodzić?

Samo otwarcie nie. Zmienić plik może dopiero zapisanie, np. po przypadkowym wpisaniu znaku albo w innym kodowaniu. Zamykaj edytor bez zapisywania, a gdy masz wątpliwości, pobierz plik z KSeF jeszcze raz.

Czy plik XML od kontrahenta jest na pewno fakturą z KSeF?

Sam plik tego nie dowodzi, bo numer KSeF nie jest jego częścią. Poproś wystawcę o numer KSeF i wyszukaj fakturę w Aplikacji Podatnika KSeF, na liście faktur zakupowych albo przez wyszukiwanie bez logowania.

Czy zmiana rozszerzenia pliku na .pdf albo .html rozwiąże problem?

Nie. Rozszerzenie decyduje tylko o tym, jaki program otworzy plik, a treść pozostaje taka sama. Plik XML nie stanie się w ten sposób dokumentem PDF. Potrzebna jest wizualizacja przygotowana z danych faktury.

Źródła

Wszystkie darmowe narzędzia