Przejdź do treści

use case

OCR faktur: od PDF do plan kont, automatycznie.

OCR faktur to jeden z pierwszych procesów, które klienci chcą zautomatyzować. Brzmi prosto, ale diabeł siedzi w szczegółach: polskie faktury mają osiem różnych layoutów, korekty zamieszane z fakturami, wielowalutowe zaliczki. Poniżej jak to układam w produkcji.

Ostatnia aktualizacja: 23 kwietnia 2026 Autor: Adrian Krawczyk

Co konkretnie załatwia OCR faktur

Pełny pipeline OCR faktur to cztery etapy:

  1. Ingest: faktura przychodzi mailem, pocztą (skan), przez formularz dostawcy, albo z portalu B2B. Pipeline musi ją wyłapać niezależnie od kanału.
  2. OCR i ekstrakcja pól: z PDF (często obraz zeskanowany) wyciągamy konkretne pola: dostawca, NIP, numer faktury, data wystawienia i sprzedaży, netto, VAT, brutto, pozycje (opis plus kwota plus stawka VAT).
  3. Mapowanie na plan kont: każda pozycja musi trafić na konkretny account (np. "usługi doradcze" → 403-01, "paliwo" → 401-10). Mapping zwykle per dostawca plus reguły słownikowe.
  4. Push do systemu księgowego: Comarch Optima, enova365, iHurt, Subiekt GT, Fakturownia. Każdy ma swoje API (albo webhook, albo import CSV, albo Playwright upload w UI).

Automatyzacja zastępuje księgową w etapach 1-3. Ostateczne zatwierdzenie zostaje u człowieka (jedną kliknięciem "OK" zamiast ręcznego przepisywania).

Technologie OCR: co wybrać

Cztery podejścia do OCR, każde ze swoim miejscem:

  • Google Document AI (Vertex AI): dedykowany processor invoice_processor wytrenowany na milionach faktur z całego świata. Polskie faktury obsługuje solidnie, dokładność 90-95 procent na dobrze zeskanowanych. Cena: około 0.08 PLN per faktura. Mój default dla średnich i dużych wolumenów.
  • Custom Document AI processor: jeśli masz specyficzny layout (konkretny dostawca, własna faktura proforma), możesz trenować custom processor. 50-100 przykładów annotated, trening 2-4 godziny. Dokładność na specyficznym layoucie podskakuje do 98 procent.
  • Tesseract plus custom parsing: open-source, za darmo, self-hosted. Dokładność raw OCR 85-90 procent, plus trzeba napisać parser pól (regex, heurystyki). Sensowne dla klientów z compliance wymagającym self-hosted albo bardzo niskim wolumenem (kilka faktur dziennie).
  • LLM vision models: Gemini Vision, GPT-4o z image input. Bardzo dobre przy skomplikowanych układach, dokładność 92-97 procent. Koszt wyższy niż Document AI, ale elastyczność większa. Używam dla korekt, zaliczek, faktur w nietypowym formacie.

Pola, które zawsze muszę wyciągnąć

Minimalny set pól dla poprawnej faktury w Polsce:

  • Dostawca: nazwa, NIP, adres. NIP używam jako klucz identyfikacyjny (weryfikacja w VIES, mapowanie na konto dostawcy w księdze).
  • Numer i data faktury: numer jest unique identifier, data wystawienia plus data sprzedaży (dla VAT). Termin płatności jeśli jest.
  • Kwoty: netto, VAT (per stawka: 0, 5, 8, 23, "np", "zw"), brutto. Trzeba wyciągnąć per stawka VAT, nie tylko sumę, bo deklaracja VAT tego wymaga.
  • Pozycje: opis, kwota netto, stawka VAT, kwota VAT. Dla mapowania na plan kont.
  • Waluta: PLN, EUR, USD. Jeśli nie PLN, dodatkowo kurs przeliczeniowy (NBP średni z dnia poprzedzającego wystawienie faktury, per polskie prawo).
  • Metoda płatności: przelew, karta, gotówka. Mechanizm podzielonej płatności (MPP) jeśli stosowany.

Plus flagi walidacyjne: czy suma pozycji zgadza się z kwotą brutto (fakturowe sprawdzenie), czy NIP waliduje się checksumą, czy faktura nie jest duplikatem (po numerze i dostawcy).

Edge case'y, których nie da się zignorować

Szczegóły, które w produkcji wychodzą:

  • Faktury korygujące: łączą się z oryginałem (różnica w pozycjach, zmiana kwoty). Automatyzacja musi rozpoznać, że to korekta (nie zwykła faktura), zlokalizować oryginalną i zaksięgować delta.
  • Zaliczki i faktury końcowe: faktura zaliczkowa (np. 30 procent z góry) i końcowa (reszta plus rozliczenie zaliczki). Każda ma inne konto, księgowanie wymaga łączenia.
  • Stawka "np" (nie podlega) albo "zw" (zwolniony): różne od 0. System księgowy musi je obsłużyć osobno w deklaracji VAT.
  • MPP (mechanizm podzielonej płatności): dla transakcji powyżej 15 000 PLN z listy towarów/usług wrażliwych. Automatyzacja powinna to flaggować do ręcznej weryfikacji.
  • Wielowalutowe faktury: faktura w EUR przeliczona na PLN według kursu NBP z dnia poprzedzającego. Mam dedykowany workflow pobierający kursy NBP i aplikujący do faktur.
  • Skany z telefonu: zdjęcie faktury papierowej, pod kątem, z palcem w kadrze. Document AI sobie radzi, Tesseract zwykle nie. Pre-processing (rotate, crop, deskew) przed OCR.

Zasada HITL dla księgowości

OCR faktur to proces, w którym pełna automatyzacja nie istnieje dla zdrowia rozsądku. Nawet przy 98 procent dokładności, 2 procent błędów na rocznym wolumenie 5000 faktur to 100 błędów w deklaracji VAT. Dla księgowości to niedopuszczalne. Dlatego każde wdrożenie kończy się kolejką akceptacji: OCR sugeruje, księgowa potwierdza albo koryguje. Oszczędność czasu to 70-85 procent.

Integracja z systemami księgowymi

Polskie systemy księgowe mają różne API:

  • Comarch Optima: eAPI (REST) dla najnowszych wersji, plus import XML dla starszych. Uwierzytelnianie przez token. Integracja stabilna, dokumentacja dostępna.
  • enova365: moduł "Serwer SOA" oferuje REST API. Wymaga konfiguracji po stronie klienta, ale kiedy działa, workflow stabilny.
  • iHurt: SOAP API (starsze) albo REST w nowych wersjach. Dobry do integracji dla firm handlowych.
  • Subiekt GT / Sfera: import CSV i własny format plików. Mniej elastyczne, ale działa dla prostych setup'ów.
  • Fakturownia: REST API jest solidne, ale to platforma bardziej dla mikrofirm niż średnich.

Dla klientów z wyjątkowymi systemami (custom ERP, branżowy soft) robię wrapper integracyjny: n8n wysyła JSON, mikroserwis konwertuje na format oczekiwany przez docelowy system. Dzięki temu workflow n8n jest stabilny mimo ewentualnych zmian w tym legacy systemie.

Najczęstsze pytania

Ile faktur miesięcznie musi być, żeby OCR miał sens ekonomiczny?

Próg opłacalności to około 100-200 faktur miesięcznie. Przy 100 fakturach miesięcznie księgowa spędza 10-20 godzin na ręcznym wprowadzaniu. Automatyzacja redukuje to do 2-5 godzin (sama akceptacja), uwalniając 8-15 godzin miesięcznie. Poniżej 100 faktur ROI rozciąga się na 18-24 miesiące, co dla wielu klientów jest za długo.

Czy OCR poradzi sobie z fakturami ręcznie pisanymi?

Częściowo. Document AI i LLM vision rozpoznają ręczne pismo drukowane (90 procent accuracy), ale pismo odręczne w rubrykach (np. kwota dopisana ręcznie do faktury pro forma) jest problematyczne. W takich przypadkach kolejka akceptacji staje się znacznie ważniejsza, a workflow oznacza takie faktury jako 'wymaga pełnej weryfikacji'.

Czy system rozpoznaje rodzaj kosztu i przypisuje konto automatycznie?

Tak, przez combo: (a) dostawca-specific rules (faktura od Orange zawsze idzie na konto telekomunikacji), (b) keyword matching w opisie pozycji (słowa 'paliwo', 'diesel' → paliwo), (c) LLM classifier dla niejasnych przypadków. Accuracy tego mappingu na poziomie 85-92 procent, reszta do weryfikacji.

Co z fakturami w innych językach (np. angielski, niemiecki)?

Document AI obsługuje wielojęzyczne faktury natywnie. Dla faktur międzynarodowych dokładam moduł walidacji NIP-u europejskiego (VIES) plus obsługę walut z automatycznym przeliczeniem po kursie NBP. Klienci z importami (np. hurtownie) mają tę funkcjonalność w standardzie.

Jak długo trwa wdrożenie OCR faktur?

Proof of concept (wąska próbka dostawców, 100 faktur historycznych, test na Document AI): 5-10 dni. Pełne wdrożenie z integracją księgową i szkoleniem księgowej: 4-8 tygodni. Czas zależy od liczby różnych layoutów dostawców i integracji z księgowością (Comarch Optima szybciej, custom ERP wolniej).

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 →