Fakturownia
System automatyzacji fakturowania decyzji, paczek przelewów zwrotnych do Erste Bank Polska oraz rozliczania płatności z wyciągów bankowych — dla czterech spółek, w jednym panelu.
Cena8 000 zł netto
Termin realizacji30 dni
Gwarancja3 miesiące
01Co analizowaliśmy
Przeanalizowaliśmy dokument „Zautomatyzowanie fakturowania” wraz z załącznikami. Opisuje on trzy procesy, które dziś wykonywane są ręcznie i niosą ryzyko pomyłek przy przepisywaniu danych:
A. Fakturowanie decyzji
Dziesiątki decyzji miesięcznie przychodzą pocztą; trzeba je przypisać do klienta, policzyć prowizję, wystawić fakturę w Faktura XL, wysłać do KSeF i do klienta.
B. Paczki przelewów zwrotnych
Dane przelewów zwrotnych są dziś przepisywane z wiadomości e-mail do bankowości Erste — z czterech spółek, z odrębnych rachunków.
C. Rozliczanie płatności
Wyciągi z 8 rachunków (4 PLN, 4 EUR) trzeba dopasować do faktur czterech spółek, mimo błędnych numerów, wpłat zbiorczych i pomyłek rachunku.
Wspólna zasada
Nic nie wychodzi z systemu bez akceptacji człowieka: ani faktura do KSeF, ani e-mail do klienta, ani przelew. System przygotowuje, człowiek zatwierdza.
02Zakres rozwiązania
Moduł A — fakturowanie decyzji
PocztaDecyzjaAnaliza dokumentuKalkulacja prowizjiDane do fakturyWeryfikacjaFaktura XLKontrola fakturyKSeF (ręcznie)Pobranie fakturyE-mailAkceptacjaWysyłkaRaport
- Pobieranie z poczty — automatyczne pobieranie załączników (IMAP), rozpoznanie decyzji polskiej i macierzystej, przypisanie do klienta.
- Analiza dokumentów — odczyt kluczowych danych (klient, kraj, okres, kwota zwrotu, numer decyzji), sprawdzenie kompletności; decyzja z pomniejszonym zwrotem trafia do statusu „wymaga wyjaśnienia” i nie jest fakturowana.
- Kalkulator prowizji — według przyjętych zasad (procent, minimum, stawki per kraj lub klient), z możliwością ręcznej korekty z obowiązkowym uzasadnieniem.
- Panel statusów: do analizy · do weryfikacji · gotowe do faktury · faktura utworzona · do wysyłki do KSeF · wysłane do KSeF · do wysyłki e-mail · zakończone · wymaga wyjaśnienia.
- Faktura XL — utworzenie faktury przez API bez automatycznej wysyłki do KSeF; wysyłka do KSeF uruchamiana ręcznie po kontroli; automatyczne pobranie gotowej faktury i powiązanie jej z decyzją.
- E-mail do klienta — przygotowana treść z załączoną fakturą i decyzją; wysyłka dopiero po zatwierdzeniu.
- Raport — wystawione faktury, wysłane dokumenty, sprawy wymagające interwencji, błędy i wyjątki.
Moduł B — paczki przelewów do Erste Bank Polska
- Import danych rozliczeń (wpłata z urzędu, kompensata, opłacone zobowiązania), automatyczne wyliczenie kwoty zwrotu.
- Kompletne dane przelewu: odbiorca, rachunek (z walidacją sumy kontrolnej IBAN), kwota, tytuł.
- Rozpoznanie spółki i rachunku źródłowego, osobna paczka dla każdej z czterech spółek (tylko dla tych, które mają płatności).
- Plik w formacie importu bankowości Erste Bank Polska (Elixir-O lub XML ISO 20022 — według specyfikacji banku ustalonej w fazie analizy). Autoryzacja przelewów pozostaje w banku.
Moduł C — automatyczne rozliczanie płatności
- Import wyciągów z 8 rachunków (MT940, CSV lub camt.053), rozpoznanie spółki po rachunku.
- Dopasowanie po numerze faktury w dowolnym zapisie (18/08/2026, 18/08, 18.08.2026, 18…), kwocie, kontrahencie i rachunku nadawcy.
- Jednoznaczne dopasowania oznaczane jako opłacone w Faktura XL (lub plik wyciągu do sekcji właściwej spółki); wątpliwe — do ręcznej weryfikacji z podaną przyczyną: zły numer, faktura już opłacona, wpłata zbiorcza bez numerów, wpłata z rachunku innej firmy klienta, wpłata na rachunek niewłaściwej spółki (do zwrotu).
- Historia wszystkich płatności i raport dzienny w dwóch sekcjach: rozliczone automatycznie / do ręcznej weryfikacji z uzasadnieniem.
03Technologie i uzasadnienie
| Warstwa | Technologia | Dlaczego |
| Backend i integracje | Python 3.12, FastAPI, Pydantic | Najlepsze biblioteki do odczytu PDF i skanów (pdfplumber, Tesseract OCR), formatów bankowych (MT940, camt) i poczty. Pydantic ściśle waliduje każde pole — kwoty i numery rachunków nie przejdą w złym formacie. |
| Baza danych | PostgreSQL 16 | Transakcje ACID i ograniczenia na poziomie bazy — dane finansowe nie mogą być zapisane w połowie. Kwoty w typie NUMERIC (bez błędów zaokrągleń), unikalne klucze chronią przed podwójnym przetworzeniem tego samego e-maila lub linii wyciągu. |
| Kolejka zadań | Kolejka na PostgreSQL (procrastinate) | Pobieranie poczty, wyciągów i faktur działa w tle z ponawianiem po awarii — bez dodatkowego serwera (mniej elementów = mniej awarii). |
| Panel | TypeScript, React | Typowanie wyłapuje błędy przed wdrożeniem; szybki, czytelny panel ze statusami — jak w prototypie. |
| Odczyt dokumentów | Reguły + OCR, opcjonalnie model AI w UE | Każde pole odczytane automatycznie jest sprawdzane regułami (sumy, daty, zgodność z decyzją) i widoczne do weryfikacji — system nie zgaduje. |
| Wdrożenie | Docker, serwer w UE | Powtarzalne środowisko testowe i produkcyjne; dane w Unii Europejskiej (RODO). Możliwe wdrożenie na infrastrukturze klienta. |
04Bezpieczeństwo i stabilność
System obsługuje faktury, rachunki bankowe i dane klientów, więc bezpieczeństwo projektujemy od pierwszego dnia, a nie dodajemy na końcu.
Kontrola nad pieniędzmi
- Zero automatycznych wysyłek: KSeF, e-mail i przelewy wymagają zatwierdzenia przez uprawnioną osobę.
- System nie ma dostępu do bankowości — generuje tylko plik; autoryzacja w Erste z Waszym 2FA.
- Ochrona przed oszustwem „zmiany rachunku”: nowy lub inny niż zapisany numer rachunku klienta blokuje przelew do czasu zatwierdzenia przez drugą osobę.
- Walidacja IBAN i limitów kwot przed wygenerowaniem paczki.
Dostęp do systemu
- Logowanie z dwuetapową weryfikacją (TOTP), hasła Argon2id, blokada po nieudanych próbach.
- Role: operator, księgowość, administrator — każdy widzi i robi tylko to, co musi.
- Tylko HTTPS (TLS 1.3, HSTS); opcjonalnie dostęp wyłącznie z Waszych adresów IP lub przez VPN.
- Serwer: zapora (tylko port 443), logowanie administratora wyłącznie kluczem, fail2ban, aktualizacje bezpieczeństwa.
Ochrona przed atakami
- Zabezpieczenia OWASP Top 10: zapytania parametryzowane (brak SQL injection), tokeny CSRF, nagłówki CSP, ograniczenie liczby zapytań.
- Załączniki z poczty traktowane jako niezaufane: sprawdzanie typu po zawartości, limit rozmiaru, skan antywirusowy (ClamAV), odczyt w izolowanym kontenerze bez dostępu do sieci.
- Hasła do poczty i klucze API zaszyfrowane, poza kodem; skrzynka z osobnym hasłem aplikacji i minimalnymi uprawnieniami.
- Skan zależności i obrazów (pip-audit, npm audit, Trivy) oraz test bezpieczeństwa OWASP ZAP przed odbiorem.
Stabilność i odtwarzalność
- Idempotentność: każdy e-mail, decyzja i linia wyciągu przetwarzane dokładnie raz.
- Ponawianie przy chwilowej niedostępności poczty lub Faktura XL; błąd nie zatrzymuje reszty spraw.
- Niezmienny dziennik zdarzeń: kto, co i kiedy zatwierdził.
- Codzienne szyfrowane kopie zapasowe poza serwerem z testowym odtworzeniem; monitoring i alerty o błędach.
05Harmonogram — 30 dni
| Faza | Dni | Rezultat |
1. Analiza i dostęp Przykładowe decyzje, zasady prowizji, wzór pliku Erste, wyciągi, dostęp do API Faktura XL i poczty | 1–3 | Specyfikacja, reguły prowizji i dopasowań zatwierdzone przez klienta |
| 2. Moduł A — poczta, analiza, kalkulator, panel | 4–11 | Decyzje pobierane z poczty, statusy, prowizja; testy na rzeczywistych decyzjach z ostatnich miesięcy |
| 3. Moduł A — Faktura XL, KSeF, e-mail, raport | 12–17 | Pełny przepływ do wysyłki; testy integracyjne na koncie testowym Faktura XL. Odbiór cząstkowy modułu A |
| 4. Moduł B — paczki przelewów Erste | 18–21 | Cztery paczki; test importu w bankowości Erste (bez autoryzacji). Odbiór cząstkowy |
| 5. Moduł C — rozliczanie płatności | 22–25 | Dopasowanie wyciągów z 8 rachunków, raport dzienny; testy na wyciągach historycznych |
| 6. Testy końcowe i bezpieczeństwa | 26–27 | Testy end-to-end, test OWASP ZAP, test odtworzenia kopii, poprawki |
| 7. Testy akceptacyjne klienta i wdrożenie | 28–30 | Testy akceptacyjne (UAT) na Waszych danych, wdrożenie produkcyjne, szkolenie, dokumentacja. Protokół odbioru |
Po każdej fazie klient otrzymuje dostęp do środowiska testowego i krótką listę rzeczy do sprawdzenia. Uwagi zgłoszone w trakcie fazy wchodzą do tej samej fazy.
06Warunki
| Cena | 8 000 zł netto + VAT 23% |
| Płatność | 40% po podpisaniu umowy, 60% po protokole odbioru |
| Gwarancja | 3 miesiące — bezpłatne usuwanie błędów |
| Prawa autorskie | Przeniesienie praw do kodu po zapłacie; kod w repozytorium klienta |
| Poza ceną | Hosting (ok. 60–150 zł/mies.), opcjonalny model AI do odczytu skanów (wg zużycia), opieka po gwarancji — wg odrębnej wyceny |
Założenia: Faktura XL udostępnia API do tworzenia i pobierania faktur oraz oznaczania płatności; Erste Bank Polska przekaże specyfikację formatu importu; klient dostarczy po 10–20 przykładowych decyzji i wyciągów oraz zasady naliczania prowizji. Jeśli API Faktura XL nie obsługuje którejś operacji, zastąpimy ją importem pliku w tej samej cenie.