KSeF - odbieranie faktur zakupu
Pobieranie faktur zakupowych z Krajowego Systemu e-Faktur - polling, parsowanie FA(3), auto-reconciliation z ręcznie przesłanymi dokumentami.
Od kiedy KSeF jest obowiązkowy, faktura zakupu nie trafia do spółki przez e-mail - dostawca wystawia fakturę w KSeF, a odbiorca samodzielnie pobiera ją z systemu. Zmienia to proces akceptacji i księgowania - spółka musi aktywnie sprawdzać, czy nie ma nowych faktur zakupowych.
Informacje mają charakter edukacyjny
Dokumentacja nie zastępuje porady doradcy podatkowego ani biegłego rewidenta. W sprawach szczegółowych skontaktuj się ze specjalistą. Jak weryfikujemy dokumentację ↗
Model doręczenia
Dostawca → [XML FA(3)] → KSeF → ⏸️ oczekuje na odbiór
↓
[odbiorca pobiera z KSeF]
↓
[księgowanie w systemie odbiorcy]Data otrzymania faktury = data przyjęcia przez KSeF (tj. data wystawienia przez dostawcę). Nie zależy od momentu, w którym odbiorca fizycznie pobierze fakturę - odliczenie VAT liczy się od dnia wystawienia (Ustawa o VAT, art. 86).
Oznacza to, że odbiorca powinien regularnie sprawdzać nowe faktury
- zaniedbanie nie przesuwa terminu.
Dostęp do faktur zakupu
Odbiorca ma trzy sposoby pobierania faktur zakupu:
1. Interfejs WWW ksef.mf.gov.pl
Dostępny dla każdego uprawnionego użytkownika (zarząd, prokurent, pełnomocnik). Pozwala ręcznie przeglądać, filtrować i pobierać faktury. Dobre dla spółek z małą liczbą faktur miesięcznie.
2. System księgowy z integracją (rekomendowane)
System księgowy pobiera faktury przez API KSeF automatycznie - np. co 15 minut. Nowe faktury trafiają do kolejki "do akceptacji", gdzie użytkownik może je przejrzeć i zaksięgować.
Numify działa w tym modelu:
ksef-service.ts
zawiera metodę syncReceivedInvoices(), wywoływaną przez endpoint
POST /api/ksef/sync. Szczegóły UI — zobacz sekcję „Częstotliwość
synchronizacji” poniżej.
3. Pobranie zbiorcze
API KSeF pozwala pobrać zestaw faktur za wybrany okres jako ZIP z plikami XML. Przydatne do migracji danych lub audytu.
Flow auto-reconciliation w Numify
Kiedy Numify pobierze nową fakturę z KSeF:
-
Parsowanie FA(3) - XML jest parsowany do struktur wewnętrznych: ksef-fa3-parser.ts. Wyodrębniane są: dostawca (NIP + nazwa), numer faktury, daty, pozycje, kwoty netto / VAT / brutto, ewentualne GTU / MPP.
-
Weryfikacja kontrahenta - NIP sprawdzany przeciwko rejestrowi kontrahentów. Jeśli kontrahent istnieje - link. Jeśli nie - nowy rekord z danymi z FA(3).
-
Auto-reconciliation z ręcznie przesłanym dokumentem - jeśli użytkownik wcześniej wgrał PDF tej samej faktury (zanim KSeF ją zsynchronizował), Numify łączy oba rekordy. Kryteria matchowania:
- NIP dostawcy.
- Numer faktury.
- Data wystawienia (tolerancja ±3 dni).
- Kwota brutto (tolerancja ±1 grosz).
-
Proponowana dekretacja - AI proponuje kategorię kosztu i konta księgowe. Użytkownik akceptuje lub koryguje.
-
Księgowanie - po akceptacji tworzone są:
- Wpis w dzienniku (DR koszt / DR 221 VAT naliczony / CR 202 Rozrachunki).
- Wpis w rejestrze VAT zakupu z polem
NrKSeF.
Specyfika reverse charge (import usług)
Kiedy otrzymujemy fakturę od kontrahenta zagranicznego (poza KSeF), zastosowanie mają zasady odwrotnego obciążenia (Ustawa o VAT, art. 28b). Ta faktura nie jest w KSeF - dostawca zagraniczny nie ma do niego dostępu.
Numify detektuje takie faktury po:
- Braku polskiego NIP dostawcy.
- Kraju dostawcy ≠ Polska.
I tworzy dwa wpisy w rejestrze VAT: output VAT (należny, K_29/K_30) i input VAT (naliczony, K_42/K_43) - z tą samą kwotą, zerujące się nawzajem w JPK_V7M.
Częstotliwość synchronizacji
W bieżącej wersji synchronizacja jest manualna — uruchamiana ze
strony KSeF w aplikacji (/ksef). Użytkownik wybiera zakres dat
(domyślnie ostatnie 30 dni) i klika przycisk synchronizacji —
endpoint POST /api/ksef/sync wywołuje syncReceivedInvoices(),
która pobiera faktury zakupowe z KSeF API i zapisuje je lokalnie
ze statusem PENDING.
Docelowo planowane jest cykliczne zadanie w tle (BullMQ) — np. co 15 minut w godzinach 6:00–22:00 oraz co godzinę w nocy. Do tego czasu odpowiedzialność za regularne uruchamianie synchronizacji spoczywa na użytkowniku.
Akceptacja i księgowanie
Każda pobrana faktura KSeF trafia jako dokument do kolejki
parsowania (status pending, potem processing, końcowo completed).
Nie jest automatycznie księgowana — użytkownik musi ją zaakceptować
przed utworzeniem transakcji i wpisów księgowych:
- Akceptuj — tworzy transakcję, wpisy w dzienniku i rejestrze VAT.
- Odrzuć — oznacza dokument jako nieistotny (np. wysłany omyłkowo).
- Koryguj kontrahenta / kategorię — poprawa propozycji AI przed zaksięgowaniem (dekretacja).
Zaksięgowana faktura jest widoczna w rejestrze VAT oraz w JPK_V7M za odpowiedni okres.
Nie ma automatycznej akceptacji bez interakcji człowieka - zgodnie z zasadą human-in-the-loop (zob. Akceptacja ludzka - docelowo w Phase 5).
Historia zmian podstawy prawnej
- Phase 2
Pierwsza wersja - zagregowana z
_legacy/KSEF-REFERENCE.mdoraz implementacjiksef-service.tsiksef-fa3-parser.tsw Numify.
KSeF — wystawianie faktur
Tryby wystawiania faktur przez Krajowy System e-Faktur — online real-time, Offline24, wyjątki z obowiązku KSeF.
Kody QR na fakturach KSeF
Obowiązek umieszczenia kodu QR KSeF na wizualizacjach PDF faktury — format URL weryfikacji, biblioteka generowania, weryfikacja po stronie odbiorcy.