Samofakturowanie i wysyłka masowa w KSeF – jak automatycznie wystawiać faktury w imieniu kontrahenta
Samofakturowanie (self-billing) to sytuacja, w której to nabywca — a nie sprzedawca — wystawia fakturę dokumentującą transakcję, na podstawie wcześniej zawartej umowy między stronami. Najczęściej dotyczy to scenariuszy, w których jedna firma centralnie rozlicza wielu drobnych kontrahentów lub punktów sprzedaży — np. sieć franczyzowa, dystrybutor rozliczający się z licznymi sklepami czy dostawca zbierający dane sprzedażowe od wielu partnerów. W KSeF samofakturowanie działa tak samo jak zwykła faktura, z jedną istotną różnicą: wymaga wcześniejszego nadania przez każdego kontrahenta osobno uprawnienia do samofakturowania w jego kontekście KSeF.
Dlaczego skala zmienia wszystko
Przy jednym czy kilku kontrahentach samofakturowanie można obsłużyć ręcznie. Przy kilkudziesięciu czy kilkuset punktach sprzedaży — jak w przypadku sieci sklepów rozliczanych centralnie — pojawiają się problemy, których ręcznie się nie da dobrze rozwiązać:
- dane źródłowe (sprzedaż poszczególnych punktów) trzeba zebrać, oczyścić i przypisać do właściwego kontrahenta na podstawie jego danych rejestrowych,
- każda faktura musi mieć poprawny, spójny numer zgodny z przyjętym schematem numeracji (np. per punkt sprzedaży, per miesiąc),
- KSeF nakłada limity liczby żądań w jednostce czasu — wysyłka dużej paczki faktur „naraz" nieuchronnie na nie trafi,
- część faktur może zostać odrzucona (np. brak uprawnienia do samofakturowania u danego kontrahenta) — trzeba to wychwycić i zaraportować, a nie tylko przerwać cały proces.
Jak wygląda zautomatyzowany proces end-to-end
- Wczytanie danych źródłowych. Dane sprzedaży poszczególnych kontrahentów (np. z pliku XLSX lub bezpośrednio z bazy danych systemu sprzedażowego) są wczytywane i wzbogacane o brakujące informacje — np. dane sprzedawcy pobierane z centralnej bazy kontrahentów po numerze identyfikacyjnym punktu.
- Generowanie faktur FA(3). Dla każdego kontrahenta osobno generowany jest dokument zgodny ze schematem KSeF, z zachowaniem przyjętego formatu numeracji i unikalnego licznika miesięcznego.
- Pakowanie do paczek. Wygenerowane faktury są grupowane w paczki i wysyłane przez endpoint wysyłki wsadowej — zamiast wysyłać każdą fakturę osobnym żądaniem.
- Wysyłka z poszanowaniem limitów KSeF. System pilnuje odstępów między żądaniami, tak by nie przekroczyć limitów nałożonych przez KSeF, a w razie ich osiągnięcia — wstrzymuje się i wznawia wysyłkę automatycznie.
- Raport zbiorczy. Po zakończeniu procesu powstaje raport: ile faktur wysłano poprawnie, które zostały odrzucone i z jakiego powodu — z grupowaniem błędów (np. po NIP-ie kontrahenta), żeby jednym rzutem oka było widać, u kogo trzeba interweniować.
Najczęstsza przyczyna odrzuceń: brak uprawnienia do samofakturowania
W praktyce najczęstszym powodem odrzucenia faktury w procesie samofakturowania nie jest błąd w danych, tylko brak formalnego nadania uprawnienia do wystawiania faktur w jego imieniu przez danego kontrahenta w systemie KSeF. To krok, który każdy kontrahent musi wykonać indywidualnie — żadna automatyzacja tego nie obejdzie, bo to świadome uprawnienie nadawane na poziomie konta podatnika. Dlatego dobry proces masowej wysyłki nie przerywa się na pierwszym takim błędzie, tylko kontynuuje wysyłkę pozostałych faktur i na końcu przedstawia zbiorczą listę kontrahentów, u których trzeba jeszcze dopilnować nadania uprawnienia.
Numeracja — drobny, ale kosztowny błąd
Przy generowaniu wielu faktur miesięcznie osobny licznik numeracji dla każdego punktu sprzedaży musi być trwały i odporny na sytuacje takie jak przerwanie procesu w połowie wysyłki. Kluczowa zasada: numer faktury powinien być zapisywany jako „zużyty" dopiero w momencie faktycznej, potwierdzonej wysyłki — nie w momencie samego zaplanowania czy wygenerowania dokumentu. W przeciwnym razie faktury nieudane lub anulowane „zjadają" numery, które nigdy realnie nie trafiły do obrotu, co utrudnia późniejsze uzgodnienie ciągłości numeracji.
Co zyskujesz
- Jedno uruchomienie zamiast setek ręcznych czynności. Cały cykl — od danych źródłowych po wysłane faktury — dzieje się jako jeden zautomatyzowany proces.
- Zgodność z limitami KSeF bez ręcznego pilnowania. System sam reguluje tempo wysyłki, zamiast obciążać tym operatora.
- Czytelny raport błędów. Zamiast przekopywać się przez logi, dostajesz zbiorczą listę, co poszło źle i u którego kontrahenta.
- Bezpieczna numeracja. Numery faktur pozostają spójne nawet przy częściowo nieudanych wysyłkach czy przerwaniu procesu.
Dla kogo ma to sens
Automatyzacja samofakturowania i wysyłki masowej ma sens wszędzie tam, gdzie jeden podmiot centralnie rozlicza wielu kontrahentów na podstawie zebranych danych sprzedażowych — sieci franczyzowe, dystrybutorzy, hurtownie rozliczające punkty detaliczne. Im więcej punktów objętych rozliczeniem, tym większa różnica między procesem ręcznym a zautomatyzowanym.
Podsumowanie
Samofakturowanie na dużą skalę to nie jest kwestia wystawienia większej liczby faktur — to kwestia zaprojektowania procesu, który poprawnie obsłuży dane źródłowe, numerację, limity KSeF i częściowe niepowodzenia, bez konieczności ręcznego nadzorowania każdego kroku.
Rozliczasz wielu kontrahentów i chcesz to zautomatyzować? Skontaktuj się z nami lub zapoznaj się z dokumentacją API.