Przyjmowanie faktur z KSeF
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.
- protokół i mechanika techniczna (pakiety, tabele, kryptografia, pobieranie) → Integracja KSeF;
- ekrany koszyków (pola, kolumny, akcje) → Fakturowanie › Koszyki KSeF;
- przyjmowanie od strony aplikacji f1700 (samofakturowanie, podpisywanie) → Faktury › KSeF w module.
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
- Pobranie — faktura/dokument pobierany jest asynchronicznie z KSeF i zapisywany w przestrzeni roboczej (
KSEF_XML_FILE). Mechanikę opisuje Integracja KSeF › pobieranie (ASYNC). - Parsowanie i mapowanie — wyodrębnienie danych i odwzorowanie na strukturę faktury (
KSEF_KOSZYK_PKG.p_parse_xml_file), zasilenie koszyka (KSEF_KOSZYK). - 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). - Dopasowanie do sekcji/zleceń — dla FV VAT z rozpoznanym przewoźnikiem uruchamiany jest mechanizm dopasowania. Wynik decyduje o koszyku i ekranie (zob. stopień dopasowania).
- 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ść | Waga | Próg błędu |
|---|---|---|
| Dopasowanie ≥ 1 zlecenia | 20% | brak |
| Kwota netto | 20% | 1 zł |
| Kwota brutto | 20% | 1 zł |
| Waluta | 10% | brak (musi być identyczna) |
| Stawka VAT | 10% | 1 zł (dot. kwot ze stawką 23%) |
| Data sprzedaży | 10% | brak (daty muszą być równe) |
| Rachunek bankowy | 10% | brak (brak nr na FV → 0% w tej pozycji) |
| Kwota podatku (faktury walutowe) | 0% gdy zgodna / −10% gdy niezgodna | brak |
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.
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}
| Wynik | Koszyk | Następny ekran (domyślny) |
|---|---|---|
| 100% | sekcji | Zatwierdzenie FV transportowej (można zmienić na nietransportową) |
| X% (>0) | sekcji | Przyjęcie FV transportowej (można zmienić na nietransportową) |
| 0% / brak NIP | niedopasowanych | Uż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
- Integracja KSeF · Koszyki KSeF · Faktury › KSeF w module
- Źródło biznesowe (Confluence): „KSeF – Diagramy procesów dla obsługi przyjęcia fv zakupowych" oraz „KSeF – ekran »Faktury KSeF« (koszyki)", przestrzeń VAN Cargo APEX. Epic
APEX-1492.