Dwa kody QR na fakturze KSeF (OFFLINE i CERTYFIKAT) oraz Certyfikat KSeF typu 2 z modułu MCU – instrukcja krok po kroku
Kompleksowy poradnik: dlaczego darmowe aplikacje MF nie obsługują trybu offline24, kiedy na wydruku PDF musisz umieścić dwa kody QR, czym różni się certyfikat uwierzytelniania od offline z MCU oraz jak wyliczyć termin dosyłki XML.
Wprowadzenie architektury KSeF 2.0 przyniosło przedsiębiorcom możliwość wystawiania faktur poza systemem w tzw. trybach szczególnych – przede wszystkim w trybie offline24 (art. 106nda ustawy o VAT), z którego może skorzystać każdy podatnik (np. wykonawca na budowie bez zasięgu internetu, handlowiec w terenie czy firma chcąca od razu wydać dokument klientowi przy odbiorze prac i dosłać go do KSeF najpóźniej w następnym dniu roboczym).
Wielu przedsiębiorców nie zdaje sobie jednak sprawy z dwóch kluczowych ograniczeń technicznych:
- Brak obsługi trybu offline w bezpłatnych narzędziach Ministerstwa Finansów: Zarówno webowa Aplikacja Podatnika KSeF 2.0, jak i rządowa Aplikacja Mobilna KSeF nie obsługują trybu offline24, nie pozwalają na wgranie certyfikatu do podpisu offline i nie generują wymaganych prawem wizualizacji z dwoma kodami QR przed wysyłką dokumentu do KSeF.
- Koniec tokenów KSeF z dniem 31 grudnia 2026 r.: Dotychczasowe tokeny autoryzacyjne wygasają z końcem 2026 roku i nigdy nie pozwalały na podpisywanie kodów QR w trybie offline. Od 1 stycznia 2027 r. (a w trybie offline24 już teraz!) niezbędne jest posiadanie Certyfikatu KSeF typu 2 pobranego z rządowego Modułu Certyfikatów i Uprawnień (MCU).
Kiedy na fakturze PDF umieszczamy 1 kod QR, a kiedy obowiązkowo 2 kody QR?
Zgodnie z rozporządzeniem Ministra Finansów (Dz. U. 2025 poz. 1815) oraz wytycznymi CIRFMF, liczba i rodzaj kodów QR na wizualizacji faktury zależą od momentu, w którym przekazujesz dokument nabywcy:
| Sytuacja wystawienia i wydania wizualizacji PDF | Wymagana liczba kodów QR | Podpis pod Kodem I | Podpis pod Kodem II | Termin dosłania XML do KSeF |
|---|---|---|---|---|
| Faktura Online (wydawana po przyjęciu przez KSeF i nadaniu numeru) | 1 kod QR | Numer KSeF (35 znaków) | Brak (nie dotyczy) | Faktura już znajduje się w KSeF |
| Tryb Offline24 (art. 106nda) – wydawana klientowi PRZED wysyłką do KSeF | 2 kody QR | KOD I: OFFLINE (skrót SHA-256) | KOD II: CERTYFIKAT (podpis cyfrowy wystawcy) | Najpóźniej w następnym dniu roboczym (do 23:59:59) |
| Niedostępność systemu KSeF (art. 106nh) – wydawana PRZED wysyłką | 2 kody QR | KOD I: OFFLINE (skrót SHA-256) | KOD II: CERTYFIKAT (podpis cyfrowy wystawcy) | Najpóźniej w następnym dniu roboczym po ustaniu niedostępności |
| Tryb awaryjny KSeF (art. 106nf) – wydawana PRZED wysyłką | 2 kody QR | KOD I: OFFLINE (skrót SHA-256) | KOD II: CERTYFIKAT (podpis cyfrowy wystawcy) | Do 7 dni roboczych od dnia zakończenia awarii |
Ważna uwaga praktyczna: Jeżeli wystawisz fakturę w trybie offline24, ale zanim wręczysz ją klientowi, najpierw wyślesz ją do KSeF i odbierzesz numer KSeF – wówczas na wizualizacji PDF umieszczasz już tylko 1 kod QR z nadanym numerem KSeF.
Pułapka w module MCU: Certyfikat KSeF typu 1 (Uwierzytelnianie) vs. Certyfikat typu 2 (Offline)
Pobierając certyfikaty z rządowego Modułu Certyfikatów i Uprawnień (MCU), podatnicy bardzo często popełniają kosztowny błąd, pobierając wyłącznie jeden certyfikat. System KSeF 2.0 rozróżnia bowiem dwa zupełnie inne profile certyfikatów:
- Certyfikat KSeF typu 1 (do uwierzytelniania w systemie):
- Zawiera w swojej nazwie (
Common Name) dopisekuwierzytelnianie. - Służy wyłącznie do logowania się do KSeF 2.0 (zastępuje wygasające 31 grudnia 2026 r. tokeny).
- NIE MOŻNA go użyć do wygenerowania drugiego kodu QR (
CERTYFIKAT) na fakturze offline!
- Zawiera w swojej nazwie (
- Certyfikat KSeF typu 2 (do trybu offline – pieczęć wystawcy):
- Zawiera w nazwie (
Common Name) dopisekoffline. - Służy wyłącznie do kryptograficznego podpisywania Drugiego Kodu QR (
CERTYFIKAT) na fakturach wydawanych nabywcy w trybie offline24, awaryjnym lub podczas niedostępności systemu przed ich przesłaniem do KSeF. - Przy generowaniu certyfikatu typu 2 w MCU rekomendowany jest wybór algorytmu ECDSA (krzywa P-256) zamiast starszego RSA-2048 – podpis ECDSA tworzy ponad trzykrotnie krótszy link weryfikacyjny, dzięki czemu kod QR na wydruku jest znacznie mniejszy, bardziej przejrzysty i błyskawicznie daje się zeskanować każdym telefonem.
- Zawiera w nazwie (
Co dokładnie kryje się w dwóch kodach QR i dlaczego pliku XML nie wolno tknąć po ich wygenerowaniu?
Specyfikacja techniczna Ministerstwa Finansów stawia przed generatorem kodów QR niezwykle rygorystyczne wymagania kryptograficzne:
- Pierwszy Kod QR (
OFFLINE): Zawiera adres weryfikacyjny środowiska KSeF, 10-cyfrowy NIP sprzedawcy, datę wystawienia faktury z polaP_1(w formacieDD-MM-RRRR) oraz kryptograficzny skrót SHA-256 wyliczony z surowych bajtów całego pliku XML FA(3) (zakodowany w formacie Base64URL, bez znaków dopełnienia). - Drugi Kod QR (
CERTYFIKAT): Zawiera kontekst podatnika, NIP sprzedawcy, numer seryjny Certyfikatu KSeF typu 2, ten sam skrót SHA-256 pliku XML oraz podpis cyfrowy (ECDSA P-256 lub RSA-PSS) złożony kluczem prywatnym wystawcy.
Złota zasada bezpieczeństwa: Po wygenerowaniu dwóch kodów QR i wydaniu PDF-a klientowi, pliku XML FA(3) nie wolno w żaden sposób przeformatować ani edytować przed wysyłką do KSeF. Nawet dodanie pojedynczej spacji, zmiana wcięcia lub zmiana kodowania znaków końca linii (CRLF na LF) całkowicie zmieni skrót SHA-256 i sprawi, że kod QR na wydruku klienta stanie się trwale nieważny!
W KSeF Studio (ksefstudio.pl) wyliczenie obu kodów QR odbywa się w ułamku sekundy lokalnie na Twoim komputerze lub telefonie, a w pakiecie Solo / Biuro swój klucz prywatny z MCU możesz zapisać w zaszyfrowanym Lokalnym Sejfie przeglądarki, odblokowywanym jednym dotknięciem przez Windows Hello lub FaceID – bez ryzyka wycieku klucza do chmury.