Przejdź do treści

use case

Automatyzacja fakturowania: od CRM do KSeF.

Fakturowanie to proces z wieloma etapami, nie tylko moment wystawienia dokumentu. Od CRM przez wysyłkę, tracking płatności, upomnienia, korekty, aż po KSeF. Poniżej architektura, którą stawiam klientom z fakturowaniem cyklicznym i transakcyjnym.

Ostatnia aktualizacja: 23 kwietnia 2026 Autor: Adrian Krawczyk

Pełny cykl faktury (z perspektywy workflow)

Automatyzacja fakturowania to nie jeden przycisk. To siedem etapów, z których każdy może być targetem automatyzacji:

  1. Trigger wystawienia: zakończenie zamówienia, cykliczny billing subskrypcji, akceptacja protokołu odbioru projektu, ręczne uruchomienie przez operatora.
  2. Walidacja danych: czy klient ma aktualny NIP, adres, limit kredytowy, czy zamówienie nie jest duplikatem, czy kwota zgadza się z ofertą.
  3. Wystawienie: generowanie numeru zgodnego z sekwencją, obliczenie kwot (netto, VAT, brutto, waluta, kurs), numer księgowy, konta księgowe per pozycja.
  4. KSeF submit: od lipca 2026 obowiązek dla B2B w Polsce. Wysyłka XML w formacie FA(3), otrzymanie numeru referencyjnego, handle błędów walidacyjnych.
  5. Wysyłka do klienta: mail z PDF, link do portalu klienta, webhook do jego systemu, integracja EDI dla enterprise.
  6. Tracking płatności: monitoring konta bankowego (przez API banku lub cykl szlabun), matching wpłaty do faktury po tytule albo kwocie, update statusu.
  7. Upomnienia i windykacja: miękkie (T+3), formalne (T+14, T+30), przedsądowe (T+60), eskalacja do windykatora.

Większość wdrożeń zaczynam od etapu 1-3 (wystawianie i KSeF), potem dodajemy tracking i upomnienia w fazie 2.

KSeF: obowiązek i architektura

Krajowy System e-Faktur staje się obowiązkowy od lipca 2026 dla dużych podatników, od stycznia 2027 dla pozostałych. Co trzeba zaplanować:

  • Autoryzacja: przez token autoryzacyjny (zaszyfrowany kwalifikowanym podpisem) albo sesyjny przez API interaktywne. Token trzymamy w Secret Manager, rotacja co 2 lata.
  • Format FA(3): XML zgodny ze schemą KSeF. Dane z systemu księgowego trzeba zmapować na właściwe pola (nazwa dostawcy, NIP, pozycje, stawki VAT). Walidacja XML schemą przed submit, żeby nie dostać błędu w locie.
  • Status tracking: po submit dostajesz numer referencyjny, ale finalny status (accepted/rejected) przychodzi asynchronicznie. Workflow polluje status co 30-60 sekund przez pierwsze kilka minut, potem rzadziej.
  • Retry przy błędach: nie każdy błąd oznacza że trzeba submitować ręcznie. Niektóre są recoverable (np. rate limit), inne wymagają korekty danych (błędny NIP, brakująca pozycja).

KSeF a korekty

Faktura korygująca w KSeF musi linkować do oryginalnej przez NrKSeF oryginału. Workflow musi trzymać mapping: w bazie trzymam pary numer_faktury → numer_KSeF dla wszystkich submitted faktur, lookup przy tworzeniu korekty. Bez tego linka korekta nie przejdzie walidacji KSeF.

Tracking płatności i matching

Moment po wysyłce faktury to etap, który klienci najczęściej pomijają: skąd wiemy, że klient zapłacił?

Dwa podejścia:

  • Banking API (real-time): Open Banking (PSD2) daje dostęp do wyciągów przez API. Dla Polski: mBank, Santander, ING, PKO BP, Millennium mają API. Autoryzacja przez OAuth, polling co 15-60 minut. Natychmiastowy match wpłaty do faktury.
  • Import wyciągów (batch): klient wrzuca CSV/MT940 do folderu, cron przetwarza co godzinę. Tańsze, wolniejsze, mniej odporne. Dla mniejszych firm wystarcza.

Algorytm matching:

  1. Parse tytułu wpłaty, szukaj numeru faktury regexem (typowo FV[/-]?\d+ albo konkretny format firmy).
  2. Jeśli znaleziony, match faktury po numerze. Jeśli kwota się zgadza, mark as paid.
  3. Jeśli kwota się nie zgadza, flag do weryfikacji (częściowa płatność, różnica kursowa, nadpłata).
  4. Jeśli numer nie znaleziony, fuzzy match po nazwie dostawcy plus kwocie (z tolerancją 1 procent). Low confidence → kolejka do człowieka.
  5. Match niezmatchowanych po 7 dniach → alert do księgowej, ręczne przypisanie.

Typowe match rate: 75-90 procent automatycznie, reszta ręcznie. Wyższy rate dla klientów B2B z konsekwentnie formatowanymi tytułami, niższy dla B2C i cross-border.

Upomnienia: progression, nie spam

Dobry workflow upomnień respektuje klienta i unika automatycznej agresji:

  • T+3 dni po terminie (soft reminder): mail z grzecznym przypomnieniem, template przyjazny ("mogło się zgubić w mailu"), link do PDF faktury. Bez groźby, bez windykacji. Często to rozwiązuje sprawę (zapomniał, nie dotarło).
  • T+14 dni (formalne przypomnienie): mail i SMS, template oficjalny, informacja o możliwości naliczenia odsetek po T+30. Wstępna oferta ratalnego rozłożenia płatności jeśli klient deklaruje problem.
  • T+30 dni (ostateczne wezwanie): mail, SMS, opcjonalnie list polecony (generowany automatycznie i wysyłany przez integrację z Pocztą Polską albo kurierem). Informacja o odsetkach ustawowych, zapowiedź przekazania do windykacji zewnętrznej.
  • T+60 dni (eskalacja): ticket dla działu windykacji (lub zewnętrznego partnera). Workflow pauzuje automatyzację, człowiek przejmuje sprawę.

Personalizacja: template różne dla małych kwot (pod 500 PLN, "mogło się zgubić"), średnich (500-5000 PLN, formalnie ale bez agresji), dużych (powyżej 5000 PLN, dedicated relationship manager dostaje cc). Klient strategiczny (top 20 procent przychodu) ma osobny template z kontaktem bezpośrednim do opiekuna.

Korekty: reverse engineering oryginału

Korekta nie jest osobnym dokumentem, to zmiana oryginału. Workflow musi rozumieć delta:

  • Korekta in minus: zmniejszenie kwoty (zwrot, rabat, reklamacja). Dokument korygujący z negatywnymi kwotami, księgowanie na przeciwne konto.
  • Korekta in plus: zwiększenie kwoty (błędna pozycja, dodatkowa usługa). Rzadziej, ale się zdarza.
  • Korekta formalna: zmiana nie-finansowa (błędny NIP, adres). Nie zmienia ksiąg, ale wymaga KSeF submit.

Trigger korekty w workflow:

  1. Zwrot towaru przez e-commerce: automatyczna korekta ilości minus.
  2. Reklamacja uwzględniona: korekta po decyzji działu reklamacji.
  3. Reklamacja klienta na błąd w fakturze: ręczny trigger przez operatora.

Workflow generuje korektę (numerację osobną albo w sekwencji z oryginałami, zależy od polityki firmy), submit do KSeF z linkiem do oryginalnego numeru, push do księgowości, mail do klienta z PDF. Wszystko audytowane, z trail kto i kiedy wygenerował.

Integracje po stronie systemów

Fakturowanie dotyka wielu systemów, automatyzacja integruje je w jeden pipeline:

  • CRM: źródło danych klienta (NIP, adres, limit), statusu zamówienia, historii relacji. Workflow pyta CRM przed wystawieniem.
  • ERP / księgowość: Comarch Optima, enova365, iHurt, Subiekt. Faktura z workflow musi się pojawić tu, żeby księgowa miała dokumenty.
  • KSeF: obowiązkowy kanał. Submit, tracking statusu, retry.
  • Bank: tracking wpłat przez Open Banking API albo batch import wyciągów.
  • System mailingowy: wysyłka maili z PDF, trackowanie czy klient otworzył, kliknął link, pobrał PDF.
  • SMS gateway: dla upomnień T+14 i dalej.
  • Poczta Polska / kurier: list polecony dla ostatecznego wezwania. Integracja przez ich API.

Najczęstsze pytania

Od kiedy KSeF jest obowiązkowy?

Od 1 lipca 2026 dla tak zwanych dużych podatników (obrót powyżej 200 mln PLN rocznie), od 1 stycznia 2027 dla pozostałych podatników VAT czynnych. Fakultatywnie KSeF działa od 2022 roku, więc wczesne wdrożenie jest możliwe i rekomendowane (uniknięcie pośpiechu).

Czy musimy mieć kwalifikowany podpis elektroniczny dla KSeF?

Tak dla autoryzacji tokenu KSeF. Kwalifikowany podpis (np. z KIR albo Cencert) podpisuje wniosek o token, potem token działa 2 lata. Dla firmy jednoosobowej to ok 300-500 PLN rocznie. Dla większych organizacji token per system, więc kilka tokenów.

Jak szybko matching płatności działa?

Z Open Banking API: natychmiast po zaksięgowaniu na Twoim koncie (5-30 minut od wpłaty). Z batch import CSV: zależy od częstotliwości cronu, typowo co godzinę. Dla większości firm godzina to OK, dla e-commerce z wysokim wolumenem preferuję real-time.

Czy możemy dostosować tone upomnień do charakteru klienta?

Tak, personalizacja jest kluczowa. W CRM trzymamy flagę 'tone' (casual/formal/vip), workflow używa różnych templateów. VIP clients dostają upomnienie przez opiekuna (generowany draft, wysyłka po akceptacji), pozostali przez automat. Flag jest editable przez sales team.

Co jeśli klient kwestionuje fakturę?

Workflow loguje 'dispute' na fakturze, wstrzymuje upomnienia (żeby nie dokładać presji podczas wyjaśniania), otwiera ticket w systemie reklamacji. Po rozstrzygnięciu (korekta albo utrzymanie) workflow wznawia normalny tor: mail do klienta z outcome, jeśli korekta generujemy dokument, jeśli utrzymujemy wznawiamy upomnienia.

Chcesz pogadać o konkretnym projekcie?

Warsztat otwierający to 90 minut, zdalnie albo w Poznaniu, bez zobowiązań. Mówimy, czy Twój proces nadaje się do automatyzacji i w jakiej skali.

napisz do mnie →