Kody QR
Faktury wystawione w trybie offline muszą zawierać dwa kody QR zgodnie z dokumentacją techniczną CIRFMF (Centralna Informacja o Rachunkach i Fakturach Ministerstwa Finansów).
KOD I — kod weryfikacyjny
Dział zatytułowany „KOD I — kod weryfikacyjny”KOD I jest zawsze obecny na każdej fakturze (zarówno online, jak i offline). Umożliwia weryfikację autentyczności faktury.
Co zawiera
Dział zatytułowany „Co zawiera”| Pole | Opis |
|---|---|
| NIP wystawcy | Numer identyfikacji podatkowej sprzedawcy |
| Data wystawienia | Data z pola P_1 |
| Numer KSeF | Numer nadany przez KSeF (online) lub tymczasowy identyfikator (offline) |
| Hash SHA-256 | Skrót kryptograficzny treści faktury |
Weryfikacja
Dział zatytułowany „Weryfikacja”Odbiorca faktury skanuje KOD I i jest przekierowany na stronę weryfikacji KSeF:
| Środowisko | URL weryfikacji |
|---|---|
| Test | https://qr-test.ksef.mf.gov.pl/verify |
| Demo | https://qr-demo.ksef.mf.gov.pl/verify |
| Produkcja | https://qr.ksef.mf.gov.pl/verify |
Portal potwierdza autentyczność faktury i wyświetla jej dane.
KOD II — kod podpisu offline
Dział zatytułowany „KOD II — kod podpisu offline”KOD II jest obecny wyłącznie na fakturach offline. Zawiera podpis cyfrowy gwarantujący, że faktura została wystawiona przez uprawniony podmiot mimo niedostępności KSeF.
Co zawiera
Dział zatytułowany „Co zawiera”| Pole | Opis |
|---|---|
| Podpis ECDSA P-256 | Podpis cyfrowy danych faktury kluczem prywatnym certyfikatu offline |
| Identyfikator certyfikatu | Numer seryjny certyfikatu offline |
| Dane faktury | Zakodowane kluczowe dane (NIP, data, kwota) |
Algorytm podpisu
Dział zatytułowany „Algorytm podpisu”- System tworzy kanoniczny ciąg danych faktury (NIP, data, kwota, hash XML)
- Podpisuje go kluczem prywatnym ECDSA P-256 z certyfikatu offline
- Koduje podpis i dane w formacie QR
Umieszczenie na PDF
Dział zatytułowany „Umieszczenie na PDF”Oba kody QR drukowane są na wizualizacji PDF faktury:
┌──────────────────────────────────┐│ FAKTURA VAT ││ ││ (dane faktury) ││ ││ ┌──────┐ ┌──────┐ ││ │ QR │ │ QR │ ││ │ KOD I│ │KOD II│ ││ └──────┘ └──────┘ ││ Weryfikacja Podpis ││ offline │└──────────────────────────────────┘- KOD I — po lewej stronie, z etykietą “Weryfikacja”
- KOD II — po prawej stronie, z etykietą “Podpis offline” (tylko tryb offline)
Dla faktur online (wysłanych bezpośrednio do KSeF) PDF zawiera tylko KOD I.
Generowanie w BizFlow NH
Dział zatytułowany „Generowanie w BizFlow NH”Kody QR generowane są automatycznie przez PDF Sidecar (Node.js). Proces:
- API przesyła dane faktury i certyfikat offline do PDF Sidecar
- Sidecar generuje KOD I (hash + dane) i KOD II (podpis ECDSA)
- Kody QR wstawiane są do szablonu PDF
- Gotowy PDF zapisywany jest w MinIO
Nie jest wymagana żadna konfiguracja — wystarczy wgrany certyfikat offline.