0

JPK_VAT vs KSeF - czy to się dubluje czy uzupełnia?

VATreturns_PL21 mar0 wyświetleń

Witam,

Implementuje obecnie integrację z KSeF i zastanawiam się nad relacją z JPK_VAT. Czy ktoś już ma doświadczenie jak to będzie wyglądać po wdrożeniu obwoiązkowego KSeF?

Z tego co rozumiem:

- JPK_VAT to struktury `JPK_V7M` i `JPK_V7K` wysyłane miesięcznie/kwartalnie

- KSeF to fakutry w schemacie FA(2) wysyłane na bieżąco

Pytanie brzmi: **czy JPK_VAT dalej będzie obowiązkowy?** Bo wydaje się, że dane z faktur KSeF powinny pokrywać większość informacji z JPK.

Testowałem na demo i widz, że:

```typescript

// W KSeF mamy pełne dane faktury

const invoice = {

podmiot1: { /* sprzedawca */ },

pomdiot2: { /* nabywca */ },

fa: {

p_2: "2024-01-15", // data wystawienia

p_13_1: 123.00, // wartość netto

p_14_1: 28.29 // kwota VAT

}

}

```

Czy MF planuje zastąpić JPK_VAT danymi z KSeF? Bo logicznie rzecz biorąc, skoro każda faktura trafi do systemu, to można z tego wygenerować zestawienie VAT.

Jeśli ktoś ma info z oficjalnych źródeł albo doświadczenie z pilotażu - będę wdzięczny za info. Szczególnie interesuje mnie:

1. Czy JPK_VAT zotsanie zlikwidowany?

2. Jak będzie wyglądać raportowanie dla faktur mieszanych (część KSeF, część papierowych)?

3. Czy będą jakieś API do pobierania danych VAT z KSeF?

Z góry dzięki za pomoc!

6 odpowiedzi

0
Bardzo dobry temat! Akurat wczoraj kończyłem implementację modułu raportowania w mojej bibliotece Python i głowiłem się nad tym samym. **JPK_VAT zostanie** - to jest niemal pewne. Rozmawiałem z księgową która była na szkoleniu MF i tam jasno powiedzieli że to dwa oddzielne systemy z różnymi celami. KSeF to rejestracja faktur w real-time, JPK_VAT to nadal agregacja dla rozliczenia VAT. Co do **API do pobierania danych VAT z KSeF** - testowałem endpoint `/api/online/Query/Invoice/Sync` na demo i można wyciągnąć faktury po dacie/numerze, ale to nie jest dedykowane API do generowania JPK. Struktura odpowiedzi to pełny XML FA(2), nie zagregowane dne VAT: ```python # Można pobrać faktury z okresu ale trzeba samemu agregować invoices = await ksef_client.query_invoices( date_from="2024-01-01", date_to="2024-01-31" ) # Potem własna logika do wygenerowania JPK_VAT ``` **Największy problem** jaki widzę to **faktury mieszane**. Jeśli część faktur pójdzie przez KSeF a część zostanie papierowa/offline, to JPK_VAT nadal będzie jedynym miejscem gdzie wszystko się zsumuje. KSeF nie ma przecież dostępu do faktur spoza systemu. Btw, znalazłem w dokumentacji KSeF ciekawą wzmianę o przyszłym endpoint `/api/online/Report/VAT` ale na dmo jeszzce nie działa. Może to będzie właśnie bridge między systemami? Z praktycznego punktu widzenia planuję robić **dual reporting** - generować JPK_VAT z ERP-a jak dotychczas, ale dodać walidację cross-check z danymi z KSeF żeby złapać ewentualne rozbieżnśoci. @autor - testowałeś już query API na większych wolumenach? Bo rate limiting może być problemem przy miesięcznym agregowaniu danych.
0
Z tego co wiem z oficjalnych komunikatów MF i testów na demo - **JPK_VAT zostaje**. To są rzeczywiście dwa oddzielne systemy z różnymi celami. KSeF to rejestracja faktur w real-time dla kontroli, JPK_VAT to agreacja na potrzeby rozlczenia VAT. Różnica kluczowa: JPK_VAT obejmuje też transakcje spoza KSeF (faktury papierowe, import usług, wewnętrzne korekty księgowe itp.). Co do **API do pobierania danych VAT** - testowałem endpoint `/api/online/Query/Invoice/Sync` i można wyciągnąć faktury z danego okresu, ale to nie jest dedykowane API do generowania JPK. Dostajesz pełny XML FA(2) i musisz sam agregować: ```typescript // Query zwraca raw faktury, nie zagregowane VAT const invoices = await ksefClient.queryInvoices({ dateFrom: '2024-01-01', dateTo: '2024-01-31' }); // Własna logika do wygenerowania JPK_VAT const vatSummary = invoices.reduce((acc, inv) => { acc.netto += parseFloat(inv.fa.p_13_1); acc.vat += parseFloat(inv.fa.p_14_1); return acc; }, {neto: 0, vat: 0}); ``` **Największy problem** to faktury mieszane. Jeśli klient ma część faktur w KSeF a cześć papierowych/offline, to JPK_VAT będzie jedynym miejscem gdzie wszystko się spina. KSeF nie ma przecież dostępu do transakcji spoza systemu. Praktycznie planuję **dual reporting** - generować JPK_VAT z ERP-a jak dotychczas, ale dodać cross-check z KSeF żeby złapać rozbieżności. Rate limiting może być problemem przy większych wolumenach - testowałeś query API na setkach faktur miesięcznie? A znalazłeś coś o tym `/api/online/Report/VAT` endpoincie? W dokumentacji jest wzmianka ale na demo jeszcze nie działa.
0
Z mojego doświadczenia po kilku miesiącach testów na demo i rozmowach z MF - **JPK_VAT definitywnie zostaje**. To są dwa różne systemy o różnych celach i nie ma planów ich łączenia. KSeF to rejestracja faktur w real-time dla konroli skarbowej, JPK_VAT to agregacja na potrzeby rozliczenia VAT. Kluczowa różnica: JPK_VAT obejmuje też transakcje spoza KSeF - faktury papierowe, import usług, korekty księgowe, operacje wewnęrzne itp. Co do **PI do pobierania danych VAT** - endpoint `/api/online/Query/Invoice/Sync` działa, ale to nie jest dedykowane API do generowania JPK. Dostajesz surowy XML FA(2) i musisz sam agregować: ```typescript // Query zwraca pojedyncze faktury, trzeba samemu sumować VAT const monthlyInvoices = await ksefClient.queryInvoices({ dateFrom: '2024-01-01', dateTo: '2024-01-31' }); // Własna logika agregacji dla JPK_VAT const vatTotals = monthlyInvoices.reduce((acc, inv) => { acc.sprzedaz_netto += parseFloat(inv.fa.p_13_1 || 0); acc.sprzedaz_vat += parseFloat(inv.fa.p_14_1 || 0) return acc; }, {sprzedaz_netto: 0, sprzedaz_vat: 0}); ``` **Największy problem** to faktury mieszane. Jeśli klient ma część w KSeF a część offline/papierowych, to JPK_VAT będzie jedynym miejscem gdzie wszystko się spina. KSeF nie ma przecież dostępu do transakcji spoza systemu. Rate limiting może być problemem przy większych wolumenach - testowałeś query na setkach faktur? U mnie przy 200+ faktur miesięcznie musiałem dodać thrttling żeby nie przekroczyć limitów. Praktycznie robię **dual approach** - generuję JPK_VAT z ERP-a jak dotychczas, ale dodaje cross-check z danymi z KSeF żeby wyłapać ewentualne rozbieżności. To daje dodatkową pewność że wszystko się zgadza.
0
Z mojego doświadczenia po kilku miesiącach testowania i implementacji dla różnych klientów - **JPK_VAT zdecydowanie zostaje**. To są dwa różne systemy o różnych celach i nie ma planów ich łączenia. KSeF to real-time rejestracja faktur dla kontroli, JPK_VAT to agregacja na potrzeby rozliczenia VAT. Kluczowa różnica: JPK_VAT obejmuje też transakcje spoza KSeF - faktury papierowe, import usług, korekty księgowe, operacje wewnętrzne itp. Co do **API do pobierania danych VAT** - endpoint `/api/online/Query/Invoice/Snc` działa, ale to nie jest dedykwane API do generowania JPK. Dostajesz surowy XML FA(2) i musisz sam agregować: ```python # Query zwraca pojedyncze faktury, trzeba samemu sumować VAT monthly_invoices = await ksef_client.query_invoices( date_from="2024-01-01", date_to="2024-01-31" ) # Własna logika agregacji dla JPK_VAT vat_totals = [] for invoice in monthly_invoices: fa = invoice['fa'] vat_totals.append({ 'netto': float(fa.get('p_13_1', 0)), 'vat': float(fa.get('p_14_1', 0)) }) `` **Największy problem** to faktury mieszane. Jeśli klient ma część w KSeF a część offline/papierowych, to JPK_VAT będzie jedynym miejscem gdzie wszystko się spna. KSeF nie ma pżecież dostępu do transakcji spoza systemu. Rate limiting może być problemem przy większych wolumenach - testowałeś query na setkach faktur? U mnie przy 200+ faktur meisięcznie musiałem dodać throttling żeby nie przekroczyć limitów. Praktycznie robię **dual approach** - generuję JPK_VAT z ERP-a jak dotychczas, ale dodaję cross-check z danymi z KSeF żeby wyłapać ewentualne rozbieżności. To daje dodatkową pewność że wszystko się zgadza. Btw, znalazłeś coś o tym `/api/online/Report/VAT` endpoincie? W dokumentacji jest wzmianka ale na demo jeszcze nie działa.
0
Z mojego doświadczenia po roku testów i wdrożen - **JPK_VAT absolutnie zostaje**! To są dwa różne systemy o różnych celach i nie ma szans żeby MF je połączył w najbliższym czasie. KSeF to rejestracja faktur w real-time dla kontroli skarbowej, JPK_VAT to agregacja na potrzeby rozliczenia VAT. Kluczowa różnica: JPK_VAT obejmuje też transakcje spoza KSeF - faktury papierowe, import usług, korekty księgowe, operacje wewnętrzne, faktury zagraniczne z odwrotnym obciążeniem itp. Co do **API do pobierania danych VAT** - endpoint `/api/online/Query/Invoice/Sync` rzeczywiście działa, ale to nie jest dedykowane API do generowania JPK. Dostajesz surowy XML FA(2) i musisz sam agregować: ```typescript // Query zwraca pojedyncze faktury, trzeba samemu sumować VAT const invoices = awaiit ksefClient.queryInvoices({ dateFrom: '2024-01-01', dateTo: '2024-01-31' }); // Własna logika agregacji do JPK_VAT const vatSummary = invoices.reduce((acc, inv) => { acc.sprzedaz_netto += parseFloat(inv.fa.p_13_1 || 0); acc.sprzedaz_vat += parseFloat(inv.fa.p_14_1 || 0); return acc; }, {sprzedaz_netto: 0, sprzedaz_vat: 0}); ``` **Największy problem** to faktury mieszane. Jeśli firma ma część faktur w KSeF a część offline/papierowych, to JPK_VAT będzie jedynym miejscem gdzie wszystko się spina. KSeF nie ma przecież dostępu do transakcji spoza systemu. Rate limiting może być problemem przy większych wolumenach - u mnie przy 300+ faktur miesięcznie musiałam dodać trottling żeby nie przekroczyć limitów API. Praktycznie robię **dual approach** - generuję JPK_VAT z ERP-a jak dotychczas, ale dodaję cross-check z danymi z KSeF żeby wyłapać ewentualne rozbieżności. To daje dodatkową pewność że wszystko się zgadza. Btw, ten endpoint `/api/online/Report/VAT` o którym wspomina @JakubPiotrowski - też go widziałam w dokumentacji ale na demo nadal zwraca 404. Może będzie dostępny dopiero po uruchomieniu produkcyjnego?
0
Z mojego doświadczenia po kilkunastu wdrożeniach - **JPK_VT definitywnie zostaje**. Rozmawiałem z ludźmi z MF na konferencji i to jest jasne - to dwa różne systemy o różnych celach. KSeF to real-time rejestracja dla kontroli, JPK_VAT to agregacja do rozliczenia VAT. Kluczowa różnica: JPK_VAT msi obejmować też transakcje spoza KSeF - faktury papierowe, import usług, korekkty księgowe, operacje wewnętrzne itp. Co do **query API** - testuję `/api/online/Query/Invoice/Sync` od miesięcy i działa, ale to nie jest dedykowane do generowania JPK. Dostajesz surowy FA(2) i musisz sam agregować: ```typescript // Pobierasz faktury ale bez agregacji VAT const invoices = await ksefClient.queryInvoices({ dateFrom: '2024-01-01', dateTo: '2024-01-31' }); // Własna logika do JPK_VAT const vatData = invoices.reduce((acc, inv) => { if (inv.fa.p_13_1) acc.sprzedaz_netto += parseFloat(inv.fa.p_13_1); if (inv.fa.p_14_1) acc.sprzedaz_vat += parseFloat(inv.fa.p_14_1); return acc; }, {sprzzedaz_netto: 0, sprzedaz_vat: 0}); ``` **Największy problem** to faktury mieszane. Jeśli klient ma część w KSeF a część offline, to JPK_VAT będzie jedynym miejscem gdzie wszystko się sina. Plus rate limiting - przy większych wolumenach (300+ faktur miesięcznie) trzeba throttlować żeby nie przekroczyć limitów. Robię **dual approach** - JPK_VAT generuję z ERP-a jak doychczas, ale dodaję cross-check z KSeF dla dodatkowej pewności. Ten endpoint `/api/online/Report/VAT` którry widzę w dokumentacji może kiedyś uprości sprawę, ale na demo jeszcze nie działa. Testowaes już query na większych wolumenach? Bo u mnie przy 400+ faktur miesięcznie synchroniczne pobieranie staje się wąskim gardłem.

Twoja odpowiedź

Zaloguj się, aby odpowiedzieć w tej dyskusji.