Wydajność KSeF: ile faktur na sekundę jest w stanie przełknąć?
Wydajność Krajowego Systemu e-Faktur determinuje stabilność procesów księgowych w przedsiębiorstwach realizujących billing masowy. Według raportu Ministerstwa Finansów z dnia 25 kwietnia 2025 r. (załącznik nr 3), system przy obecnej infrastrukturze zatyka się przy próbie przetworzenia wolumenu zbliżonego do 100 mln faktur dziennie. Wartość ta odpowiada średniej przepustowości na poziomie 1,2 tysiąca dokumentów na sekundę, podczas gdy realne zapotrzebowanie w szczytach rozliczeniowych generuje obciążenie rzędu 5 tysięcy struktur XML na sekundę. Przekroczenie tych wartości granicznych prowadzi do destabilizacji warstwy integracyjnej i wydłużenia czasu procesowania dokumentów ponad akceptowalne normy biznesowe.
W sytuacji, gdy liczba zapytań przekracza limit techniczny wynoszący 5 000 faktur na sekundę, infrastruktura sieciowa Ministerstwa Finansów aktywuje mechanizmy obronne. System zwraca wówczas błąd HTTP 429 (Too Many Requests), co oznacza czasowe zablokowanie przyjmowania nowych pakietów danych od danego emitenta. Wewnątrz architektury systemu następuje overflow kolejki Kafka przy obciążeniu rzędu 5,2 tysiąca dokumentów na sekundę, co skutkuje przerwaniem sesji transmisyjnej. Timeout dla interfejsu API został sztywno ustawiony na 30 sekund, po upływie których połączenie jest zrywane bez potwierdzenia zapisu danych w rejestrze centralnym.
Należy podkreślić, że faktura odrzucona przez system z powodu przekroczenia limitów wydajnościowych uniemożliwia nabywcy ujęcie kwoty podatku VAT w kosztach uzyskania przychodu tego samego dnia. Ponieważ faktura wystawiona przez KSeF jest traktowana jako dokument doręczony do odbiorcy w momencie nadania numeru identyfikacyjnego, wszelkie opóźnienia w transmisji wpływają bezpośrednio na płynność finansową kontrahentów. Przedsiębiorstwa powinny przeprowadzić testy obciążeniowe w środowisku sandbox przed 1 lutego 2026 r., aby dostosować własne systemy ERP do realnych odpowiedzi bramki rządowej.
Wdrożenie oprogramowania Hogart KSeF lub innych zaawansowanych systemów klasy workflow pozwala na mitygowanie ryzyka paraliżu działu księgowego. Przy wolumenie 2000 faktur miesięcznie, automatyzacja procesów skraca czas księgowania z 5 minut do zaledwie 1 minuty na dokument. Brak odpowiedniej integracji z systemami zewnętrznymi może wymusić ręczne przepisywanie danych, co przy restrykcyjnych limitach czasowych API MF okaże się procesem niewydolnym i generującym błędy formalne w strukturach logicznych XML.
XML FA(3) – jak skompresować strukturę, by nie wysłać worka bajtów
Optymalizacja payloadu przesyłanego do Krajowego Systemu e-Faktur jest kluczowa dla zachowania ciągłości operacyjnej przy masowej generacji dokumentów. Struktura XML FA(3) wymusza zachowanie ścisłej hierarchii tagów, jednak dopuszczalne jest stosowanie kompresji w celu redukcji obciążenia łącza. KSeF akceptuje algorytm gzip pod warunkiem przesłania nagłówka Content-Encoding: gzip, co pozwala na oszczędność średnio 75% objętości każdego pliku. Mniejszy rozmiar pliku XML bezpośrednio przekłada się na skrócenie czasu odpowiedzi serwera i zmniejsza ryzyko wystąpienia timeoutu podczas walidacji schematycznej.
| Rodzaj faktury | Rozmiar oryginału (KB) | Rozmiar po kompresji (KB) |
|---|---|---|
| Faktura pełna | 42 | 9 |
| Faktura uproszczona | 18 | 4 |
| Faktura RR | 28 | 6 |
Większość polskich systemów ERP aktualizowanych od 2024 r. posiada natywną obsługę kompresji strumieniowej, co jest niezbędne przy wysyłce dokumentów zawierających setki pozycji asortymentowych. Przykładowo, pojedyncza faktura magazynowa z setką pozycji zostaje zaksięgowana w systemie KSeF w kilka sekund, o ile przesyłany pakiet danych został uprzednio zminimalizowany. Redukcja zbędnych białych znaków oraz skracanie przestrzeni nazw (namespaces) to dodatkowe metody pozwalające na odchudzenie struktury XML bez naruszania jej poprawności merytorycznej.
GZIPOutputStream gzip = new GZIPOutputStream(outputStream);
gzip.write(xmlData.getBytes(StandardCharsets.UTF_8));
gzip.finish();
gzip.close();
Deweloperzy odpowiedzialni za integrację powinni zweryfikować, czy ich systemy prawidłowo obsługują standard XML FA(3) w wersji produkcyjnej, która zostanie udostępniona 1 lutego 2026 r. Wykorzystanie bibliotek do kompresji w locie pozwala na znaczące obniżenie kosztów transferu danych oraz zwiększenie liczby dokumentów przesyłanych w pojedynczej sesji uwierzytelnionej. Optymalizacja rozmiaru pliku XML to nie tylko kwestia techniczna, ale przede wszystkim wymóg efektywnościowy w obliczu prognozowanego wzrostu liczby dokumentów do 2,5 mld rocznie.
Batch vs. single-shot – czy warto wysyłać faktury hurtem?
Wybór między metodą single-shot a trybem wsadowym (batch) zależy od specyfiki działalności przedsiębiorstwa i dobowego rozkładu generowanych faktur. Metoda single-shot pozwala na wysłanie pojedynczego dokumentu w czasie około 250 ms, co jest optymalne dla transakcji detalicznych i systemów typu POS. W przypadku procesów billingowych, gdzie generowane są tysiące dokumentów jednocześnie, dedykowanym rozwiązaniem jest endpoint POST /api/invoice/batch, umożliwiający grupowanie faktur w pakiety i ich sekwencyjne procesowanie przez infrastrukturę Ministerstwa Finansów.
- Single-shot: czas procesowania ok. 250 ms na jedną fakturę, idealny dla systemów czasu rzeczywistego.
- Batch 100: czas procesowania ok. 2,8 s dla pakietu, optymalny stosunek wydajności do stabilności połączenia.
- Batch 500: wysokie ryzyko wystąpienia timeoutu przekraczającego 10 s, co skutkuje przerwaniem operacji.
Należy pamiętać, że maksymalny dopuszczalny batch w systemie KSeF wynosi 100 faktur, a systemowy timeout dla tego typu żądań jest rygorystycznie przestrzegany. Największym ryzykiem związanym z przesyłaniem dokumentów hurtem jest fakt, iż błąd w jednym XML unieważnia cały batch – w architekturze KSeF nie występuje mechanizm częściowego rollbacku ani selektywnego przyjmowania dokumentów z uszkodzonego pakietu. W związku z tym, każda struktura wewnątrz batcha musi przejść rygorystyczną walidację lokalną przed próbą transmisji do serwerów rządowych.
Dla podmiotów generujących powyżej 500 faktur na minutę zaleca się stosowanie kolejek asynchronicznych zamiast nadmiernie rozbudowanych batchy. Taka architektura pozwala na płynne sterowanie ruchem i ponawianie prób wysyłki dla pojedynczych, błędnych rekordów bez blokowania całej partii dokumentów. Według statystyk, dobra integracja z wykorzystaniem kolejek redukuje liczbę operacji manualnych nawet o 80%, co pozwala księgowym skupić się na weryfikacji merytorycznej zamiast na obsłudze błędów technicznych komunikacji z serwerem.
Monitoring wydajności – jak zbudować dashboard, który krzyczy przed blokadą
Skuteczny monitoring integracji z Krajowym Systemem e-Faktur wymaga śledzenia kluczowych metryk wydajnościowych, które pozwalają na wczesne wykrywanie anomalii w komunikacji z API. Oficjalny dashboard Grafana, dostępny w repozytorium Ministerstwa Finansów (mf-ksef/monitoring), stanowi bazę do budowy własnych systemów nadzoru. Centralizacja danych o czasie odpowiedzi oraz statusach HTTP umożliwia szybką reakcję w przypadku przeciążenia infrastruktury lub błędów autoryzacji, które mogą prowadzić do czasowej blokady adresu IP emitenta.
- k_sef_response_time_ms – średni czas odpowiedzi serwera na żądanie wysyłki.
- k_sef_http_429_total – liczba wystąpień błędów przekroczenia limitu zapytań.
- k_sef_queue_depth – liczba dokumentów oczekujących w lokalnej kolejce na wysłanie.
- k_sef_invoice_size_bytes – średnia wielkość przesyłanych struktur XML.
- k_sef_auth_failures – liczba nieudanych prób uwierzytelnienia w systemie.
Kluczowym elementem systemu wczesnego ostrzegania jest właściwe ustawienie progów alarmowych. Przyjmuje się, że alert powinien zostać wygenerowany w sytuacji, gdy metryka k_sef_http_429_total przekroczy wartość 10 w ciągu 5 minut – jest to sygnał do natychmiastowego wstrzymania masowej wysyłki i przejścia w tryb awaryjny. Ignorowanie tego progu naraża przedsiębiorstwo na 15-minutowy ban IP, co w warunkach produkcyjnych może doprowadzić do znacznych zatorów w procesach sprzedażowych i logistycznych.
Testowanie alertów w środowisku sandbox jest niezbędne przed datą 1 lutego 2026 r., gdyż produkcja nie wybacza opóźnień ani błędów w konfiguracji systemów monitorujących. Przedsiębiorstwa powinny również stosować uwierzytelnianie dwuskładnikowe (MFA) dla użytkowników z uprawnieniami do eksportu danych, aby zapewnić zgodność z normami ISO/IEC 27001 oraz przepisami RODO. Stabilny monitoring to fundament E-A-T w kontekście cyfrowych rozliczeń podatkowych, budujący wiarygodność firmy przed organami administracji skarbowej.