Procesy

Przyjmowanie faktur z KSeF

Przekrojowy proces obsługi faktury zakupowej z KSeF — od pobrania pliku, przez parsowanie i automatyczne dopasowanie do sekcji/zleceń, po przyjęcie do FAKTURA_TRA / FAKTURA. Diagram, kroki i reguły dopasowania.

Proces obejmuje drogę faktury zakupowej od momentu pobrania jej z KSeF do chwili, gdy staje się fakturą w EVAN (FAKTURA_TRA lub FAKTURA). Celem biznesowym jest maksymalna automatyzacja: w idealnym scenariuszu 95%+ faktur jest dopasowywanych automatycznie, a użytkownik jedynie zatwierdza przyjęcie.

Ta strona opisuje przepływ i reguły decyzyjne. Szczegóły nie są tu powielane:Zasady tego podziału: Struktura dokumentacji.

Przepływ end-to-end

flowchart TD
  classDef io fill:#eef1f5,stroke:#5b6b82,color:#16232f;
  classDef sys fill:#eaf1f9,stroke:#1f5fa6,color:#16232f;
  classDef dec fill:#fdf4e3,stroke:#9a6b12,color:#16232f;
  classDef out fill:#eef7f0,stroke:#2c7350,color:#16232f;

  A["Pobranie z KSeF<br/>KSEF_INV_FETCH"]:::io --> B["Przestrzeń robocza<br/>KSEF_XML_FILE"]:::sys
  B --> C["Parsowanie i mapowanie<br/>KSEF_KOSZYK_PKG.p_parse_xml_file"]:::sys
  C --> D{"Typ dokumentu?"}:::dec

  D -->|"Korekta"| K{"Znaleziono fakturę<br/>oryginalną?"}:::dec
  K -->|"Tak"| KS["Koszyk sekcji oryginału"]:::sys --> KF["Formularz przyjęcia korekty"]:::sys
  K -->|"Nie"| KN["Koszyk niedopasowanych"]:::sys --> KF

  D -->|"FV VAT"| V{"NIP w bazie<br/>i typ PRZEWOŹNIK?"}:::dec
  V -->|"Tak"| M["Mechanizm dopasowania<br/>FV transportowych"]:::sys
  V -->|"Nie / brak NIP"| P["Koszyk niedopasowanych"]:::sys

  D -->|"Pozostałe<br/>ZAL · ROZ · UPR"| P
  P --> U["Użytkownik wybiera formularz:<br/>transportowy / nietransportowy"]:::sys

  M --> S{"Stopień<br/>dopasowania"}:::dec
  S -->|"100%"| Z["Koszyk sekcji →<br/>Zatwierdzenie FV"]:::sys
  S -->|"X% (>0)"| X["Koszyk sekcji →<br/>Przyjęcie FV transportowej"]:::sys
  S -->|"0%"| P

  Z --> R(["FAKTURA_TRA / FAKTURA"]):::out
  X --> R
  U --> R
  KF --> R

Kroki procesu

  1. Pobranie — faktura/dokument pobierany jest asynchronicznie z KSeF i zapisywany w przestrzeni roboczej (KSEF_XML_FILE). Mechanikę opisuje Integracja KSeF › pobieranie (ASYNC).
  2. Parsowanie i mapowanie — wyodrębnienie danych i odwzorowanie na strukturę faktury (KSEF_KOSZYK_PKG.p_parse_xml_file), zasilenie koszyka (KSEF_KOSZYK).
  3. Rozpoznanie typu dokumentu — trzy ścieżki: korekta, FV VAT (w tym faktura wewnętrzna ZW i sprzedaż z VAN way) oraz pozostałe (zaliczka ZAL/ROZ/UPR).
  4. Dopasowanie do sekcji/zleceń — dla FV VAT z rozpoznanym przewoźnikiem uruchamiany jest mechanizm dopasowania. Wynik decyduje o koszyku i ekranie (zob. stopień dopasowania).
  5. Przyjęcie / zatwierdzenie — z koszyka tworzona jest właściwa faktura. Ekrany i akcje koszyka: Koszyki KSeF.
  • Zatwierdzenie (dopasowanie 100%) — nie można zatwierdzić, jeśli suma kwot dopasowanych zleceń nie równa się kwocie netto faktury.
  • Przyjęcie (dopasowanie częściowe lub ręczne) — nie można przyjąć faktury, dla której brak NIP-u sprzedawcy w bazie kontrahentów.

Mechanizm dopasowania FV transportowych

Po rozpoznaniu prawdopodobnej faktury transportowej system dopasowuje ją do zleceń danego NIP-u i wylicza stopień dopasowania jako sumę wag z weryfikacji poszczególnych pól. Wstępnie liczone są: suma netto zleceń, suma VAT, data sprzedaży (najpóźniejsza data rozładunku przy wielu zleceniach) oraz numery rachunków powiązane z NIP-em.

Weryfikowana wartośćWagaPróg błędu
Dopasowanie ≥ 1 zlecenia20%brak
Kwota netto20%1 zł
Kwota brutto20%1 zł
Waluta10%brak (musi być identyczna)
Stawka VAT10%1 zł (dot. kwot ze stawką 23%)
Data sprzedaży10%brak (daty muszą być równe)
Rachunek bankowy10%brak (brak nr na FV → 0% w tej pozycji)
Kwota podatku (faktury walutowe)0% gdy zgodna / −10% gdy niezgodnabrak

Gdy nie dopasowano żadnego zlecenia, system weryfikuje kolejno: czy istnieją niezafakturowane zlecenia dla NIP-u, a jeśli nie — czy istnieje aktywna współpraca (zlecenia z ostatnich X miesięcy, X jako parametr). W zależności od wyniku faktura trafia do koszyków odpowiednich sekcji z dopasowaniem częściowym albo do koszyka niedopasowanych.

Implementację reguł niesie pakiet KSEF_KOSZYK_PKG (m.in. f_match_orders_to_fv, p_match_simulation, f_match_fv_ksef_fv_evan_exists) — opis procedur w Koszyki KSeF › dopasowanie i parowanie. Tu utrzymujemy reguły biznesowe (wagi, progi), tam — mapę kodu.

Stopień dopasowania a ekran {#stopien-dopasowania-a-ekran}

WynikKoszykNastępny ekran (domyślny)
100%sekcjiZatwierdzenie FV transportowej (można zmienić na nietransportową)
X% (>0)sekcjiPrzyjęcie FV transportowej (można zmienić na nietransportową)
0% / brak NIPniedopasowanychUżytkownik wybiera: transportowa / nietransportowa

Korekty mają osobną ścieżkę: jeśli odnaleziono fakturę oryginalną, formularz przyjęcia korekty jest zgodny z jej rodzajem (transportowa/nietransportowa) i nie można go zmienić; bez odnalezionego oryginału korekty nie da się przyjąć.

Parowanie z fakturą „papierową"

Aby uniknąć podwójnej płatności, dla FV z KSeF bez dopasowanych zleceń system sprawdza, czy dla danego NIP-u nie przyjęto już wcześniej faktury tradycyjnej (spoza KSeF). Jeśli tak — faktury są parowane: przyjęty dokument zostaje uzupełniony danymi z KSeF (m.in. numer KSeF), traktowany dalej jak ksefowy i nie wpada ponownie do koszyków. Mechanizm jest docelowo wygaszany.

Role i uprawnienia

  • Administrator — widzi faktury wszystkich sekcji i wszystkie niedopasowane; akcje: przenieś / zasugeruj do sekcji, przypisz do mojej sekcji, przyjmij, ponów dopasowanie, przenieś do zbioru ogólnego.
  • Użytkownik EVAN — widzi faktury swoich sekcji i wszystkie niedopasowane; akcje bez przenieś/zasugeruj do dowolnej sekcji.

Pełna lista akcji koszyka i ich uprawnień (INV_*): Koszyki KSeF › akcje.

Co opisuje ta strona, a czego nie

  • Opisuje: kolejność kroków, ścieżki wg typu dokumentu, reguły i wagi dopasowania, mapowanie wyniku na ekran, parowanie, role.
  • Nie opisuje (linkuje): pól i kolumn ekranów, listy procedur pakietu, protokołu pobierania/szyfrowania, modelu tabel KSeF.

Powiązania i źródła

Copyright © 2026