Kod QR w KSeF: jak sprawdzić fakturę z PDF i pliku XML
Faktura z Krajowego Systemu e-Faktur (KSeF) to plik XML z numerem nadanym przez system, a PDF z maila to jego „wydruk”. Pokażemy, jak sprawdzić, czy PDF zgadza się z XML, i dlaczego ta zgodność nie wystarcza do stwierdzenia, że faktura jest w KSeF.
Na tej stronie
Co jest fakturą, a co jej „wydrukiem”
Faktura ustrukturyzowana (czyli faktura wystawiona w KSeF) to plik XML wystawiony w KSeF z przydzielonym numerem KSeF.1 PDF albo wydruk to podgląd faktury (wizualizacja) tego pliku. Ministerstwo Finansów wymaga, żeby faktura użyta poza KSeF była spójna z plikiem XML, czytelna i nie zawierała sprzeczności z plikiem przyjętym przez system.2
Krajowy nabywca z NIP odbiera fakturę w KSeF. Sprzedawca może dodatkowo przekazać mu wydruk lub PDF, ale ma wtedy opatrzyć go kodem QR z numerem KSeF.3
Co jeszcze może przyjść mailem
Nie każdy PDF to wizualizacja faktury z KSeF:
- Potwierdzenie transakcji. To dobrowolny dokument bez charakteru podatkowego. Sprzedawca może go wydać, gdy faktura nie ma jeszcze numeru KSeF.3
- Faktura poza KSeF dla odbiorców, którzy nie odbierają faktur w systemie, np. osoby prywatnej albo firmy zagranicznej.4
Dwa kody QR mogą mieć potwierdzenie transakcji, ale także faktura wystawiona w trybie offline dla odbiorcy zagranicznego albo osoby prywatnej (kody z napisami „OFFLINE” i „CERTYFIKAT”).3 Nie rozpoznasz tego po samym wyglądzie PDF-a. Zapytaj sprzedawcę, co to za dokument.
Jeśli PDF nie ma kodu QR ani numeru KSeF, nie wiesz jeszcze, czym jest. Zapytaj sprzedawcę.
Cztery kroki sprawdzenia
1. Znajdź kod QR i numer pod nim. Przy fakturze z KSeF użytej poza systemem numer KSeF znajduje się pod kodem QR.5
2. Sprawdź kod na stronie Ministerstwa. Zeskanuj go telefonem albo kliknij link. Strona MF nie wymaga logowania. Jeśli faktura jest w KSeF, pokaże informację, że faktura znajduje się w KSeF, i podstawowe dane: numer KSeF, NIP sprzedawcy, datę wystawienia, datę nadania numeru, tryb wystawienia oraz informację, czy dokument w KSeF zgadza się z tym, dla którego utworzono link. Jeśli faktury nie ma, zobaczysz komunikat o jej braku.6 Tylko ta strona MF (albo wyszukiwanie w Aplikacji Podatnika) pokaże, czy faktura jest w KSeF. Porównanie, które robimy u siebie, tego nie rozstrzyga.
3. Pobierz XML. Po podaniu numeru faktury, NIP nabywcy i kwoty należności ogółem pobierzesz fakturę w formacie XML lub PDF.6 Możesz też użyć opcji „Wyszukaj fakturę” w Aplikacji Podatnika (bez logowania): wpisujesz numer KSeF, numer faktury, NIP i nazwę nabywcy oraz kwotę.7
4. Porównaj PDF z XML. Sprawdź numer faktury, NIP-y, daty i kwotę. Możesz zrobić to ręcznie albo w SprawdźKSeF.
Co porównuje SprawdźKSeF
Wrzucasz PDF i XML (albo całą paczkę). Z PDF-a odczytujemy kod QR i tekst, z XML numer faktury, NIP-y, daty i kwoty. Dla każdego PDF-a pokazujemy jeden z wyników:
- zgodny z plikiem XML,
- rozbieżny: lista pól, np. „w PDF 1 230,00, w XML 1 320,00”,
- bez pary: nie ma XML do tego PDF-a,
- nie do odczytu: skan bez tekstu i bez kodu.
Jeśli kilka faktur ma te same dane (numer, NIP, data, kwota), pokażemy możliwy duplikat, a nie błąd. W prawdziwych paczkach ta sama faktura bywa raz jako PDF z maila, raz jako XML z KSeF.
Szczegóły dla ciekawych: kod QR i „odcisk” pliku
Kod QR typu I to link do strony MF. Zawiera NIP sprzedawcy, datę wystawienia i odcisk pliku XML (skrót SHA-256 zapisany w Base64URL).8 Jeśli wczytasz ten sam plik XML, odcisk się zgodzi. Plik zapisany w edytorze albo ze zmienionymi końcami linii da inny odcisk, choć faktura wygląda tak samo. Dlatego w razie niezgodności piszemy neutralnie, że plik różni się od tego, z którego powstał kod.
Czego to porównanie nie potwierdza
Zgodność PDF z XML ani zgodność kodu QR z plikiem nie dowodzi, że faktura jest w KSeF. Według dokumentacji MF kod typu I składa się z adresu, daty, NIP-u i odcisku pliku; podpis cyfrowy jest tylko w kodzie typu II, używanym przy fakturach offline.8 Z tego wynika, że do dowolnego pliku można zbudować link w poprawnym formacie. Dlatego zawsze wykonaj krok 2, czyli sprawdź na stronie MF.
Zwróć też uwagę na adres z kodu. Dokumentacja MF podaje dla kodów KSeF adresy w domenie ksef.mf.gov.pl, w produkcji https://qr.ksef.mf.gov.pl.8 Porównaj cały początek adresu (https://qr.ksef.mf.gov.pl/…): adres w rodzaju qr.ksef.mf.gov.pl.example.com tylko zaczyna się podobnie. Adresy zaczynające się od qr-test. i qr-demo. to środowiska próbne MF; faktura z takim kodem nie jest prawdziwą fakturą z produkcyjnego KSeF.8 Jeśli kod prowadzi gdzie indziej, nie klikaj, tylko zapytaj sprzedawcę.
Rozbieżność nie musi oznaczać niczego złego. Przyczyną może być korekta, inna faktura, błąd programu fakturującego albo zmieniony plik. Najlepiej skontaktować się ze sprzedawcą.
SprawdźKSeF nie zastępuje księgowej ani doradcy. Nie rozstrzygamy, która wersja jest „właściwa” do rozliczeń.
Wypróbuj: wrzuć PDF i XML albo sprawdź kod QR.
Treść tej strony: licencja CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.pl), autor: SprawdźKSeF (sprawdzksef.pl).
Źródła
-
MF, Podręcznik KSeF 2.0, cz. II (wersja z 6.08.2026), rozdz. 1.1: faktura ustrukturyzowana „jest wystawiona przy użyciu KSeF wraz z przydzielonym numerem”, „przyjmuje format pliku XML”. https://ksef.podatki.gov.pl/media/rronoxyt/podrecznik-ksef-20-cz-ii-wystawianie-i-otrzymywanie-faktur-w-ksef-06082026.pdf (dostęp 2026-10-28). wróć
-
MF, Podręcznik KSeF 2.0, cz. II, rozdz. 1.6.5 („Zawartość faktury przekazywanej odbiorcom poza KSeF”: spójność z XML, czytelność, brak sprzeczności z plikiem przyjętym przez system). Adres jak wyżej (dostęp 2026-10-28). wróć
-
MF, Podręcznik KSeF 2.0, cz. II, rozdz. 1.6.6 (potwierdzenie transakcji „nie ma charakteru podatkowego”; krajowy nabywca z NIP: sprzedawca „może dodatkowo wydać” wydruk lub PDF „opatrzony kodem QR (z oznaczeniem numeru KSeF)”; potwierdzenie transakcji z dwoma kodami QR w trybie ONLINE; faktura wydawana w trybie OFFLINE nabywcy z art. 106gb ust. 4 także z dwoma kodami QR, „z napisami „OFFLINE” i „CERTYFIKAT””). Adres jak wyżej (dostęp 2026-10-28). wróć, 2, 3
-
MF, Podręcznik KSeF 2.0, cz. II, rozdz. 1.6.5 (przypadki z art. 106gb ust. 4: nabywca zagraniczny, konsument, podmiot bez NIP) oraz ustawa z 11.03.2004 r. o VAT, art. 106gb ust. 4, w brzmieniu z Dz.U. 2023 poz. 1598 i Dz.U. 2025 poz. 1203, https://api.sejm.gov.pl/eli/acts/DU/2023/1598/text.pdf (dostęp 2026-10-28). wróć
-
MF, Podręcznik KSeF 2.0, cz. II, rozdz. 4.1 i 5.4.1: przy fakturze online jeden kod QR (KOD I) „a pod tym kodem znajduje się numer KSeF faktury”. Adres jak wyżej (dostęp 2026-10-28). Obowiązek oznaczenia kodem przy użyciu faktury poza KSeF: art. 106gb ust. 5 i 5a ustawy o VAT (Dz.U. 2023 poz. 1598; Dz.U. 2025 poz. 1203, art. 2), https://api.sejm.gov.pl/eli/acts/DU/2025/1203/text.pdf (dostęp 2026-10-28). wróć
-
MF, Podręcznik KSeF 2.0, cz. II, rozdz. 5.5 „Dostęp dwuetapowy do faktury z wykorzystaniem kodu QR”: krok 1 (podstawowe dane i informacja, czy dokument w KSeF jest zgodny z dokumentem, dla którego wygenerowano link), krok 2 (numer faktury z pola P_2, identyfikator nabywcy, kwota z pola P_15; pobranie w formacie XML lub PDF). Adres jak wyżej (dostęp 2026-10-28). wróć, 2
-
MF, Podręcznik użytkownika Aplikacji Podatnika KSeF 2.0, wersja 2.6 (6.08.2026), rozdz. 4.2.1 „Anonimowe wyszukiwanie faktury”. https://ksef.podatki.gov.pl/media/qocjn3ai/podrecznik-uzytkownika-aplikacji-podatnika-ksef-20_06082026.pdf (dostęp 2026-10-29). wróć
-
MF, repozytorium dokumentacji API KSeF (CIRFMF/ksef-docs), „Kody weryfikujące QR” (21.08.2025): KOD I = adres + data wystawienia + NIP sprzedawcy + skrót SHA-256 pliku (Base64URL); KOD II tylko dla faktur offline, z podpisem certyfikatem; adresy środowisk, w tym PROD
https://qr.ksef.mf.gov.pl. https://github.com/CIRFMF/ksef-docs/blob/main/kody-qr.md (dostęp 2026-10-28). wróć, 2, 3, 4