Instrukcja obsługi Free
Dokumentacja Free

Instrukcja obsługi

Intuiti Integrator KSeF

Intuiti Integrator KSeF Free to bezpłatna aplikacja webowa do pobierania i przeglądania faktur z Krajowego Systemu e-Faktur (KSeF). Działa bezpośrednio w przeglądarce — bez instalacji, bez rejestracji, bez opłat. Wszystkie dane (faktury, certyfikat, dane firm) przechowywane są wyłącznie lokalnie w Twojej przeglądarce — nie trafiają na żaden serwer.

Pierwsze kroki

🚀 Konfiguracja

Przed pierwszym importem faktur należy skonfigurować dwie rzeczy: dodać firmę (NIP) oraz wgrać certyfikat kwalifikowany KSeF. Dashboard prowadzi przez ten proces ponumerowanymi, pulsującymi panelami w ściśle ustalonej kolejności — panel certyfikatu jest zablokowany, dopóki firma nie jest gotowa, a panel pobierania faktur — dopóki nie masz gotowych obu poprzednich kroków (zobacz sekcję Panele akcji i liczniki).

🏢 Dodanie firmy

Aplikacja obsługuje wiele firm jednocześnie — każda identyfikowana jest przez NIP. Faktury każdej firmy przechowywane są osobno.

1
Na dashboardzie kliknij panel 🏢 Dodaj firmę lub przycisk w sekcji Firma w menu bocznym.
2
Wpisz NIP (10 cyfr). Aplikacja automatycznie pobierze nazwę firmy z rejestru GUS REGON — poczekaj chwilę na pojawienie się statusu ✅ znaleziono.
3
Sprawdź lub uzupełnij nazwę firmy.
4
Wybierz kolor znacznika — ułatwia rozróżnianie firm w trybie wielofirmowym.
5
Opcjonalnie zaznacz „Domyślna firma", by ta firma była wybierana automatycznie po otwarciu aplikacji.
6
Kliknij Zapisz. Firma pojawi się w liście w menu bocznym i w panelu ustawień.
💡 Jeśli GUS nie znajdzie firmy automatycznie (np. nowe przedsiębiorstwo), wpisz nazwę ręcznie lub kliknij przycisk 🏛️ GUS po wpisaniu NIP.

🔐 Certyfikat kwalifikowany KSeF

Do pobierania faktur z KSeF wymagany jest certyfikat kwalifikowany lub token API. Aplikacja obsługuje logowanie certyfikatem — podpisuje sesję podpisem XAdES i uzyskuje dostęp do Twoich faktur.

Czego potrzebujesz:

  • Plik certyfikatu — format .CRT, .PEM lub .CER
  • Klucz prywatny — format .KEY lub .PEM
  • Hasło klucza — jeśli klucz jest zaszyfrowany (opcjonalne)
ℹ️ Certyfikaty są przypisane do zalogowanego użytkownika, nie do aktywnej firmy. Jeśli logowanie jest wyłączone, wszystkie certyfikaty trafiają do jednej, wspólnej puli. Możesz zapisać wiele certyfikatów (patrz sekcja Certyfikaty KSeF — zarządzanie) — dokładnie jeden jest oznaczony jako domyślny do pobierania danych z KSeF.
1
Kliknij panel 🔐 Wgraj certyfikat na dashboardzie lub przejdź do ⚙️ Ustawienia.
2
W karcie ➕ Dodaj nowy certyfikat przeciągnij lub wybierz plik certyfikatu (.CRT/.PEM/.CER). Pojawi się napis ✔ nazwa_pliku.
3
Przeciągnij lub wybierz klucz prywatny (.KEY/.PEM).
4
Jeśli klucz ma hasło — wpisz je w polu Hasło klucza prywatnego.
5
Opcjonalnie zmień Nazwę certyfikatu (widoczna na liście i w menu bocznym).
6
Kliknij 💾 Dodaj certyfikat. Pierwszy dodany certyfikat staje się automatycznie domyślny do pobierania z KSeF.
7
Certyfikat pojawi się na liście powyżej formularza. Kliknij przy nim 🔌 Testuj — aplikacja sprawdzi czy poprawnie autoryzuje się w KSeF i czy ma dostęp do faktur. Wynik pojawi się w panelu logów po prawej stronie.
Tak wygląda certyfikat na liście po zapisaniu
Certyfikat firmowy 2025 Domyślny do pobierania z KSeF
certyfikat.crt · klucz.key
🔌 Testuj 🔑 Zmień hasło 🗑 Usuń
Zielona ramka i odznaka oznaczają certyfikat aktualnie używany do pobierania danych z KSeF. Przycisk „Ustaw jako domyślny” pojawia się tylko przy certyfikatach, które nim jeszcze nie są.
🔒 Certyfikat i klucz prywatny są szyfrowane AES-256-GCM i przechowywane wyłącznie w IndexedDB Twojej przeglądarki. Nigdy nie opuszczają urządzenia w postaci jawnej. Hasło klucza jest przechowywane tylko w pamięci aktywnej karty — kasowane przy zamknięciu strony.
ℹ️ Certyfikat jest powiązany z konkretnym urządzeniem (machine-key). Nie można go przenieść do innego komputera przez backup — trzeba go wgrać ponownie.

🔌 Testowanie dostępu do KSeF

Panel certyfikatu ma wbudowany tester połączenia. Pozwala sprawdzić przed importem czy certyfikat jest poprawny, hasło się zgadza i czy konto ma dostęp do KSeF — bez uruchamiania pełnego importu.

Układ panelu:

ElementOpis
🔌 Testuj Przycisk przy każdym certyfikacie na liście (nie jeden globalny) — testuje dokładnie ten certyfikat, niezależnie od tego, czy jest domyślny.
📋 Logi testowe Panel po prawej stronie formularza. Pokazuje szczegółowy przebieg testu w czasie rzeczywistym.

Dwa kroki testu:

1
Dostęp do KSeF — aplikacja podpisuje żądanie autoryzacji (XAdES/SHA-256) certyfikatem i wysyła do API KSeF. Po sukcesie wyświetla NIP podmiotu, nazwę firmy i typ tokenu zwróconego przez KSeF.
2
Dostęp do faktur KSeF — potwierdza że konto powiązane z certyfikatem ma uprawnienia do pobierania faktur (Subject1 — sprzedaż, Subject2 — zakup). Ten krok wykonywany jest automatycznie po sukcesie kroku 1.

Stany w panelu logów:

WskaźnikZnaczenie
(szary)Oczekuje — test nie został jeszcze uruchomiony
🔄 W toku…Krok w trakcie wykonywania — trwa połączenie z API KSeF
OKSukces — etap zakończony pomyślnie
BłądBłąd — szczegóły w treści logu poniżej nagłówka kroku
💡 Test nie pobiera faktur ani nie rozpoczyna importu — wykonuje wyłącznie autoryzację i natychmiast kończy sesję. Bezpiecznie można go uruchomić wielokrotnie.

Typowe komunikaty błędów i co oznaczają:

Komunikat w loguPrzyczynaCo zrobić
Błąd podpisu / nieprawidłowy certyfikat Plik .CRT lub .KEY jest uszkodzony, niepasujący lub w złym formacie Sprawdź czy wgrałeś właściwe pliki; plik certyfikatu i klucz muszą stanowić parę
Nieprawidłowe hasło klucza Klucz prywatny jest zaszyfrowany, a podane hasło jest błędne Sprawdź hasło; jeśli klucz nie ma hasła — zostaw pole puste i zapisz certyfikat ponownie
Brak uprawnień / nieznany NIP Certyfikat nie jest powiązany z tym NIP-em w KSeF, lub konto nie zostało aktywowane Sprawdź czy NIP firmy w aplikacji zgadza się z NIP-em powiązanym z certyfikatem
Błąd połączenia / timeout Brak dostępu do internetu lub API KSeF jest chwilowo niedostępne Sprawdź połączenie sieciowe; spróbuj ponownie za chwilę
Hasło certyfikatu zaszyfrowane na innej maszynie Fingerprint urządzenia zmienił się (zmiana GPU, rozdzielczości, strefy czasowej lub przeglądarki) Usuń certyfikat (przycisk 🗑 Usuń) i wgraj go ponownie na tym urządzeniu

🌐 Wybór środowiska KSeF

W menu bocznym, sekcja Środowisko, wybierz odpowiednie środowisko KSeF:

ŚrodowiskoKiedy używać
🔴 ProdukcjaCodzienne pobieranie rzeczywistych faktur z KSeF Ministerstwa Finansów.
🟡 DemoTestowanie aplikacji na demonstracyjnych danych MF — bez ryzyka.
🔵 TestŚrodowisko testowe KSeF dla deweloperów i integratorów.
⚠️ Do codziennej pracy wybieraj zawsze Produkcja. Demo i Test pobierają dane testowe, nie rzeczywiste faktury.

Faktury

⬇️ Import faktur z KSeF

Import pobiera faktury bezpośrednio z API KSeF i zapisuje je lokalnie w przeglądarce. Kliknij ⬇️ Wczytaj z KSeF w menu bocznym lub w panelu importu.

▶️ Przebieg importu

1
Wybierz rodzaj faktur: 📥 Zakup (faktury kosztowe) lub 📤 Sprzedaż (faktury wystawione przez Twoją firmę).
2
Ustaw zakres dat — pola Data od i Data do. Domyślnie ostatnie 30 dni. Maksymalny zakres to 90 dni (limit API KSeF).
3
Kliknij ⬇️ Rozpocznij import. Przycisk jest aktywny tylko gdy firma i certyfikat są skonfigurowane.
4
Obserwuj pasek postępu i komunikaty: Inicjalizacja → Autoryzacja → Zlecono eksport → Pobieranie paczek → Zapisano X faktur.
5
Po zakończeniu aplikacja automatycznie przechodzi do listy pobranych faktur.
💡 Faktury są importowane przyrostowo — te same faktury pobrane ponownie nie tworzą duplikatów (identyfikator to unikalny numer KSeF).
ℹ️ Jeśli w wybranym zakresie dat nie ma faktur, aplikacja poinformuje o tym komunikatem — nie jest to błąd.

🗒️ Log techniczny

Pod paskiem postępu dostępny jest rozwijany log techniczny importu. Pokazuje komunikaty z timestampami i poziomami:

PoziomZnaczenie
[INFO]Informacja o etapie importu.
[OK]Etap zakończony sukcesem.
[WARN]Ostrzeżenie — import kontynuuje, ale warto sprawdzić.
[ERR]Błąd — sprawdź certyfikat, NIP, daty lub połączenie z internetem.
💡 Kliknij ✕ Wyczyść w logu, by go wyczyścić. Log nie jest zapisywany po zamknięciu strony.

Faktury

📋 Lista faktur

Zakup i Sprzedaż to dwa oddzielne widoki listy faktur. Dostępne z menu bocznego lub przez kliknięcie kafelka statystyk na dashboardzie.

📑 Kolumny tabeli

KolumnaOpis
DataData wystawienia faktury (YYYY-MM-DD). Kliknij nagłówek by posortować.
Nr fakturyNumer dokumentu nadany przez wystawcę. Kliknij nagłówek by posortować.
Nr KSeFUnikalny identyfikator faktury w systemie KSeF Ministerstwa Finansów.
Data KSeFData i czas nadania numeru KSeF (wyodrębniona z identyfikatora).
KontrahentNazwa sprzedawcy (zakup) lub nabywcy (sprzedaż).
NIP10-cyfrowy numer identyfikacji podatkowej kontrahenta.
NettoWartość netto faktury w PLN. Kliknij nagłówek by posortować.
VATKwota podatku VAT. Kliknij nagłówek by posortować.
BruttoWartość brutto faktury. Kliknij nagłówek by posortować.
WalutaWaluta faktury (np. PLN, EUR, USD).

Na dole tabeli wyświetlana jest suma strony (netto / VAT / brutto) dla aktualnie wyświetlonych 50 faktur. Stronicowanie: przyciski ← Poprzednia / Następna →, informacja Strona X / Y.

🔍 Szukanie i sortowanie

Pole wyszukiwania w pasku narzędzi filtruje wyniki na bieżąco — działa po:

  • numerze faktury
  • numerze KSeF
  • nazwie i NIP kontrahenta
  • dacie wystawienia
  • kwocie (netto / VAT / brutto)
  • walucie

Sortowanie — kliknij nagłówek kolumny (Data, Nr faktury, Netto, VAT, Brutto). Ponowne kliknięcie odwraca kierunek (▲ rosnąco / ▼ malejąco).

💡 Wyszukiwanie resetuje paginację do strony 1. Jeśli wynik jest pusty, pojawi się komunikat „Brak wyników dla: …".

👁️ Podgląd faktury

Kliknięcie wiersza faktury otwiera panel podglądu po prawej stronie ekranu. Granica między listą a podglądem jest przesuwana — chwyć i przeciągnij pionową linię.

Dostępne akcje w panelu podglądu:

  • ← / → — nawigacja do poprzedniej / następnej faktury
  • 🖨️ Drukuj — drukuje wizualną reprezentację faktury
  • ⬇️ Pobierz XML — pobiera oryginalny plik XML z KSeF na dysk
  • « XML — przełącza między widokiem HTML a surowym podświetlanym XML
  • — zamknięcie podglądu
ℹ️ Widok HTML faktury generowany jest przez transformację XSLT z oryginalnego pliku XML KSeF — dokładnie taki sam format jak w systemie KSeF MF.

Panel główny

📊 Dashboard

Dashboard to strona główna aplikacji. Wyświetla aktualny stan konfiguracji, liczniki faktur oraz wykresy analityczne. Kliknij 📊 Dashboard w menu lub ikonę odświeżenia by zaktualizować dane.

🔢 Panele akcji i liczniki

Na górze dashboardu widoczne są trzy ponumerowane panele akcji — to kreator pierwszej konfiguracji, który trzeba przejść w podanej kolejności:

  • 1. 🏢 Firma — zawsze dostępny jako pierwszy krok. Żółty i delikatnie pulsujący, dopóki żadna firma nie jest skonfigurowana; zielony po dodaniu firmy. Kliknij by dodać / zmienić firmę.
  • 2. 🔐 Certyfikat KSeFzablokowany (wyszarzony, ikona 🔒) dopóki firma nie jest gotowa. Gdy firma zostanie skonfigurowana, panel odblokowuje się i zaczyna pulsować — to znak, że teraz należy wgrać certyfikat.
  • 3. ⬇️ Pobierz z KSeFzablokowany, dopóki oba wcześniejsze kroki nie są ukończone. Odblokowuje się i zaczyna pulsować dopiero gdy firma i certyfikat są gotowe.

Numer w prawym górnym rogu panelu pokazuje kolejność etapu, a pulsująca poświata wskazuje dokładnie jeden — ten, który należy wykonać teraz. Ta sama zasada obowiązuje w menu bocznym: pozycje 🔐 Certyfikat KSeF i ⬇️ Pobierz z KSeF są tam nieaktywne (wyszarzone, z ikoną 🔒) dopóki nie ukończysz poprzedniego kroku — kliknięcie w zablokowaną pozycję jedynie lekko „potrząśnie" przyciskiem, bez przejścia dalej.

Tak wyglądają panele przed skonfigurowaniem firmy
1
⚠️
Firma
Nie skonfigurowano
2
🔒
Certyfikat KSeF
Odblokuje się po kroku 1
3
🔒
Pobierz z KSeF
Odblokuje się po kroku 2
Panel 1 pulsuje (delikatna bursztynowa poświata) — to bieżące zadanie. Panele 2 i 3 są wyszarzone i oznaczone kłódką — nie da się w nie kliknąć, dopóki krok 1 nie zostanie ukończony. Po dodaniu firmy panel 2 odblokuje się i zacznie pulsować zamiast panelu 1, a panel 3 odblokuje się dopiero po dodaniu certyfikatu.

Poniżej trzy kafelki statystyk — klikalne, przenoszą bezpośrednio do listy:

  • 📥 Zakup — liczba faktur zakupowych w lokalnej bazie
  • 📤 Sprzedaż — liczba faktur sprzedażowych
  • 📄 Łącznie — suma wszystkich faktur aktywnej firmy

📈 Wykresy i KPI

Sekcja Zestawienia miesięczne pojawia się gdy aplikacja ma zaimportowane faktury. Zawiera:

  • 4 karty KPI — sumy netto zakupów, sprzedaży, VAT i wskaźnik rentowności
  • Wykres słupkowy SVG — porównanie rok bieżący vs poprzedni. Zakładki: Przychody / Koszty / Rentowność. Najedź kursorem na słupek by zobaczyć wartość.
  • Wykres kołowy (donut) — struktura kosztów i przychodów YTD
  • Wykres liniowo-słupkowy — miesięczna rentowność z osią wtórną
  • Wykres grupowany — trendy 12-miesięczne zakup vs sprzedaż
  • Słupkowe wykresy CSS — miesięczne zestawienie zakupów i sprzedaży

🏆 Top kontrahenci

Na dole dashboardu wyświetlane są dwie listy Top 5 kontrahentów według łącznej wartości netto faktur:

  • Dostawcy — firmy od których kupujesz najwęcej (z NIP)
  • Odbiorcy — firmy którym sprzedajesz najwięcej (z NIP)

Zarządzanie

🏢 Zarządzanie firmami

Aplikacja obsługuje wiele firm (NIP-ów) na raz. Każda firma ma niezależny zestaw faktur, certyfikat i konfigurację.

➕ Dodaj / edytuj firmę

Dodawanie firmy dostępne z: przycisku w menu bocznym, panelu akcji na dashboardzie lub zakładki Firmy w ustawieniach.

PoleOpis
NIP10 cyfr, wymagane. Unikalny identyfikator firmy. Automatyczne sprawdzenie w GUS.
Nazwa firmyPobierana automatycznie z GUS lub wpisana ręcznie.
Kolor znacznika8 kolorów do wyboru. Ułatwia identyfikację w trybie wielofirmowym.
Domyślna firmaFirma aktywna po otwarciu aplikacji.

Edycja — kliknij Edytuj przy karcie firmy w ustawieniach. Usunięcie — kliknij Usuń — usuwa firmę wraz z jej fakturami z lokalnej bazy.

⚠️ Usunięcie firmy jest nieodwracalne. Zrób backup przed usunięciem, jeśli chcesz zachować faktury.

🔄 Przełączanie między firmami

Aktywna firma widoczna jest na górze sekcji Firma w menu bocznym. Kliknij jej nazwę, by rozwinąć listę wszystkich firm i wybrać inną. Po wybraniu — dashboard, lista faktur i statystyki odświeżają się automatycznie.

💡 Każda firma może mieć własny certyfikat KSeF. Przy przełączeniu firmy certyfikat też się zmienia.

Zarządzanie

⚙️ Ustawienia

Panel ustawień dostępny przez ⚙️ Ustawienia w menu bocznym lub przez kliknięcie 🔐 Certyfikat KSeF. Zawiera zarządzanie certyfikatem oraz listę firm.

🔑 Certyfikaty KSeF — zarządzanie

Lewa karta ustawień pokazuje listę wszystkich Twoich certyfikatów (przypisanych do zalogowanego użytkownika, nie do konkretnej firmy) oraz formularz dodawania nowego poniżej listy. Możesz zapisać dowolną liczbę certyfikatów — np. osobny dla każdego obsługiwanego klienta, albo testowy i produkcyjny.

Przykładowa lista dwóch certyfikatów
Certyfikat firmowy 2025 Domyślny do pobierania z KSeF
certyfikat.crt · klucz.key
🔌 Testuj 🔑 Zmień hasło 🗑 Usuń
Certyfikat testowy
test.crt · test.key
⭐ Ustaw jako domyślny 🔌 Testuj 🔑 Zmień hasło 🗑 Usuń

Akcje przy każdym certyfikacie na liście:

AkcjaCo robi
⭐ Ustaw jako domyślny Oznacza ten certyfikat jako używany do pobierania danych z KSeF. Widoczny tylko przy certyfikatach, które nie są jeszcze domyślne — dokładnie jeden certyfikat może być domyślny naraz.
🔌 Testuj Uruchamia dwuetapowy test połączenia z KSeF dla tego konkretnego certyfikatu (nie musi być domyślny). Wynik w panelu logów po prawej.
🔑 Zmień hasło Rozwija pole do wpisania nowego hasła klucza prywatnego — bez konieczności ponownego wgrywania plików certyfikatu i klucza.
🗑 Usuń Usuwa certyfikat z IndexedDB (po potwierdzeniu). Jeśli usunięty certyfikat był domyślny, a zostały inne — jeden z pozostałych automatycznie staje się nowym domyślnym.

Formularz „➕ Dodaj nowy certyfikat” służy wyłącznie do dodawania kolejnych certyfikatów — nie edytuje istniejących (do tego służą akcje z listy powyżej).

  • 💾 Dodaj certyfikat — zapisuje nowy certyfikat jako kolejną pozycję na liście
  • Wyczyść — czyści pola formularza bez zapisywania

🗑️ Reset danych

W dolnej części lewej karty ustawień znajduje się strefa niebezpieczna:

  • Wyczyść dane firmy — usuwa wszystkie faktury aktywnej firmy z IndexedDB. Firma i certyfikat pozostają.
  • Reset aplikacji — usuwa absolutnie wszystko: firmy, faktury, certyfikaty, ustawienia. Aplikacja wraca do stanu jak po pierwszym uruchomieniu.
⚠️ Reset aplikacji jest nieodwracalny. Przed użyciem wykonaj backup.

Zarządzanie

💾 Backup

Panel backup dostępny przez 💾 Backup w menu bocznym. Pozwala pobrać kopię zapasową wszystkich faktur i firm oraz przywrócić dane z pliku.

📥 Tworzenie backupu

Kliknij 💾 Pobierz backup (.zip). Plik ZIP zostanie automatycznie pobrany na dysk. Zawiera:

  • Wszystkie faktury (pliki XML + metadane JSON) dla wszystkich firm
  • Dane firm (NIP, nazwy, kolory)
  • Informację o liczbie faktur i dacie backupu
⚠️ Certyfikat KSeF nie jest objęty backupem. Jest zaszyfrowany kluczem maszynowym — nie można go przenieść między urządzeniami. Po przywróceniu backupu na nowym urządzeniu certyfikat trzeba wgrać ponownie.

Historia backupów widoczna jest w prawej karcie — nazwa pliku, data i liczba faktur. Kliknij przy wpisie by usunąć go z historii (nie usuwa pliku z dysku).

📂 Przywracanie danych

1
W dolnej sekcji panelu Backup przeciągnij plik .zip na obszar przywracania lub kliknij by wybrać z dysku.
2
Sprawdź wyświetloną nazwę i rozmiar pliku.
3
Kliknij 📂 Przywróć dane.
⚠️ Przywrócenie backupu nadpisuje istniejące faktury i firmy. Aktualnych danych nie da się odzyskać po tej operacji.

Moduły

🚀 Moduły

Moduły to rozszerzenia aplikacji dostępne przez 🚀 Moduły w menu bocznym. Każdy moduł to osobne narzędzie działające wewnątrz interfejsu aplikacji.

⚖️ Wyszukiwarka KRS

Pozwala pobrać pełne dane rejestrowe podmiotu bezpośrednio z Krajowego Rejestru Sądowego (KRS) — oficjalnego API Ministerstwa Sprawiedliwości. Wystarczy podać NIP (domyślnie) lub numer KRS.

Co możesz uzyskać:

  • Dane identyfikacyjne — NIP, REGON, numer KRS, forma prawna, daty rejestracji, sąd rejestrowy, poprzedni rejestr, adres e-Doręczeń
  • Adres siedziby — ulica, kod pocztowy, miejscowość, województwo, powiat, gmina
  • Zarząd i organ reprezentacji — skład zarządu, funkcje, sposób reprezentacji (kto podpisuje dokumenty)
  • Rada nadzorcza — skład i funkcje członków
  • Prokurenci — rodzaj prokury (samoistna / łączna)
  • Kapitał zakładowy — wartość, liczba i serie akcji/udziałów, kapitał warunkowy i docelowy
  • PKD — przeważająca i pozostałe kody działalności
  • Sprawozdania finansowe — historia złożonych SF z datami, pobieranie odpisu PDF (aktualny i pełny), link do XML na portalu MS
  • Powiązania korporacyjne — połączenia, podziały i przekształcenia z klikalnymi KRS powiązanych spółek
  • Oddziały i jednostki terenowe — lista z adresami (w tym zagraniczne)
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Wyszukiwarka KRS.
2
Domyślnie aktywna jest zakładka Po NIP — wpisz 10-cyfrowy NIP firmy. Możesz też przełączyć na Po numerze KRS.
3
Kliknij Sprawdź. Przy wyszukiwaniu po NIP aplikacja automatycznie pobiera numer KRS z Białej Listy MF i odpytuje API KRS.
4
Wyniki wyświetlają się w kartach poniżej. Każde pole można skopiować jednym kliknięciem ikony kopiowania.
5
W sekcji Sprawozdania finansowe kliknij Odpis aktualny PDF lub Odpis pełny PDF aby pobrać oficjalny odpis z serwera MS. Przy każdym roku dostępny jest też link do pobrania XML z portalu Rejestrów Sądowych.
6
W sekcji Powiązania korporacyjne kliknij numer KRS powiązanej spółki — moduł automatycznie wczyta jej dane.
💡 Dane pobierane są na żywo z oficjalnego API KRS Ministerstwa Sprawiedliwości (api-krs.ms.gov.pl) — zawsze aktualne. Nie są przechowywane w aplikacji.
ℹ️ Imiona i nazwiska w API KRS są częściowo anonimizowane zgodnie z RODO (np. K. A. zamiast pełnego imienia i nazwiska). Pełne dane dostępne są tylko w odpisie PDF.

🔍 Pobierz dane z GUS

Pozwala wyszukać pełne dane rejestrowe firmy po NIP lub REGON z rejestru GUS REGON oraz sprawdzić status VAT w Białej Liście MF.

  • Dane identyfikacyjne: NIP, REGON 9 i 14, forma prawna, status NIP
  • Adres siedziby: ulica, kod pocztowy, miejscowość, województwo
  • Kody PKD (przeważające i pozostałe)
  • Rachunki bankowe z Białej Listy MF + status VAT (czynny/zwolniony)

Każde pole można skopiować jednym kliknięciem. Wyniki można też wydrukować lub wysłać e-mailem.

1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Pobierz dane z GUS.
2
Wpisz NIP (10 cyfr) lub REGON (9 albo 14 cyfr) w pole wyszukiwania.
3
Kliknij Sprawdź lub naciśnij Enter. Wyniki pojawią się poniżej.

✅ Weryfikator kontrahenta

Kompleksowa weryfikacja kontrahenta po jednym NIP — łączy cztery źródła danych w jednym miejscu: Biała Lista MF, GUS REGON, KRS i CRBR (Rejestr Beneficjentów Rzeczywistych).

Co sprawdza weryfikator:

  • Biała Lista MF — status VAT (czynny / zwolniony / brak rejestracji) oraz wszystkie zarejestrowane rachunki bankowe
  • GUS REGON — nazwa, adres, typ podmiotu, status działalności, kody PKD
  • KRS — forma prawna, skład zarządu, sposób reprezentacji, kapitał zakładowy
  • CRBR — beneficjenci rzeczywiści z udziałami (dane z Rejestru Beneficjentów Rzeczywistych MS)

Moje faktury z tym kontrahentem — sekcja pokazuje ile faktur zakupu i sprzedaży masz z danym kontrahentem w lokalnej bazie KSeF, z sumami netto.

1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Weryfikator kontrahenta.
2
Wpisz NIP kontrahenta (10 cyfr) i kliknij Weryfikuj.
3
Wyniki pojawią się w sekcjach: VAT i rachunki bankowe → GUS → KRS → Beneficjenci (CRBR) → Faktury z bazy.
💡 Przed zapłatą faktury sprawdź czy numer rachunku bankowego sprzedawcy jest na liście rachunków z Białej Listy MF — zmniejsza ryzyko zapłaty na konto oszusta.
ℹ️ Weryfikacja wymaga połączenia z internetem. Dane pobierane są na żywo — nie są przechowywane w aplikacji.

🧮 Kalkulator VAT

Zestawienie podatku VAT z faktur KSeF przechowywanych w lokalnej bazie. Oblicza VAT należny (ze sprzedaży) minus VAT naliczony (z zakupów) i pokazuje czy wystąpi nadwyżka do zapłaty czy kwota do zwrotu.

Funkcje kalkulatora:

  • Podział na okresy — miesięczny, kwartalny lub roczny
  • Wynik netto VAT — różnica VAT należny minus VAT naliczony per okres
  • Status płatności — 💸 Do zapłaty (VAT należny > naliczony) lub 💰 Do zwrotu (VAT naliczony > należny)
  • Eksport CSV — zestawienie gotowe do analizy w Excelu lub przekazania do księgowości
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Kalkulator VAT.
2
Wybierz rok i podział (miesiąc / kwartał / rok).
3
Kliknij Oblicz — wyniki pojawią się natychmiast.
4
Opcjonalnie kliknij ⬇ CSV aby wyeksportować zestawienie.
⚠️ Kalkulator jest narzędziem poglądowym — nie zastępuje deklaracji JPK_V7. Kwoty opierają się na danych z metadanych faktur XML. Przed złożeniem deklaracji zweryfikuj dane z systemem księgowym.

📥 Eksport faktur CSV / XLSX

Eksportuje faktury z lokalnej bazy KSeF do pliku CSV lub XLSX (Excel) gotowego do importu w systemie FK lub analizy w arkuszu kalkulacyjnym.

Możliwości eksportu:

  • Filtry — typ (zakup/sprzedaż), zakres dat, nazwa lub NIP kontrahenta, zakres kwot netto
  • Kolumny do wyboru — 15 dostępnych pól: data, numer faktury, numer KSeF, kontrahent, NIP, netto, VAT, brutto, waluta i inne
  • CSV — separatory średnikowe, kodowanie UTF-8 z BOM (Excel otwiera bez problemów z polskimi znakami)
  • XLSX — plik Excel z typami numerycznymi (sortowalne kolumny kwot), generowany bez zewnętrznych bibliotek
  • Statystyki — suma netto, VAT, brutto dla przefiltrowanych wyników przed eksportem
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Eksport faktur CSV / XLSX.
2
Ustaw filtry: typ faktur, zakres dat, opcjonalnie kontrahent i zakres kwot.
3
Zaznacz lub odznacz kolumny klikając etykiety — widoczna jest lista wynikowych rekordów z sumami.
4
Kliknij ⬇ CSV lub ⬇ XLSX — plik zostanie pobrany automatycznie.

📊 Eksport do Symfonii format 3.0 i ENOVA365

Moduł (w aplikacji widoczny pod nazwą Eksport Symfonia) eksportuje zaznaczone faktury KSeF do pliku Symfonii format 3.0 (TXT) lub ENOVA365 (XML w paczce ZIP) — w obu wariantach plik jest gotowy do bezpośredniego importu w systemie FK, bez ręcznego przepisywania danych. Obsługuje faktury zakupu (FVZ) i sprzedaży (FVS). Technicznie jest to Eksport Symfonia format 3.0 — wymiana plikowa z wykorzystaniem szablonów importu w systemie Symfonia Finanse i Księgowość (oraz Handel).

Eksport do Symfonii ERP format 3.0 (Handel, Finanse i Księgowość)

Co zawiera plik eksportu Symfonia format 3.0:

  • Sekcja INFO — dane własnej firmy (Podmiot1)
  • Kontrahent — pełne dane nabywcy z każdej faktury
  • Dokument — numer faktury, daty, kwoty, numer KSeF, status
  • Zapisy FK — dekretacja podstawowa (konto rozrachunkowe, przychody/koszty, VAT) z konfigurowalnymi numerami kont
  • Rejestr VAT — pozycje VAT z kodami GTU, stawkami i wartościami

Eksport do ENOVA365 (Soneta) — paczka XML KSeF

Dla systemu ENOVA365 aplikacja pakuje oryginalne pliki XML faktur KSeF do archiwum ZIP, które ENOVA365 importuje bezpośrednio — bez pośredniego formatu i bez utraty danych źródłowych z KSeF (m.in. numeru KSeF i daty przyjęcia).

Obsługiwane formaty eksportu:

  • Symfonia ERP format 3.0 (.TXT) — plik w kodowaniu Windows-1250, jeden plik dla wielu faktur
  • ENOVA365 XML KSeF (.zip) — paczka ZIP z oryginalnymi plikami XML KSeF do importu w ENOVA365
ℹ️ W planach rozwoju jest eksport do Comarch Optima (format XML OPT!MA) — status i zgłoszenia potrzeb integracji dostępne w module eksportu.
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Eksport Symfonia.
2
Użyj chipów okresu i filtrów (Zakup/Sprzedaż, rok, miesiąc) aby zawęzić listę faktur.
3
Zaznacz faktury klikając wiersze lub użyj Zaznacz wszystkie. Faktury bez XML są oznaczone ✗ brak i nie mogą być eksportowane.
4
Wybierz format z listy: Symfonia format 3.0 (.TXT) lub ENOVA XML KSeF (.zip).
5
Kliknij ⬇️ Eksportuj zaznaczone — plik zostanie wygenerowany i pobrany automatycznie.
💡 Kliknij ⚙️ Ustawienia kont FK aby skonfigurować numery kont księgowych (konto rozrachunkowe, przychody, VAT) zgodnie z planem kont Twojej firmy. Ustawienia są zapamiętywane.
ℹ️ Plik TXT Symfonii format 3.0 jest generowany w kodowaniu Windows-1250 (CP1250) — wymagany przez Symfonię ERP. Polskie znaki są konwertowane automatycznie.

💳 Rejestracja płatności

Moduł Rejestracja płatności pozwala oznaczać faktury zakupu i sprzedaży z lokalnej bazy KSeF jako rozliczone. Jedna faktura może mieć kilka wpłat częściowych — status (nierozliczona / częściowo / rozliczona) jest liczony automatycznie z sumy wpłat, nie trzeba go ustawiać ręcznie.

Funkcje modułu:

  • Wyszukiwanie — jedno pole przeszukuje jednocześnie numer faktury, nazwę kontrahenta i NIP; można wpisać kilka słów naraz
  • Filtry — typ (Zakup/Sprzedaż), rok, status rozliczenia
  • ➕ Dodaj płatność — rozwija wiersz faktury i pokazuje formularz: data, kwota, metoda (przelew/gotówka/kompensata/inne), notatka
  • 💳 / 💵 Szybkie rozliczenie w całości — jedno kliknięcie wpisuje całą pozostałą kwotę jako wpłatę przelewem (💳) lub gotówką (💵) i od razu zmienia status na „Rozliczona"
  • ✅ Rozlicz (w rozwiniętym formularzu) — wpisuje pozostałą kwotę z metodą wybraną w formularzu, zapisuje i zwija wiersz
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Rejestracja płatności.
2
Znajdź fakturę przez wyszukiwanie lub filtry.
3
Do pełnego rozliczenia jednym ruchem kliknij ikonę 💳 (przelew) lub 💵 (gotówka) w wierszu faktury.
4
Do wpłaty częściowej lub z inną metodą kliknij , wypełnij formularz i zapisz 💾 Dodaj wpłatę.
ℹ️ Status rozliczenia oraz metoda ostatniej wpłaty (ikona 💳/💵) są też widoczne bezpośrednio w kolumnie Rozliczenie na liście faktur Zakup/Sprzedaż — bez potrzeby otwierania tego modułu.
🔐 Dane płatności (kwota, data, metoda, notatka) są szyfrowane kluczem tej samej firmy co faktury — tak jak reszta danych firmowych (patrz Szyfrowanie danych firmowych).

📖 Instrukcja obsługi

Bieżący dokument — instrukcja obsługi aplikacji Intuiti Integrator KSeF Free. Dostępna zawsze przez moduł Instrukcja obsługi w panelu modułów.

🗺️ Geo Polska — mapa sprzedaży wg województw

Moduł Geo Polska wizualizuje sprzedaż lub zakupy netto z faktur KSeF na mapie Polski z podziałem na 16 województw. Każda faktura jest przypisywana do województwa na podstawie kodu pocztowego nabywcy (pole AdresL1).

Mapa województw
Mapa Polski — Geo Polska
Etykiety na mapie

Etykiety z danymi — niebieskie.
Brak faktur — 0,00 zł szary.

Jak działa identyfikacja województwa:

Moduł odczytuje pole AdresL1 z sekcji nabywcy (Podmiot2) faktury KSeF i wyciąga kod pocztowy w formacie XX-YYY. Pierwsze dwie cyfry (XX) jednoznacznie przyporządkowują adres do województwa zgodnie z podziałem terytorialnym Poczty Polskiej.

1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Geo Polska.
2
Ustaw filtry: Typ (Sprzedaż / Zakup / Oba), Rok, Miesiąc i Firma.
3
Kliknij ▶ Przelicz — mapa zostanie wypełniona danymi. Każde województwo wyświetla etykietę z kwotą netto.
4
Po prawej stronie mapy znajduje się ranking województw z paskiem procentowym i kwotami.
5
Aby przestawić etykiety kliknij ✏️ Edytuj etykiety, przeciągnij etykietę w nowe miejsce i kliknij 💾 Zapisz moje. Pozycje są zapamiętywane w przeglądarce (IndexedDB).

Panele KPI (górny pasek):

  • Faktury — liczba faktur spełniających kryteria filtrów
  • Netto łącznie — suma wartości netto wszystkich faktur
  • VAT łącznie — suma podatku VAT
  • Brutto łącznie — suma wartości brutto
  • Województw — liczba województw z fakturami
  • Śr. faktura — średnia wartość netto jednej faktury
  • Top województwo — województwo z największą sprzedażą
  • Kontrahentów — liczba unikalnych nabywców/dostawców
💡 Przycisk ↺ Domyślne przywraca oryginalne pozycje etykiet z serwera — przydatne gdy po edycji etykiety „rozjadą się" na małym ekranie.
ℹ️ Moduł przetwarza dane wyłącznie lokalnie w przeglądarce z IndexedDB — żadne faktury nie są wysyłane na zewnątrz. Własne pozycje etykiet są zapisywane w IndexedDB przeglądarki, osobno dla każdego użytkownika.

📅 Kalendarz podatkowy

Moduł Kalendarz podatkowy pokazuje najważniejsze, powtarzające się terminy VAT, ZUS, PIT i CIT — z automatycznie liczonym najbliższym terminem na podstawie dzisiejszej daty. Nie wymaga logowania, wybranej firmy ani żadnych danych — to ogólnopolskie, standardowe terminy takie same dla wszystkich.

Zawarte terminy:

  • VAT / JPK_V7 i VAT-UE — 25. dnia miesiąca
  • Składki ZUS — 20. dnia miesiąca (osoby fizyczne prowadzące działalność)
  • Zaliczki PIT/CIT — 20. dnia miesiąca
  • Roczne: PIT-4R, PIT-36/PIT-37, CIT-8 — z konkretnymi datami rocznymi
⚠️ To narzędzie poglądowe — terminy mogą się różnić w zależności od formy prawnej i sposobu rozliczenia (np. VAT kwartalny, inny termin ZUS dla spółek), a termin przypadający na dzień wolny przesuwa się na najbliższy dzień roboczy. Zweryfikuj indywidualnie z biurem rachunkowym.

🧭 Konfiguracja menu bocznego

Moduł Konfiguracja menu pozwala dostosować sekcję Skróty w menu bocznym aplikacji — wybrać które moduły są tam widoczne, ustalić ich kolejność i zmienić wyświetlane nazwy.

Co możesz zrobić:

  • Dodaj moduł do menu — kliknij + Dodaj przy module z listy po prawej stronie. Pojawi się w lewej kolumnie aktywnych pozycji.
  • Zmień kolejność — chwyć pozycję za uchwyt i przeciągnij w górę lub w dół.
  • Włącz / wyłącz pozycję — przełącznik po prawej stronie każdej pozycji. Wyłączone pozycje nie pojawiają się w menu bocznym, ale pozostają na liście.
  • Zmień nazwę — kliknij tekst nazwy pozycji i wpisz własną etykietę.
  • Usuń z menu — kliknij przy pozycji.
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Konfiguracja menu.
2
W prawej kolumnie Dostępne moduły kliknij + Dodaj przy wybranych modułach — przeniosą się do lewej kolumny Aktywne pozycje menu.
3
Opcjonalnie zmień kolejność (przeciągnij) i nazwy (kliknij tekst).
4
Kliknij 💾 Zapisz menu. Zmiany są widoczne po odświeżeniu aplikacji.
💡 Sekcja Skróty pojawia się w menu bocznym tylko wtedy, gdy co najmniej jedna pozycja jest włączona. Jeśli wszystkie są wyłączone — sekcja jest ukryta automatycznie.
ℹ️ Konfiguracja menu jest zapisywana w bazie danych osobno dla każdej firmy — przełączenie firmy pokazuje jej własny zestaw skrótów. Nowa firma dostaje automatycznie domyślny zestaw skrótów przy pierwszym użyciu.

👥 Użytkownicy i zabezpieczenia

Moduł Użytkownicy i zabezpieczenia umożliwia zarządzanie dostępem do aplikacji — tworzenie kont użytkowników z hasłami oraz włączanie lub wyłączanie ochrony hasłem dla całej instancji.

Tryby pracy:

TrybOpis
Bez ochrony Aplikacja dostępna bez logowania — dla wdrożeń z dostępem tylko przez lokalną sieć lub VPN.
Z ochroną hasłem Przed wejściem do aplikacji wymagane jest podanie hasła jednego z zdefiniowanych użytkowników.

Zarządzanie użytkownikami:

  • Dodaj użytkownika — podaj adres e-mail (login), hasło (min. 4 znaki) i rolę. Hasło jest przechowywane jako skrót MD5 bez soli — to lekka blokada dostępu do interfejsu, nie kryptograficzne zabezpieczenie (patrz ostrzeżenie niżej).
  • Zmień hasło — kliknij 🔑 Hasło przy karcie użytkownika i ustaw nowe (bez usuwania konta).
  • Edytuj użytkownika — kliknij ✏️ Edytuj, aby zmienić rolę lub dostęp do firm.
  • Usuń użytkownika — kliknij 🗑️ Usuń przy karcie użytkownika. Nie możesz usunąć samego siebie, dopóki ochrona jest włączona. Jeśli usunięcie zostawi organizację bez żadnego Administratora, ochrona zostaje automatycznie wyłączona.
1
Otwórz moduł przez 🚀 Moduły i kliknij kafelek Użytkownicy i zabezpieczenia.
2
Dodaj co najmniej jednego użytkownika (przycisk + Dodaj użytkownika) — pierwszy dodany automatycznie otrzymuje rolę Administratora i włącza wymóg logowania.
3
Kolejnych użytkowników dodajesz tym samym przyciskiem: e-mail (login), hasło (min. 4 znaki), rola i — dla roli „Użytkownik" — lista firm, do których ma mieć dostęp.
4
Przełącznikiem Wymagaj logowania możesz w każdej chwili włączyć lub wyłączyć wymóg logowania (aktywny tylko gdy istnieje co najmniej jeden Administrator). Po włączeniu każde otwarcie aplikacji w przeglądarce pokaże ekran logowania.
⚠️ Wszystkie konta żyją wyłącznie w IndexedDB tej przeglądarki — nie ma żadnego pliku po stronie serwera do skasowania. Jedyny ręczny sposób na przywrócenie dostępu bez znajomości hasła to usunięcie klucza k2AuthEnabled z localStorage przeglądarki (DevTools → Application → Local Storage). To tylko wyłącza wymóg logowania — konta i ich hasła w IndexedDB pozostają nietknięte.
🔑 Zapomniałem hasła — na ekranie logowania kliknij „Zapomniałem hasła". Serwer wygeneruje 6-cyfrowy kod (ważny 15 minut, maks. 1 na minutę) i wyśle go e-mailem na adres login użytkownika; po wpisaniu kodu ustawiasz nowe hasło. Kod jest przechowywany tymczasowo po stronie serwera (data/auth/reset_codes.json), ale samo hasło nigdy — wysyłany jest tylko już zahaszowany skrót, a zapis do IndexedDB robi przeglądarka. Wymaga działającej funkcji mail() na hostingu.
💡 Logowanie zabezpiecza dostęp do interfejsu aplikacji — to osobny, znacznie słabszy mechanizm niż szyfrowanie faktur AES-256-GCM opisane w sekcji Szyfrowanie danych firmowych. Hasło logowania jest haszowane MD5 bez soli, a klucz szyfrujący danej firmy leży w tej samej bazie IndexedDB — więc samo hasło logowania nie chroni danych przed kimś, kto ma bezpośredni dostęp do profilu przeglądarki (np. przez DevTools). Dla realnego bezpieczeństwa stosuj ochronę na poziomie sieci (VPN, firewall) i szyfrowanie dysku (BitLocker/FileVault) — hasło logowania traktuj jako wygodę, nie barierę.

🏢 Organizacje, firmy i użytkownicy — jak to się łączy

Domyślnie, bez włączania modułu Użytkownicy, nic z tego nie wymaga uwagi — dodajesz firmy i po prostu z nich korzystasz. Poniższy model staje się istotny dopiero gdy zaczynasz zarządzać wieloma firmami klientów (biuro rachunkowe) albo włączasz logowanie wielu osób do jednej instalacji.

PoziomCo to jestIdentyfikator
Organizacja Całkowicie odseparowana przestrzeń danych. Jedna instalacja/przeglądarka może hostować kilka organizacji naraz — np. biuro rachunkowe i jego własna firma to mogą być dwie osobne organizacje, które nigdy się nie widzą. org_guid — guid pierwszej („głównej") firmy tej organizacji
Firma Pojedynczy podmiot (NIP) z własnymi fakturami, kontrahentami, dekretacjami, certyfikatem szyfrowania. Zawsze należy do dokładnie jednej organizacji. guid firmy (companies.org_guid wskazuje organizację)
Użytkownik Konto logowania (e-mail + hasło). Należy do dokładnie jednej organizacji i widzi tylko jej firmy. guid użytkownika (users.org_guid wskazuje organizację)

Skąd bierze się organizacja:

  • Jeśli nigdy nie włączałeś modułu Użytkownicy — Twoje firmy i tak mają organizację przypisaną automatycznie w tle (pierwsza dodana firma staje się firmą „główną"). Nie musisz nic konfigurować.
  • Nową, całkowicie osobną organizację zakłada się przez link „Załóż nową organizację" na ekranie logowania — tworzy nowego użytkownika z rolą Administratora i świeżym org_guid. Firmy trzeba dodać osobno, już po zalogowaniu — rejestracja sama w sobie nie tworzy żadnej firmy.

Role i dostęp do firm:

  • Administrator — widzi i może dodawać/edytować wszystkie firmy swojej organizacji, zarządza użytkownikami, włącza/wyłącza wymóg logowania.
  • Użytkownik — widzi w przełączniku firm wyłącznie te firmy organizacji, które Administrator wyraźnie zaznaczył mu w formularzu (checkboxy „Dostęp do firm"). Brak zaznaczeń = brak dostępu do żadnej firmy.
  • Gdy logowanie jest wyłączone, każdy ma efektywnie pełny dostęp administratora do wszystkich firm — rozróżnienie ról ma znaczenie dopiero po włączeniu wymogu logowania.
ℹ️ Przykład — biuro rachunkowe: Administrator dodaje 5 firm-klientów. Dla księgowej obsługującej tylko 2 z nich tworzy konto z rolą Użytkownik i zaznacza wyłącznie te 2 firmy. Po zalogowaniu księgowa widzi w przełączniku firm tylko te 2 — pozostałe 3 są dla niej całkowicie niewidoczne, nie tylko niedostępne do edycji.

Certyfikat należy do użytkownika, nie do firmy:

Certyfikat kwalifikowany jest przypisany do zalogowanej osoby, a nie do konkretnej firmy — jedna osoba może mieć kilka certyfikatów (np. testowy i produkcyjny) i przełączać się między firmami klientów bez ponownego wgrywania certyfikatu. Dwoje różnych użytkowników tej samej organizacji ma jednak własne, niezależne certyfikaty.

⚠️ To rozdzielenie działa na poziomie logiki aplikacji (JavaScript), nie serwera ani szyfrowania. Serwer PHP nie zna w ogóle koncepcji organizacji ani sesji logowania — cała strona ładuje się identycznie niezależnie od stanu logowania, a sam ekran logowania to nakładka w przeglądarce. Odseparowanie firm/organizacji polega na filtrowaniu danych po org_guid/owner_guid w kodzie JS — solidne w normalnym użytkowaniu, ale (podobnie jak opisane wyżej logowanie) nie jest barierą kryptograficzną dla kogoś z bezpośrednim dostępem do IndexedDB tej przeglądarki. Szyfrowanie AES-256-GCM per firma (patrz Szyfrowanie danych firmowych) dodaje kolejną warstwę, ale jej klucz też leży w tej samej bazie.

Informacje

🔒 Prywatność i bezpieczeństwo danych

Aplikacja jest zbudowana w modelu privacy-first: żadne dane firmowe nie trafiają na serwery Intuiti.

Co jest przechowywaneGdzieUwagi
Faktury (XML + metadane)IndexedDB (zaszyfrowane)AES-256-GCM kluczem danej firmy — patrz Szyfrowanie danych firmowych. Tylko na Twoim urządzeniu, serwer pełni rolę proxy do API KSeF.
Kontrahenci i dekretacjeIndexedDB (zaszyfrowane)AES-256-GCM kluczem danej firmy, tym samym mechanizmem co faktury.
Certyfikat i klucz prywatnyIndexedDB (zaszyfrowane)AES-256-GCM kluczem maszynowym (innym niż klucz firmy). Na serwer trafia tylko jednorazowy podpisany token sesji.
Hasło klucza prywatnegoPamięć RAM (session)Wyłącznie w aktywnej karcie przeglądarki. Kasowane przy zamknięciu.
Dane firm (NIP, nazwa, kolor, klucz szyfrujący)IndexedDBNie są wysyłane na serwer. Rekord firmy przechowuje też jej klucz szyfrujący (jawnie) — patrz uwaga w sekcji o szyfrowaniu.
Ustawienia interfejsulocalStorageTryb ciemny, zwinięty sidebar, środowisko KSeF.
📌 Serwer aplikacji pełni wyłącznie rolę proxy — przyjmuje zaszyfrowane żądanie, weryfikuje certyfikat z API KSeF i zwraca zaszyfrowane paczki faktur. Nie loguje danych firmowych ani zawartości faktur.
🔒 Dane są przypisane do konkretnej maszyny i przeglądarki — celowo. Odtworzenie danych z IndexedDB jest możliwe wyłącznie na tym samym urządzeniu, w tej samej przeglądarce i profilu użytkownika, na którym dane zostały zapisane. Skopiowanie plików IndexedDB na inną maszynę nie pozwoli otworzyć ani odszyfrować danych — klucz maszynowy jest unikalny dla każdego urządzenia i nie jest nigdzie przechowywany.

Backup ZIP (panel Backup) służy do zabezpieczenia danych na tej samej maszynie — chroni przed przypadkową utratą danych przy reinstalacji systemu, awarii dysku lub wyczyszczeniu przeglądarki. Nie jest mechanizmem migracji między urządzeniami. Po przywróceniu backupu na nowym urządzeniu certyfikat KSeF zawsze należy wgrać ręcznie — nie jest objęty backupem z tych samych powodów bezpieczeństwa.

🔐 Bezpieczeństwo certyfikatu kwalifikowanego w IndexedDB

Certyfikat kwalifikowany (.CRT + .KEY) jest jedynym elementem w aplikacji wymagającym szczególnej ochrony — umożliwia logowanie do KSeF w imieniu firmy. Poniżej opisano dokładnie w jaki sposób jest przechowywany i chroniony.

Jak działa szyfrowanie certyfikatu:

1
Podczas wgrywania certyfikatu aplikacja generuje klucz maszynowy — unikalny dla konkretnego urządzenia i przeglądarki, wyprowadzony algorytmem PBKDF2-SHA256 z fingerprinta urządzenia.
2
Pliki certyfikatu i klucza prywatnego są szyfrowane kluczem maszynowym algorytmem AES-256-GCM — symetryczne szyfrowanie z uwierzytelnianiem.
3
Zaszyfrowany certyfikat trafia do magazynu certificates w IndexedDB przeglądarki. Nigdy nie opuszcza urządzenia w postaci jawnej.
4
Hasło klucza prywatnego przechowywane jest wyłącznie w pamięci RAM aktywnej karty przeglądarki — kasowane automatycznie przy jej zamknięciu lub odświeżeniu.
5
Podczas importu z KSeF aplikacja odszyfrowuje certyfikat lokalnie, podpisuje token sesji (XAdES) i wysyła na serwer tylko jednorazowy token — nie sam certyfikat.
ElementGdzie przechowywanySzyfrowanieOpuszcza urządzenie?
Plik .CRT (certyfikat)IndexedDB — certificatesAES-256-GCM (klucz maszynowy)❌ Nigdy
Plik .KEY (klucz prywatny)IndexedDB — certificatesAES-256-GCM (klucz maszynowy)❌ Nigdy
Hasło klucza prywatnegoRAM przeglądarki (session)Nie dotyczy — tylko w pamięci❌ Nigdy
Token sesji KSeF (XAdES)RAM — jednorazowyPodpis cyfrowy RSA✅ Jednorazowo do API KSeF
⚠️ Certyfikat jest powiązany z urządzeniem (machine-key). Skopiowanie plików IndexedDB na inny komputer nie pozwoli odszyfrować certyfikatu — klucz maszynowy jest inny na każdym urządzeniu. Po zmianie komputera certyfikat należy wgrać ponownie.
⚠️ Backup nie obejmuje certyfikatu. Plik ZIP z backupem zawiera faktury i dane firm, ale nie certyfikat — celowo, ze względów bezpieczeństwa. Po przywróceniu backupu na nowym urządzeniu certyfikat należy wgrać ręcznie.
ℹ️ Co robić gdy certyfikat wpadnie w niepowołane ręce? Sam zaszyfrowany plik z IndexedDB jest bezużyteczny bez klucza maszynowego powiązanego z konkretnym urządzeniem i profilem przeglądarki. Jednak dla pełnego bezpieczeństwa należy odwołać certyfikat w systemie e-Urząd Skarbowy i wygenerować nowy.

Zalecenia bezpieczeństwa:

  • Używaj szyfrowania dysku (BitLocker w Windows, FileVault w macOS) — chroni IndexedDB przed fizycznym dostępem do dysku
  • Nie używaj aplikacji na wspólnych komputerach — profil przeglądarki zawiera zaszyfrowany certyfikat
  • Ustaw hasło na profil przeglądarki (Chrome/Edge obsługują profile z hasłem)
  • Po zakończeniu pracy nie zostawiaj otwartej karty — hasło klucza jest wtedy w pamięci RAM
  • Regularnie rób backup — utrata danych przeglądarki (reinstalacja, awaria) usuwa certyfikat bezpowrotnie

🛡️ Opis techniczny zabezpieczenia — dla wdrożeniowców i administratorów

Poniżej opisano pełny mechanizm ochrony certyfikatu kwalifikowanego — od momentu wgrania przez użytkownika aż do jednorazowego użycia podczas sesji importu. Opis skierowany jest do osób wdrażających aplikację, administratorów IT oraz zaawansowanych użytkowników.

1. Klucz maszynowy — jak powstaje

Klucz szyfrujący nie jest przechowywany nigdzie na dysku. Aplikacja odtwarza go za każdym razem z fingerprinta urządzenia i przeglądarki przy użyciu funkcji PBKDF2-SHA-256 z 100 000 iteracjami. Na fingerprint składają się:

Składnik fingerprintaWartość / źródłoGdzie zmiana powoduje problem
navigator.userAgentCiąg identyfikacyjny przeglądarkiAktualizacja przeglądarki zmieniająca wersję
Rozdzielczość i głębia kolorówscreen.width × height × colorDepthZmiana monitora, zmiana rozdzielczości systemowej
Strefa czasowaIntl.DateTimeFormat().resolvedOptions().timeZoneZmiana strefy czasowej systemu (np. przestawienie VPN exit-node)
Język przeglądarkinavigator.languageZmiana języka interfejsu przeglądarki
Liczba rdzeni CPUnavigator.hardwareConcurrencyMigracja na inny serwer terminalowy / inną VM
Canvas fingerprintRendering tekstu na elemencie <canvas>Niektóre rozszerzenia anti-fingerprint (np. Privacy Badger w trybie agresywnym)
ℹ️ Sama zmiana sieci (WiFi ↔ LAN ↔ VPN) nie wpływa na fingerprint — żaden składnik nie zależy od adresu IP ani interfejsu sieciowego. Jednak na laptopach z dokiem lub USB-C zmiana połączenia sieciowego może towarzyszyć odłączeniu zewnętrznego monitora lub przełączeniu aktywnego GPU — co zmienia canvas fingerprint. Jeśli po zmianie sieci pojawia się błąd deszyfrowania, przyczyną jest zmiana konfiguracji grafiki, nie sama sieć.

2. Szyfrowanie hasła klucza prywatnego

Hasło do pliku .KEY jest szyfrowane osobno algorytmem AES-256-GCM tym samym kluczem maszynowym. Format zapisu w IndexedDB:

<base64(IV 12 B)>:<base64(ciphertext)>

Losowy wektor inicjalizacyjny (IV) jest generowany przy każdym zapisie — dwa identyczne hasła dają różne wartości w bazie. Pole passwordEncrypted zastąpiło starszy format plaintext; aplikacja obsługuje oba formaty wstecznie (brak separatora : = stary plaintext).

⚠️ Jeśli deszyfrowanie hasła się nie powiedzie (fingerprint się zmienił), aplikacja wyświetla komunikat:
„Hasło certyfikatu zaszyfrowane na innej maszynie. Usuń certyfikat i dodaj go ponownie."
Nie jest to błąd certyfikatu — to mechanizm ochrony przed użyciem certyfikatu na niezaufanym urządzeniu.

3. Przepływ danych podczas sesji importu

1
Przeglądarka (JS): odczytuje certData i keyData z IndexedDB, odszyfrowuje hasło kluczem maszynowym (PBKDF2 + AES-GCM, tylko w pamięci RAM).
2
Przeglądarka → Serwer aplikacji: wysyła certData, keyData i cert_password przez multipart/form-data przez szyfrowane połączenie HTTPS. Dane są widoczne wyłącznie na czas jednego żądania HTTP — serwer nie zapisuje ich do pliku ani bazy danych.
3
Serwer aplikacji (PHP): tworzy tymczasowe pliki .crt i .key w katalogu systemowym (sys_get_temp_dir()), podpisuje XML sesji (XAdES/SHA-256), usuwa pliki tymczasowe natychmiast po podpisaniu (niezależnie od wyniku).
4
Serwer aplikacji → API KSeF: wysyła wyłącznie podpisany XML z tokenem jednorazowym — certyfikat ani klucz prywatny nie trafiają do Ministerstwa Finansów.
5
KSeF → Serwer → Przeglądarka: token sesji i zaszyfrowane paczki faktur wracają do przeglądarki. Serwer pełni rolę transparentnego proxy — nie buforuje faktur.
Co jest przesyłane przez HTTPSSkądDokądCzy pozostaje na serwerze?
Plik .CRT + .KEY + hasłoPrzeglądarkaSerwer PHP❌ — tylko w RAM przez czas podpisania
Podpisany XML (XAdES token)Serwer PHPAPI KSeF (MF)❌ — jednorazowy, nie zapisywany
Token sesji + zaszyfrowane fakturyAPI KSeF (MF)Przeglądarka (przez serwer proxy)❌ — serwer nie buforuje faktur

4. Scenariusze operacyjne — co robić

SytuacjaSkutekDziałanie
Zmiana sieci (WiFi / LAN / VPN) — bez zmian sprzętowych Brak wpływu Nic — certyfikat deszyfruje się poprawnie
Zmiana sieci przez odłączenie doku / USB-C z monitorem Możliwy błąd deszyfrowania Przyczyną jest zmiana GPU/renderowania canvas, nie sieć — usuń certyfikat i wgraj ponownie
Zmiana strefy czasowej systemu Błąd deszyfrowania Usuń certyfikat w Ustawieniach i wgraj ponownie
Aktualizacja przeglądarki (zmiana User-Agent) Błąd deszyfrowania Usuń certyfikat i wgraj ponownie
Zmiana rozdzielczości / monitor 4K Błąd deszyfrowania Usuń certyfikat i wgraj ponownie
Migracja na nowy komputer Błąd deszyfrowania Przywróć backup ZIP (faktury), certyfikat wgraj ręcznie
Inny profil przeglądarki / inna przeglądarka Błąd deszyfrowania Wgraj certyfikat od nowa w nowym profilu
Rozszerzenie blokujące canvas fingerprint Błąd deszyfrowania Wyłącz rozszerzenie dla domeny aplikacji lub wgraj cert ponownie
Wyczyszczenie danych przeglądarki (IndexedDB) Utrata certyfikatu i faktur Przywróć backup ZIP; certyfikat wgraj ręcznie
Wykradzenie pliku IndexedDB z dysku Zaszyfrowany plik — bezużyteczny bez klucza maszynowego Dla pełnej pewności odwołaj certyfikat w e-Urzędzie Skarbowym

5. Wytyczne dla administratorów IT

  • Group Policy / zarządzane profile Chrome (ADMX): upewnij się, że polityki DefaultCookiesSetting, ClearBrowsingDataOnExit i analogiczne nie obejmują domeny aplikacji lub wykluczają IndexedDB. Wyczyszczenie przy wylogowaniu usuwa certyfikat i faktury.
  • Profil przeglądarki na serwerach terminalowych (RDS / Citrix): profil użytkownika musi być trwały (nie roaming ani mandatory). Przy profilach roaming IndexedDB może nie synchronizować się poprawnie między sesjami.
  • Antywirus / endpoint protection: niektóre rozwiązania EDR skanują katalogi profilu przeglądarki i mogą zablokować lub uszkodzić pliki IndexedDB. Dodaj ścieżkę profilu Chrome/Edge do wyjątków skanowania w czasie rzeczywistym (nie wyłączaj skanowania plików pobieranych).
  • HTTPS — warunek konieczny: window.crypto.subtle (Web Crypto API) jest dostępne wyłącznie w bezpiecznych kontekstach (HTTPS lub localhost). Aplikacja serwowana przez HTTP wyłącza szyfrowanie hasła i przechowuje je w plaintext w IndexedDB. Wdrożenie produkcyjne musi używać HTTPS z ważnym certyfikatem TLS.
  • Backup proceduralny: wdróż procedurę regularnego eksportu ZIP (panel Backup) — szczególnie przed aktualizacjami systemu, zmianą komputera lub przeglądarki. Certyfikat KSeF jest wyłączony z backupu celowo i zawsze musi być wgrany ręcznie po migracji.
  • Szyfrowanie dysku: wdróż BitLocker (Windows) lub FileVault (macOS) na stacjach roboczych używających aplikacji. Faktury, kontrahenci i dekretacje są dodatkowo szyfrowane AES-256-GCM kluczem właściwym dla każdej firmy (patrz Szyfrowanie danych firmowych), ale — w odróżnieniu od klucza certyfikatu — ten klucz leży wprost w tej samej bazie, więc dyskowe szyfrowanie całego wolumenu pozostaje ważną drugą warstwą ochrony.

6. Dla użytkownika — kiedy certyfikat działa, a kiedy trzeba go wgrać ponownie

💡 Zasada prosta: certyfikat jest zapamiętany na tym konkretnym komputerze i tej konkretnej przeglądarce. Działa po restarcie komputera, po zmianie sieci, po wakacjach — dopóki nie zmieniasz komputera, przeglądarki ani ustawień systemowych wymienionych poniżej.
Czy certyfikat dalej działa?Sytuacja
✅ TakRestart komputera, zamknięcie przeglądarki, zmiana sieci WiFi/LAN/VPN (bez odłączania monitora/doku), uruchomienie po dłuższej przerwie
⚠️ Może nie — wgraj ponowniePrzełączenie sieci przez odłączenie doku USB-C / stacji dokującej z monitorem (zmiana aktywnego GPU zmienia canvas fingerprint)
✅ TakAktualizacja Windows bez zmiany rozdzielczości i strefy czasowej
❌ Nie — wgraj ponownieNowy komputer lub nowa instalacja systemu
❌ Nie — wgraj ponownieInna przeglądarka (np. przesiadka z Chrome na Firefox)
❌ Nie — wgraj ponownieZmiana rozdzielczości ekranu (nowy monitor, zmiana w ustawieniach wyświetlania)
❌ Nie — wgraj ponownieZmiana strefy czasowej (zegar systemowy / ustawienia regionalne)
❌ Nie — wgraj ponownieWyczyszczenie danych przeglądarki obejmujące IndexedDB
📌 Aplikacja sama wykryje problem i wyświetli komunikat z prośbą o ponowne wgranie certyfikatu. Nie grozi to utratą faktur — tylko certyfikat trzeba wgrać ponownie (plik .CRT i .KEY masz na dysku lub w bezpiecznym miejscu).

🔑 Szyfrowanie danych firmowych — faktury, kontrahenci, dekretacje

Niezależnie od zabezpieczenia certyfikatu (opisanego wyżej), aplikacja szyfruje też treść faktur oraz danych powiązanych z firmą — kontrahentów i dekretacji. Jest to osobny mechanizm, z osobnym kluczem, chroniący inne dane niż certyfikat.

Jak działa szyfrowanie danych firmowych:

1
Każda firma (rekord w magazynie companies, identyfikowany przez guid) otrzymuje przy pierwszym użyciu własny, losowy klucz AES-256 — generowany automatycznie i zapisany trwale na rekordzie firmy.
2
Wrażliwe pola rekordu (dla faktury: metadata i xmlContent; analogicznie dla kontrahenta czy dekretu) są serializowane do JSON i szyfrowane algorytmem AES-256-GCM z losowym 12-bajtowym IV, generowanym przy każdym zapisie.
3
Wynik trafia do pojedynczego pola _enc w formacie ENC1:<iv_base64>:<ciphertext_base64>. Pola potrzebne jako klucz lub indeks (xmlFilename, owner_guid, xmlHash) zostają jawne — muszą być przeszukiwalne bez odszyfrowania.
4
Przy odczycie aplikacja pobiera klucz właściwej firmy, odszyfrowuje pole _enc i nakłada odzyskane dane z powrotem na rekord — dzieje się to lokalnie w przeglądarce, przy każdym wyświetleniu listy faktur, kontrahentów czy dekretów.
5
Ten sam mechanizm obejmuje moduły Kontrahenci, Dekretacja i Konfigurację menu — wszędzie tam, gdzie zapisywane są dane przypisane do konkretnej firmy.
DaneMagazynSzyfrowanieKlucz
Metadane faktury + plik XMLinvoices — pole _encAES-256-GCMKlucz danej firmy
Dane kontrahentacontractors — pole _encAES-256-GCMKlucz danej firmy
Schematy dekretacjiposting_schemes — pole _encAES-256-GCMKlucz danej firmy
xmlFilename, owner_guid, xmlHashpola jawne rekorduBrak — potrzebne jako klucz/indeks
Certyfikat i klucz prywatnycertificatesAES-256-GCMKlucz maszynowy (inny, patrz wyżej)
⚠️ To inny mechanizm niż szyfrowanie certyfikatu — z inną gwarancją bezpieczeństwa. Klucz certyfikatu jest wyprowadzany z fingerprinta urządzenia i nigdzie nie jest zapisany. Klucz firmy natomiast jest zapisany wprost w magazynie companies, w tej samej bazie KSeFStorage2. W praktyce oznacza to:
  • Chroni przed przypadkowym odczytem danych wyrwanych z bazy — np. podglądem pojedynczego rekordu przez zewnętrzne narzędzie bez dostępu do całej bazy, albo eksportem samego magazynu invoices bez companies.
  • Nie chroni przed kimś, kto ma pełny dostęp do profilu przeglądarki i całej bazy KSeFStorage2 — może on odczytać klucz firmy z magazynu companies i odszyfrować dane dokładnie tak, jak robi to sama aplikacja.
  • Backup ZIP, jeśli zawiera magazyn companies razem z kluczem firmy, pozwala poprawnie odszyfrować dane po przywróceniu na tym samym lub innym urządzeniu — w przeciwieństwie do certyfikatu, ten klucz nie jest przywiązany do konkretnej maszyny.
ℹ️ Jeśli przeglądarka nie obsługuje Web Crypto API lub klucza firmy nie da się jeszcze ustalić, dane zapisywane są jawnie (bez pola _enc) — bez utraty funkcjonalności i bez błędów. Rekordy zapisane przed wdrożeniem tego mechanizmu też pozostają czytelne jako plaintext na zawsze — aplikacja nie migruje istniejących danych wstecz.


Informacje techniczne

🗄️ Technologia przechowywania danych — IndexedDB

Aplikacja nie korzysta z serwera bazy danych ani plików na dysku serwera. Wszystkie dane użytkownika przechowywane są wyłącznie w IndexedDB — wbudowanej bazie danych przeglądarki, dostępnej bez instalacji.

📖 Czym jest IndexedDB

IndexedDB to standard W3C wbudowany w każdą nowoczesną przeglądarkę (Chrome, Firefox, Safari, Edge, Opera). Jest to obiektowa baza danych działająca bezpośrednio w przeglądarce — bez serwerów, bez plików, bez instalacji.

CechaWartość
TypBaza obiektowa (NoSQL), transakcyjna, asynchroniczna
StandardW3C IndexedDB 2.0 — wszystkie nowoczesne przeglądarki
Lokalizacja danychProfil przeglądarki na urządzeniu użytkownika
SerwerNie jest wymagany — dane nigdy nie opuszczają urządzenia
Limit rozmiaruTypowo 60–80% wolnego miejsca na dysku (lub minimum 1 GB)
Limit dokumentówBrak — przechowuje tyle faktur, ile mieści dysk
ℹ️ IndexedDB jest identyczny technologicznie z mechanizmem używanym przez Gmail, Google Docs czy Notion do lokalnego cache'owania danych w przeglądarce.

📦 Co jest przechowywane w IndexedDB

Aplikacja używa bazy KSeFStorage2 (obecnie w wersji 10) z dziesięcioma magazynami (store):

MagazynZawartośćKlucz główny
invoices Faktury KSeF — metadane (numer, daty, kwoty, kontrahent) + oryginalny plik XML, częściowo zaszyfrowane xmlFilename (numer KSeF)
certificates Certyfikat kwalifikowany (.CRT + .KEY), zaszyfrowany AES-256-GCM kluczem maszynowym id (lub guid przy wielu certyfikatach)
companies Firmy — NIP, nazwa, kolor, org_guid, klucz szyfrujący danej firmy guid
users Konta logowania (moduł Użytkownicy) — e-mail, hash MD5 hasła, rola, org_guid guid
users_companies Przypisania user ↔ firma (które firmy widzi user z rolą „Użytkownik") user_guid::company_guid
contractors Kontrahenci wygenerowani z faktur (moduł Kontrahenci), częściowo zaszyfrowani owner_guid::nip
posting_schemes Schematy dekretacji Wn/Ma (moduł Dekretacja), częściowo zaszyfrowane id (autoincrement)
menu_items Własne skróty menu bocznego, per firma owner_guid::item_id
invoices_export Status ostatniego eksportu dokumentu (system, data, licznik) — kolumny EXP w modułach eksportu xmlFilename
cryptoKeys Globalny klucz maszynowy używany do szyfrowania hasła klucza prywatnego certyfikatu id

Każda faktura w magazynie invoices zawiera:

  • xmlFilename — unikalny numer KSeF (klucz)
  • owner_guid — guid firmy (indeks do filtrowania wielofirmowego)
  • metadata — numer faktury, daty, kwoty netto/VAT/brutto, dane sprzedawcy i nabywcy, waluta, środowisko
  • xmlContent — pełny plik XML KSeF (format FA 3)
  • xmlHash — skrót SHA-256 pliku XML (weryfikacja integralności)

Pola metadata i xmlContent są zwykle zaszyfrowane razem w jednym polu _enc (AES-256-GCM, klucz danej firmy) — patrz Szyfrowanie danych firmowych. Pozostałe pola (xmlFilename, owner_guid, xmlHash) zostają jawne, bo służą jako klucz/indeks.

🔧 Dla wdrożeniowców i administratorów

Gdzie fizycznie leżą dane:

PrzeglądarkaLokalizacja na dysku
Chrome / Edge%LOCALAPPDATA%\Google\Chrome\User Data\Default\IndexedDB\
Firefox%APPDATA%\Mozilla\Firefox\Profiles\[profil]\storage\default\
Safari (macOS)~/Library/WebKit/[domena]/databases/
⚠️ Dane są przypisane do konkretnej przeglądarki i profilu użytkownika na danym komputerze. Zmiana przeglądarki, reinstalacja systemu lub wyczyszczenie danych przeglądarki usuwa wszystkie faktury. Przed tymi operacjami należy wykonać backup.

Kluczowe aspekty wdrożeniowe:

1
Brak centralnej bazy danych — każdy użytkownik ma własną, niezależną bazę lokalną. Dane różnych użytkowników nie są synchronizowane automatycznie.
2
Backup obowiązkowy — panel Backup tworzy plik ZIP ze wszystkimi fakturami i firmami. Zalecane regularne kopie, minimum raz w tygodniu.
3
Przeniesienie na nowy komputer — wyeksportuj backup ZIP na starym urządzeniu, otwórz aplikację na nowym i przywróć z pliku ZIP. Certyfikat KSeF należy wgrać ponownie (nie jest objęty backupem).
4
Polityki IT / Group Policy — niektóre polityki korporacyjne mogą ograniczać rozmiar lub czyścić dane przeglądarki przy wylogowaniu. Należy upewnić się, że IndexedDB dla domeny aplikacji jest wyłączony z czyszczenia.
5
Tryb InPrivate / Incognito — w trybie prywatnym dane IndexedDB są kasowane po zamknięciu okna. Aplikacja nie działa w trybie prywatnym jako stałe środowisko pracy.

📊 Limity i pojemność

IndexedDB nie ma limitu liczby dokumentów. Limit wynika wyłącznie z dostępnego miejsca na dysku urządzenia.

ScenariuszSzacowany rozmiar
1 faktura KSeF (XML + metadane)~5–20 KB
1 000 faktur~5–20 MB
10 000 faktur~50–200 MB
100 000 faktur~500 MB – 2 GB
💡 Przy bardzo dużych wolumenach (100 000+ faktur) wydajność operacji wyszukiwania i filtrowania może się obniżyć. W takim przypadku rozważ podział na okresy rozliczeniowe lub skontaktuj się z Intuiti w sprawie wersji z centralną bazą danych.
📌 Faktury (podobnie jak kontrahenci i dekretacje) są szyfrowane AES-256-GCM kluczem właściwym dla każdej firmy — patrz Szyfrowanie danych firmowych. Ten klucz, w odróżnieniu od klucza certyfikatu, jest jednak zapisany wprost w tej samej bazie, więc nie chroni przed kimś, kto ma pełny dostęp do profilu przeglądarki. Na wspólnych lub publicznych komputerach należy stosować osobne profile przeglądarki z hasłem lub korzystać z szyfrowania dysku (BitLocker, FileVault).

Informacje

🖥️ Interfejs

🌙 Tryb ciemny

Przełącznik ☀️ / 🌙 w prawym górnym rogu nagłówka przełącza między trybem jasnym a ciemnym. Wybór jest zapamiętywany w przeglądarce.

☰ Zwijanie menu bocznego

Przycisk w nagłówku menu bocznego zwija sidebar do paska ikonek (52 px), dając więcej miejsca dla treści. Kliknij ponownie by rozwinąć. Stan jest zapamiętywany między sesjami.

↔️ Dzielony podgląd

W widoku listy faktur (Zakup / Sprzedaż) lista i podgląd dzielą przestrzeń ekranu. Chwyć i przeciągnij pionową linię między nimi by dopasować proporcje. Lista może zajmować 30–75% szerokości. Ustawienie jest zapamiętywane.

ℹ️ O programie

Przycisk ℹ️ O programie na dole menu bocznego otwiera okno z informacjami o aplikacji:

  • Wersja aplikacji — aktualna wersja Intuiti Integrator KSeF Free
  • Opis funkcji — skrócona lista kluczowych możliwości
  • Bezpieczeństwo danych — przypomnienie o lokalnym przechowywaniu i szyfrowaniu
  • Linki — strona Intuiti, pełna wersja Integratora KSeF & JPK
💡 Okno można zamknąć klawiszem Esc lub przyciskiem .

Informacje

Najczęściej zadawane pytania

Czy Integrator KSeF Free jest bezpłatny?

Tak, ale bezpłatna jest tylko wersja Free dostępna online (ta aplikacja) — bez rejestracji, bez limitów dokumentów, bez opłat. Wersja desktopowa, Integrator KSeF do Symfonii, jest płatna: łączy się z Symfonią bezpośrednio przez obiekty integracji (bez eksportu i importu plików pośrednich) i jest znacznie bardziej rozbudowana funkcjonalnie. Cennik i szczegóły wersji desktopowej ↗

Gdzie są przechowywane faktury pobrane z KSeF?

Faktury przechowywane są wyłącznie lokalnie w IndexedDB Twojej przeglądarki — na Twoim urządzeniu. Nie trafiają na żaden serwer Intuiti.

Czy certyfikat kwalifikowany jest bezpieczny w aplikacji?

Certyfikat jest szyfrowany algorytmem AES-256-GCM kluczem maszynowym i przechowywany wyłącznie w IndexedDB przeglądarki. Na serwer trafia tylko jednorazowy podpisany token sesji — nie sam certyfikat.

Co to jest JPK KSeF i jak go obsługuje aplikacja?

JPK KSeF to jednolity plik kontrolny faktur z Krajowego Systemu e-Faktur. Aplikacja pobiera faktury bezpośrednio z API KSeF v2 przy użyciu certyfikatu kwalifikowanego XAdES, obsługuje formaty zakupu (Subject2) i sprzedaży (Subject1) oraz eksportuje dane do systemów FK.

Jak wyeksportować faktury do Symfonii ERP?

Użyj modułu Eksport Symfonia — zaznacz faktury, wybierz Symfonia format 3.0 (.TXT) i kliknij Eksportuj. Plik TXT w kodowaniu Windows-1250 jest gotowy do importu w module Handel lub FK Symfonii ERP.

Czy można wyeksportować faktury KSeF do ENOVA365?

Tak. W module Eksport Symfonia wybierz format ENOVA XML KSeF (.zip) — aplikacja spakuje oryginalne pliki XML KSeF do archiwum ZIP gotowego do importu w ENOVA365.

Czy jest planowany eksport do Comarch Optima?

Tak, integracja z Comarch Optima (eksport do formatu XML OPT!MA) jest w planach rozwoju Intuiti Integrator KSeF Free. Obecnie dostępne są eksporty do Symfonii format 3.0 i ENOVA365.

Czy aplikacja działa bez instalacji?

Tak, aplikacja działa bezpośrednio w przeglądarce internetowej (Chrome, Firefox, Edge, Safari) — bez instalacji, bez wtyczek.