W sierpniu księgowa firmy transportowej, z którą pracuję, poprosiła o faktury do ośmiu obciążeń na karcie firmowej. Osiem pozycji na wyciągu. Żeby je skompletować, trzy osoby musiały zalogować się do sześciu różnych paneli: dostawca domen, dwa narzędzia do pozyskiwania leadów, chmura, program graficzny, hosting. Każdy panel ma faktury w innym miejscu, jeden w ogóle nie wystawia ich automatycznie, a jedna faktura przyszła na starą działalność zamiast na spółkę. Kilka dni korespondencji o osiem PDF-ów, z których każdy już gdzieś istniał.
To jest druga, gorsza strona fakturowania. O tym, jak faktury sprzedaży wystawiają się u mnie same, pisałem w czerwcu. Dziś o tych, które przychodzą: za subskrypcje, za towar, za serwery, od dostawców z trzech krajów, w trzech walutach. Dokumenty, których nikt w firmie nie chce czytać, a które ktoś musi przeczytać, przypisać, zaksięgować i zapłacić. Prowadzę agencję AI dla firm na 10 - 50 osób i jestem współwłaścicielem sklepu, więc mam ich kilkadziesiąt miesięcznie. Pokażę, co z nich czyta AI, co robi z przeczytanym i gdzie zostawiam człowieka. Bo zostawiam.
Spis treści
- Dlaczego faktura kosztowa jest trudniejsza od faktury sprzedaży?
- Co właściwie robi AI z PDF-em faktury?
- Czy po KSeF odczyt faktur jest jeszcze komuś potrzebny?
- Jak wygląda u mnie droga jednego dokumentu
- Gdzie człowiek zatwierdza i dlaczego tego nie oddam
- Na czym się przejechałem w tym roku
- Od czego zacząć w firmie, która nie ma działu IT
- Czy to się w ogóle opłaca?
- Słownik pojęć
Dlaczego faktura kosztowa jest trudniejsza od faktury sprzedaży?
Fakturę sprzedaży wystawiasz ty. Znasz dane, znasz pozycje, znasz kwotę, bo sam ją ustaliłeś. Program księgowy ma wszystko w jednym formacie, bo to twój format. Automatyzacja tego procesu jest w gruncie rzeczy łatwa i dlatego wszyscy ją pokazują na konferencjach.
Fakturę kosztową wystawia ktoś inny. I każdy inaczej. Dostawca z Niemiec przysyła PDF z tabelą, w której cena jednostkowa stoi w jednej kolumnie, rabat w drugiej, a wartość pozycji w trzeciej. Amerykański SaaS wystawia „invoice" w dolarach bez NIP-u nabywcy, bo nie wie, co to NIP. Operator chmury w ogóle nie wysyła faktury mailem, trzeba wejść do panelu i ją pobrać. Kurier dokłada do przesyłki z Wielkiej Brytanii dokument odprawy celnej, na którym cło i VAT importowy są polami o nazwach A00 i B00. Polski kontrahent przysyła fakturę przez KSeF, czyli jako plik XML, który człowiek bez narzędzia w ogóle nie przeczyta. A hotel daje paragon.
Do tego dochodzi pytanie, którego faktura sprzedaży nigdy nie zadaje: czyj to w ogóle koszt? Część moich wydatków to koszt firmy. Część to koszt poniesiony za klienta, który trzeba mu przefakturować, i jeśli tego nie zrobię w tym miesiącu, pieniądze przepadają. Część to towar do magazynu, który ma trafić na stan sklepu z właściwą ceną zakupu, bo od niej liczy się marża. Trzy zupełnie różne ścieżki, a dokument na wejściu wygląda tak samo.
U mnie zbiera to Kasia, dyrektor operacyjny. Przelewy robi mój wspólnik. Ja odpowiadam za to, żeby żadne z nas nie musiało przepisywać cyfr z PDF-u do programu. I za to, żeby faktura za koszt klienta nie utonęła w folderze „do ogarnięcia" na trzy miesiące. Szczerze? Przez lata tonęła.
Co właściwie robi AI z PDF-em faktury?
Najprościej wyobrazić sobie bardzo cierpliwego stażystę z lupą, który czyta każdy dokument do końca i wypisuje z niego to, o co poprosisz, do jednej, zawsze takiej samej tabelki. Nie nudzi się przy setnej fakturze. Nie pomija drobnego druku. Ale, jak każdy stażysta, czasem zrozumie coś na opak i zrobi to z pełnym przekonaniem. O tym będzie dalej.
Technicznie dzieją się trzy rzeczy po kolei:
- Odczyt. Z pliku trzeba wydobyć tekst. Jeśli PDF powstał w programie, tekst już w nim jest i wystarczy go wyciągnąć. Jeśli to skan albo zdjęcie z telefonu, potrzebne jest rozpoznanie znaków, czyli OCR. Modele językowe nowej generacji robią jedno i drugie, bo przyjmują obraz strony jako wejście.
- Wyciągnięcie pól. Model dostaje polecenie: zwróć numer faktury, datę wystawienia, walutę, sprzedawcę, NIP, każdą pozycję z ilością i wartością, sumę netto, VAT, brutto. I zwraca to w postaci ustrukturyzowanej, czyli jako dane, które program może dalej przetwarzać, a nie jako akapit prozy.
- Klasyfikacja. Na podstawie treści model odpowiada na pytania, których żaden OCR nie zada: czy to faktura za towar, za usługę, za transport? Do jakiego projektu pasuje? Czy ten koszt dotyczy klienta X? Czy to nowy kontrahent, czy ktoś, od kogo kupujemy co miesiąc?
Pierwsze dwa kroki to rzemiosło, które istnieje od lat i które gotowe programy księgowe robią całkiem dobrze. Trzeci krok to miejsce, gdzie model językowy realnie coś zmienia, bo rozumie kontekst. Linia „Versandkosten" na niemieckiej fakturze to transport, choć słowo „transport" nigdzie nie pada. Faktura od firmy hostingowej z domeną klienta w opisie to koszt do refaktury, nie koszt własny. Tego nie da się zrobić regułą „jeśli nazwa zawiera X". Da się to zrobić modelem, który czyta ze zrozumieniem.
W moim przypadku są dwa silniki. Program księgowy ma interfejs do pobierania faktur kosztowych, więc to, co już w nim jest, czytam programowo, bez PDF-ów. A w panelu magazynowym sklepu dostawca wgrywa fakturę za towar, serwer sam woła model i dostaje z powrotem listę pozycji z cenami. To drugie właśnie wdrażamy i na nim najwięcej się uczę.
Czy po KSeF odczyt faktur jest jeszcze komuś potrzebny?
Tu muszę rozbroić mit, który sprzedaje się dziś najlepiej. „AI do faktur" reklamuje się zwykle jako OCR: wrzuć PDF, program sam przepisze. Tyle że od wiosny tego roku faktury między polskimi firmami idą przez Krajowy System e-Faktur. Dokument przychodzi jako ustrukturyzowany plik, w którym każde pole ma swoje miejsce. Nic nie trzeba rozpoznawać. Program księgowy pobiera fakturę z KSeF i ma wszystkie dane gotowe, bez żadnej sztucznej inteligencji.
Dla sporej części firm w Polsce problem „przepisywania faktur kosztowych" rozwiązało więc państwo, nie technologia. Jeśli kupujesz wyłącznie od polskich firm i twój program księgowy ma integrację z KSeF, odczyt faktur przez AI jest ci potrzebny mniej więcej tak, jak faks.
Co zostaje? Dokładnie to, co u mnie generuje najwięcej roboty:
- faktury od dostawców zagranicznych, w euro, funtach i dolarach, bez KSeF i bez polskich pól
- subskrypcje narzędzi online, które wystawiają dokumenty po swojemu i trzymają je w swoich panelach
- dokumenty celne i faktury agencji przy imporcie spoza Unii
- paragony, proformy, potwierdzenia płatności, które formalnie fakturami nie są, a koszt niosą
- i wszystko, co KSeF ci da, ale czego i tak trzeba przypisać: do projektu, do klienta, do produktu
Czyli AI w fakturach kosztowych nie zastępuje KSeF. Zaczyna tam, gdzie KSeF się kończy. To zresztą ogólniejsza reguła: zanim kupisz sztuczną inteligencję do czegoś, sprawdź, czy ktoś już nie zrobił tego za ciebie zwykłym standardem.
Jak wygląda u mnie droga jednego dokumentu
Pokażę to na dwóch typach faktur, które różnią się najbardziej. Wspólny jest szkielet: wpływ, odczyt, przypisanie, bramka człowieka, księgowanie, archiwum, które da się przeszukać.
Subskrypcje i usługi, czyli faktury, których nikt nie przysyła
Firma na kilkanaście osób ma dziś spokojnie 20 - 40 płatnych narzędzi online. Każde obciąża kartę, każde wystawia fakturę gdzie indziej. To jest ten przypadek z początku tekstu, ośmiu obciążeń i sześciu paneli.
Rozwiązanie nie jest wyrafinowane. Dla dostawców, którzy mają interfejs programistyczny, faktury pobierają się same. U operatora, u którego trzymam serwery i kilkadziesiąt domen klientów, zbudowałem w naszym wewnętrznym panelu jedno kliknięcie przy numerze faktury: PDF ściąga się z konta dostawcy i ląduje u nas, bez logowania do cudzego panelu. Dla dostawców bez interfejsu zostaje reguła: faktura ma trafić na jeden firmowy adres mailowy przeznaczony wyłącznie do tego. Nie na skrzynkę osoby, która akurat zakładała konto. Brzmi banalnie, a połowa problemów z fakturami w małych firmach bierze się stąd, że dokument przyszedł do kogoś, kto trzy miesiące później już tam nie pracuje.
Dalej model czyta to, co wpadło, i odpowiada na trzy pytania: od kogo, za co, czy to koszt własny czy klienta. Faktura za hosting z nazwą domeny klienta w pozycji dostaje etykietę „do refaktury" i trafia na listę, którą Kasia widzi przy wystawianiu faktur na koniec miesiąca. Bez tej etykiety w ubiegłych latach część takich kosztów po prostu przepadała, bo nikt nie pamiętał, że certyfikat SSL dla klienta opłaciliśmy z naszej karty.
Faktury za towar, czyli tam, gdzie liczy się każdy grosz
W sklepie jest inaczej, bo faktura od dostawcy nie jest tylko kosztem. Jest źródłem ceny zakupu każdej sztuki na magazynie, a od tej ceny liczy się marża. Pomyłka w odczycie nie kończy się tu złym księgowaniem. Kończy się tym, że przez pół roku sprzedajesz produkt myśląc, że zarabiasz 55%, a zarabiasz 45%.
Dostawa wygląda tak: ktoś wgrywa PDF faktury dostawcy. Model czyta pozycje, walutę, datę wystawienia i numer. Każda linia dostaje propozycję, do którego produktu z naszego katalogu pasuje. Linia z transportem jest rozpoznawana jako transport i nie staje się produktem. Kurs do przeliczenia na złote bierze się z tabeli NBP z dnia roboczego przed datą faktury, bo tak każe przepis, a nie „z dzisiaj". Koszt transportu rozkłada się na produkty proporcjonalnie do ich wartości.
Potem towar jest skanowany sztuka po sztuce przy przyjęciu, a system porównuje: na fakturze 4 sztuki, zeskanowano 3. Różnica wyskakuje od razu, na ekranie, zanim ktokolwiek zatwierdzi przyjęcie. To jest moment, w którym AI oddaje głos człowiekowi. Model podpowiada, człowiek klika „ten produkt" albo poprawia. I dopiero wtedy cena zakupu wchodzi do systemu.
Dwa zdania o tym, czemu nie zrobiłem tego prostszej. Mógłbym kazać modelowi od razu zapisywać cenę zakupu do bazy. Przy pierwszych testach zobaczyłem, jak ten sam dokument raz czytany jest z ceną po rabacie, a raz z ceną katalogową, bo obie stoją na fakturze obok siebie. Różnica rzędu 15%, bez żadnego ostrzeżenia, ze stuprocentową pewnością siebie modelu. Od tej pory model podaje wartość pozycji z ostatniej kolumny, a cenę jednostkową liczy już mój kod przez zwykłe dzielenie. Arytmetyka jest powtarzalna. Interpretacja nie.
Na końcu każdy dokument, niezależnie od ścieżki, ląduje w firmowej wyszukiwarce dokumentów z datą, kontrahentem i kwotą. Kiedy klient pyta w listopadzie o fakturę z marca, odpowiedź zajmuje pół minuty, a nie pół godziny grzebania w załącznikach.
Gdzie człowiek zatwierdza i dlaczego tego nie oddam
W całym tym obiegu są cztery miejsca, w których zatrzymuję automat i czekam na kliknięcie. Nie dlatego, że nie ufam technologii. Dlatego, że przy pieniądzach koszt pomyłki jest asymetryczny: automat oszczędza minuty, a błąd kosztuje godziny albo gotówkę.
Nowy kontrahent. Jeśli faktura przychodzi od firmy, od której nigdy nie kupowaliśmy, nic nie dzieje się samo. Człowiek musi potwierdzić, że to prawdziwy dostawca, a nie jedna z faktur, które przestępcy wysyłają na firmowe skrzynki w nadziei, że ktoś zapłaci z rozpędu. Model może sprawdzić NIP w białej liście i podpowiedzieć „nie znam go". Decyzję zostawiam ludziom.
Kwota niezgodna z tym, co wiemy. Faktura za abonament, który co miesiąc kosztuje tyle samo, a nagle kosztuje dwa razy więcej. Faktura od dostawcy towaru, której suma pozycji nie zgadza się z „Razem" na dole dokumentu. Model czyta linie, mój kod je sumuje i porównuje z sumą z dokumentu. Jeśli nie pasuje, dokument stoi i czeka. Ta jedna kontrola wyłapała mi już błędy, których okiem nie widziałem, bo kto sprawdza, czy faktura sama ze sobą się zgadza.
Przypisanie do klienta. Automat etykietuje „do refaktury", ale to Kasia decyduje, czy faktycznie obciążyć klienta i w jakiej kwocie. Czasem koszt wzięliśmy na siebie, bo tak było w umowie. Czasem klient dostaje go z marżą. Model tego nie wie, bo tego nie ma w dokumencie. To jest w głowie człowieka i w relacji.
Płatność. Przelewy robi mój wspólnik, ręcznie, z podsumowaniem przed oczami. Żaden automat w mojej firmie nie ma dostępu do rachunku z prawem do wysyłania pieniędzy i tak zostanie. To ta sama zasada, którą opisałem przy KSeF: im bardziej coś jest nieodwracalne, tym mniej powinno dziać się samo.
Wspólny mianownik tych czterech bramek: człowiek zatwierdza tam, gdzie decyzja wymaga wiedzy, której nie ma w dokumencie. Wszystko, co jest w dokumencie, może czytać maszyna.
Na czym się przejechałem w tym roku
Byłoby nieuczciwie pokazać tylko gładki obieg, bo zbudowałem go na własnych wpadkach. Cztery z tego roku.
W lipcu zmieniłem formę działalności na spółkę. Program księgowy ma od tej pory dwa osobne konta, ze starej firmy i z nowej. W sierpniu szukałem faktur kosztowych do rozliczenia, podłączyłem się do pierwszego konta, które znalazłem, zobaczyłem puste wyniki i orzekłem, że danych nie ma. Były. Na drugim koncie. Straciłem na tym pół dnia i trochę wiarygodności przed wspólnikiem, który klucze do drugiego konta przysłał mi tydzień wcześniej. Lekcja: automat jest tak dobry, jak wiedza o tym, do czego go podpięto. Zmiana formy prawnej to zmiana, o której trzeba powiedzieć każdemu skryptowi osobno.
Z tego samego powodu jedna faktura za certyfikat SSL przyszła na starą działalność, bo dostawca miał zapisane stare dane i nie da się ich zmienić bez założenia nowego konta. Żaden odczyt AI tego nie naprawi. To praca człowieka: przejść przez listę dostawców i zaktualizować dane nabywcy u każdego. Nudne, konieczne, nikt tego nie zrobi za ciebie.
Trzecia wpadka jest o alertach, nie o fakturach, ale wynika z tego samego mechanizmu. Dostałem powiadomienie o odrzuconej płatności kartą za reklamę. Jedno. Wyglądało niegroźnie, zignorowałem. Kiedy w końcu policzyłem, odrzuceń od początku miesiąca było szesnaście, a kampania klienta stała od tygodnia. Lekcja: pojedynczy dokument wygląda inaczej niż seria. Liczyć, nie czytać pojedynczo. I właśnie dlatego klasyfikacja przez AI ma u mnie na końcu zwykły licznik, który zlicza, ile faktur od tego samego dostawcy przyszło w miesiącu i czy to normalne.
Czwarta jest wstydliwa i techniczna. Napisałem od zera skrypt do pobierania faktur z programu księgowego, bo nie pamiętałem, że dwa miesiące wcześniej napisałem taki sam. Dwie godziny w błoto. Od tej pory każde narzędzie do faktur ma jedno miejsce w repozytorium i wpis w moim rejestrze, do którego zaglądam przed pisaniem czegokolwiek. To nie jest problem AI. To problem człowieka, który buduje za szybko.
Od czego zacząć w firmie, która nie ma działu IT
Gdybym miał poukładać to dla firmy na 10 - 50 osób, która topi się w fakturach kosztowych, kolejność jest taka:
1. Policz źródła, nie faktury. Przez jeden miesiąc spisuj, skąd przychodzą dokumenty kosztowe: ile przez KSeF, ile mailem, ile trzeba pobierać z paneli, ile to paragony. Zwykle wychodzi, że 70 - 80% dokumentów pochodzi z 5 - 6 źródeł. To one wyznaczają, co automatyzować. 2. Jeden adres dla faktur. Firmowa skrzynka wyłącznie na dokumenty kosztowe, wpisana u każdego dostawcy jako adres do faktur. Zero kosztu, największy efekt. Dopiero na uporządkowany strumień ma sens puszczać AI. 3. Najpierw KSeF, potem AI. Sprawdź, czy twój program księgowy pobiera faktury z KSeF automatycznie. Jeśli tak, włącz to. Odczyt AI zostaw tylko dla tego, co KSeF nie obejmuje. 4. Zacznij od klasyfikacji, nie od odczytu. Jeśli dokumenty już są w programie, największą wartość daje odpowiedź na pytanie „czyj to koszt i do czego". To zwykle najprostsze wdrożenie i najszybszy zwrot, bo odzyskujesz pieniądze z kosztów, których dotąd nikt nie przefakturował. 5. Kontrola arytmetyczna kodem. Suma pozycji ma się zgadzać z sumą dokumentu. Cena jednostkowa ma być liczona, nie czytana. To jedna funkcja i chroni przed najdroższymi pomyłkami modelu. 6. Cztery bramki człowieka od pierwszego dnia. Nowy kontrahent, kwota poza normą, przypisanie do klienta, płatność. Automat przygotowuje, człowiek klika. 7. Mierz jedną liczbę. Nie „wdrożyliśmy AI do faktur", tylko „z czterech godzin w miesiącu zrobiło się czterdzieści minut" albo „odzyskaliśmy X złotych z kosztów do refaktury". Bez tej liczby nie wiesz, czy to było warte zachodu.
Jeśli zastanawiasz się, czy faktury kosztowe to dobry pierwszy proces do automatyzacji w twojej firmie, przepuść je przez moją checklistę powtarzalności, wolumenu i kosztu błędu. Zwykle wychodzą wysoko, ale nie zawsze.
Czy to się w ogóle opłaca?
Nie każdemu. Jeśli masz kilkanaście faktur kosztowych miesięcznie, wszystkie z Polski, wszystkie przez KSeF, a koszty klientów nie wchodzą w grę, to twój program księgowy już robi wszystko, co trzeba. Nie buduj niczego. Powiem to jako ktoś, kto takie rzeczy buduje i mógłby na tym zarobić.
Rachunek zmienia się w trzech przypadkach. Gdy kupujesz towar i cena zakupu decyduje o marży, bo wtedy każdy błąd w odczycie to realny pieniądz na każdej sprzedanej sztuce. Gdy ponosisz koszty za klientów, bo nieprzefakturowany koszt to pieniądz stracony bezpowrotnie. I gdy masz dziesiątki dostawców zagranicznych i subskrypcji, bo wtedy samo kompletowanie dokumentów zjada etat.
A jeśli twoje dokumenty nie mogą opuścić firmy, bo prowadzisz kancelarię, przychodnię albo biuro rachunkowe, to cały ten obieg da się postawić na modelu działającym na własnym serwerze. Słabszym, wolniejszym, ale takim, z którego żadna faktura nie wychodzi na zewnątrz. Sam przez taki model przepuszczałem klasyfikację faktur do projektów i do tego zadania wystarcza.
Najważniejsze, co wyniosłem z tego roku, nie dotyczy AI. Dotyczy tego, że faktura kosztowa to nie dokument do zaksięgowania, tylko informacja, którą ktoś w firmie powinien dostać na czas: że klientowi trzeba coś przefakturować, że produkt kosztował więcej, niż myśleliśmy, że dostawca podniósł cenę. Maszyna czyta to szybciej niż człowiek. Ale to człowiek musi chcieć tę informację dostać. Resztę da się zautomatyzować.
Słownik pojęć
- OCR - rozpoznawanie znaków z obrazu. Zamienia skan albo zdjęcie dokumentu na tekst, który komputer może przetwarzać. Przy PDF-ach wygenerowanych w programie nie jest potrzebne, bo tekst już w nich jest.
- KSeF (Krajowy System e-Faktur) - państwowy system, przez który od 2026 roku przechodzą faktury między polskimi firmami. Faktura w KSeF to ustrukturyzowany plik, nie PDF; program księgowy odczytuje z niego wszystkie dane bez rozpoznawania tekstu.
- Dane ustrukturyzowane - informacja zapisana w stałych polach (numer, data, kwota, pozycje), a nie jako swobodny tekst. Model językowy przy odczycie faktury zamienia PDF właśnie na taką postać, żeby program mógł z nią dalej pracować.
- Refaktura - obciążenie klienta kosztem, który firma poniosła w jego imieniu, na przykład za hosting, domenę albo licencję. Nieprzefakturowany koszt to pieniądz stracony.
- Biała lista podatników VAT - rejestr Ministerstwa Finansów, w którym można sprawdzić NIP, status VAT i numery rachunków firmy. Pierwsze, co warto zrobić z fakturą od nowego dostawcy.
- Kurs NBP tabela A - oficjalny kurs średni, po którym przelicza się faktury w walucie obcej. Przepis każe brać kurs z ostatniego dnia roboczego przed datą wystawienia faktury, nie z dnia płatności.
Pokaż mi swoją szufladę z fakturami
Jeśli w twojej firmie faktury kosztowe wpadają do folderu „do ogarnięcia" i wychodzą z niego dopiero przed terminem JPK, napisz do mnie na [email protected]. Zacznę od pytania, skąd przychodzą i ile z nich dotyczy klientów, bo tam zwykle leżą pieniądze, których nikt nie liczy. Dopiero potem porozmawiamy o AI, i całkiem możliwe, że powiem ci, że jej nie potrzebujesz.
Więcej o tym, jak wygląda współpraca ze mną - od pierwszej rozmowy po wdrożenie.
własnej firmie cybulski.ai JC


