Przejdź do treści głównej

Co to jest tryb tryb wysyłki (Batch) w Cron?

Wprowadzenie trybu wsadowego jest kluczowe dla firm generujących duży wolumen dokumentów (powyżej 5 000 dziennie). Pozwala on na obejście limitów zapytań interaktywnych narzuconych przez Ministerstwo Finansów poprzez pakowanie wielu faktur w jedną paczkę. 

Włączenie tego trybu jest możliwe tylko przez serwis Cairo. 

1. Kluczowe zmiany techniczne

  • Nowa metoda wysyłki: System wykorzystuje funkcję która przesyła paczki dokumentów w formacie ZIP zakodowanym w Base64.

  • Struktura paczki: Każdy request zawiera:

    • Unikalny identyfikator paczki.

    • Liczba dokumentów wewnątrz (domyślnie 50).

    • Skrót SHA256 do weryfikacji integralności danych.

  • Obsługa mieszana: Paczka ZIP może zawierać zarówno faktury Offline (XML), jak i oczekujące dokumenty Online (JSON).

2. Nowe Parametry Konfiguracyjne (Cron)

W sekcji [KSEF_SAFE_MODE] lub dedykowanych ustawieniach Cron dodano parametry sterujące nową logiką:

ParametrWartość domyślnaOpis
time
1234567:*1Ustawienie jak często cron ma się wykonać i przesyłać paczki
delayed_sending:
0
<liczba minut> (domyślnie: 0 - wysyłka natychmiastowa; > 0 - wysyłka z opóźnieniem). Opóźnienie daje czas na uzupełnienie błędnych danych lub diagnozę problemu. Zatwierdzony dokument zostanie wysłany przez crona po zadeklarowanym czasie. Wstępna walidacja jest szczelna, ale w przypadku braku połączenia system będzie ponawiał próbę po zadeklarowanym czasie (np. 5-10 minut).
email
pustydres, na który będą wysyłane raporty o wysłanych/niewysłanych dokumentach.
max_package50Maksymalna liczba faktur w jednej paczce ZIP.
try_count2Liczba prób wysyłki dla dokumentów z błędami merytorycznymi.

3. Logika działania Crona

  1. Grupowanie: Cron zbiera dokumenty oczekujące na wysyłkę.

  2. Paczkowanie: Jeśli liczba dokumentów przekracza max_package, są one dzielone na kilka paczek ZIP.

  3. Weryfikacja: Po wysłaniu ZIPa, system zamyka sesję i czeka do 30 sekund na przydzielenie numerów KSeF ID.

  4. Błędy: Dokumenty z błędami merytorycznymi są blokowane po przekroczeniu try_count, aby nie wstrzymywać kolejnych paczek. Błędy komunikacyjne (brak internetu) nie zwiększają licznika prób.


Scenariusz Przykładowy

  • Stan: Oczekuje 230 faktur.

  • Działanie: * System generuje 4 paczki po 50 faktur oraz 1 paczkę po 30 faktur.

    • Wszystkie paczki są wysyłane w jednej sesji Crona, co zużywa tylko kilka requestów do API zamiast 230.