JPK_ST_KR — ewidencja środków trwałych
Struktura XML z ewidencji środków trwałych i wartości niematerialnych — składana łącznie z JPK_KR_PD przez podatników CIT. Rozporządzenie MF z 16.08.2024 (Dz.U. 2024 poz. 1314), pola KŚT, metoda amortyzacji, amortyzacja narastająca na BO/BZ, status środka (używany / zlikwidowany / w pełni zamortyzowany).
JPK_ST_KR (Jednolity Plik Kontrolny — Środki Trwałe, Księgi Rachunkowe) to druga struktura wprowadzona tym samym rozporządzeniem co JPK_KR_PD. Zawiera ewidencję środków trwałych jednostki — wartości początkowe, naliczoną amortyzację, statusy środków.
Składany łącznie z JPK_KR_PD — w tym samym terminie (art. 9 ust. 1c CIT), przez tę samą bramkę MF, za ten sam rok podatkowy.
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ę ↗
Podstawa prawna
Obowiązek wynika z Ustawa o CIT, art. 9 ust. 1c i Rozporządzenia MF z 16 sierpnia 2024 r. (Dz.U. 2024 poz. 1314) — zob. JPK_KR_PD dla kalendarza wdrożenia. Rozporządzenie definiuje dwie struktury w jednym akcie prawnym — JPK_KR_PD (księgi) i JPK_ST_KR (środki trwałe).
Aktualny namespace schemy: http://jpk.mf.gov.pl/wzor/2024/08/16/08162/.
Zakres — które środki trafiają do JPK_ST_KR
JPK_ST_KR obejmuje środki trwałe oraz wartości niematerialne i prawne, które:
- Zostały przyjęte do używania przed końcem roku podatkowego
(
acquisition_date ≤ 31.12). - Nie zostały zlikwidowane/sprzedane przed początkiem roku
podatkowego (
disposal_date ≥ 01.01lub brak).
Konsekwencje:
- Środek nabyty w grudniu danego roku — trafia do JPK za ten rok, nawet jeśli amortyzacja dopiero się rozpocznie.
- Środek sprzedany w styczniu — trafia do JPK za ten rok (był w użyciu przez część roku).
- Środek sprzedany w grudniu roku poprzedniego — nie trafia do JPK_ST_KR tego roku.
Struktura pliku
Nagłówek i podmiot
Analogicznie do JPK_KR_PD:
<Naglowek>—KodFormularza = "JPK_ST_KR (1)",CelZlozenia, datyDataOd/DataDo, kod urzędu, system źródłowy.<Podmiot>— NIP, REGON, nazwa, email.
Element <SrodekTrwaly> — powtarzany dla każdego środka
| Pole XML | Źródło w Numify | Obowiązkowość |
|---|---|---|
<LpST> | kolejny numer od 1 | tak |
<NrInwentarzowy> | fixed_assets.inventoryNumber | warunkowo (jeżeli ustawiony) |
<NazwaST> | fixed_assets.name | tak |
<KodKST> | fixed_assets.classificationCode | warunkowo (kod klasyfikacji) |
<DataPrzyjST> | fixed_assets.acquisitionDate | tak |
<WartoscPoczatkowa> | fixed_assets.acquisitionValue | tak |
<Ulepszenia> | fixed_assets.improvementValue (jeśli > 0) | warunkowo |
<MetodaAmortyzacji> | linear → „liniowa"; degressive → „degresywna"; one_time → „jednorazowa" | tak |
<StawkaAmortyzacji> | fixed_assets.depreciationRate (np. 20) | tak |
<AmortyzacjaNarastajacoPoczatek> | accumulatedDepreciation − yearDepreciation | tak |
<AmortyzacjaOkres> | Suma depreciation_entries.amount w roku | tak |
<AmortyzacjaNarastajaco> | fixed_assets.accumulatedDepreciation (na koniec roku) | tak |
<WartoscNetto> | fixed_assets.netBookValue | tak |
<DataLikwidacji> | fixed_assets.disposalDate (jeśli status disposed) | warunkowo |
<WartoscLikwidacji> | fixed_assets.disposalValue | warunkowo |
<StatusST> | active → „używany"; disposed → „zlikwidowany"; fully_depreciated → „w pełni zamortyzowany" | tak |
Blok kontrolny <SrodekTrwalyCtrl>
<LiczbaWierszyST>— liczba środków w pliku.<SumaWartosciPoczatkowych>— suma wartości początkowych (z ulepszeniami).<SumaAmortyzacjiOkres>— suma amortyzacji za okres.
Implementacja w Numify
generateJpkStKrXml korzysta z rejestru środków trwałych (fixed-assets.ts):
- Pobiera środki z
fixed_assetsfirmy, filtruje przez warunek „aktywne w roku" (opis powyżej). - Dla każdego środka pobiera zapisy amortyzacji z
depreciation_entriesza ten rok. - Wylicza amortyzację narastającą na początek roku
(
accumulatedDepreciation − yearDepreciation) i na koniec roku (accumulatedDepreciation). - Składa XML zgodnie ze schemą i zwraca jako string.
Metody amortyzacji w Numify
Enum depreciation_method (fixed-assets.ts):
| Wartość | Mapowanie w JPK | Opis | Podstawa prawna |
|---|---|---|---|
linear | „liniowa" | Stała roczna stawka (kwota/12 miesięcznie) | Ustawa o CIT, art. 16i |
degressive | „degresywna" | NBV × stawka × współczynnik 2,0; przełączenie na liniową gdy staje się niższa | Ustawa o CIT, art. 16k ust. 1 |
one_time | „jednorazowa" | Jednorazowy odpis; typowo ŚT < 10 000 zł | Ustawa o CIT, art. 16k ust. 7 |
Funkcja calculateMonthlyDepreciation realizuje arytmetykę:
- Liniowa:
annual = round(totalValue × rate / 100), miesięczna =round(annual / 12). - Degresywna:
NBV × rate × 2,0 / 12; automatyczny fallback na liniową w momencie, gdy miesięczna degresywna spadnie poniżej miesięcznej liniowej (zgodnie z art. 16k ust. 1 zdanie 2 — „Począwszy od roku podatkowego, w którym tak określona roczna kwota amortyzacji miałaby być niższa od rocznej kwoty amortyzacji obliczonej przy zastosowaniu metody określonej w art. 16i ust. 1, podatnicy dokonują dalszych odpisów amortyzacyjnych zgodnie z art. 16i"). - Jednorazowa:
remaining(pełna wartość netto) w jednym wpisie.
Generowanie miesięcznych odpisów
generateMonthlyDepreciation
tworzy wpisy depreciation_entries za dany rok i miesiąc — dla
wszystkich aktywnych środków firmy. Wymaga otwartego okresu
(ensurePeriodOpen).
Odpisy amortyzacyjne są automatycznie księgowane na konta:
| Debetowy (Wn) | Kredytowy (Ma) |
|---|---|
| 400 — Amortyzacja | 070 — Umorzenie środków trwałych |
(mapowanie z seed-accounts.ts, kategoria depreciation w DEFAULT_CATEGORY_MAPPINGS).
Kod KŚT — klasyfikacja środków trwałych
Pole <KodKST> to kod z Klasyfikacji Środków Trwałych (KŚT)
wydanej przez GUS (obecnie KŚT 2016, Dz.U. 2016 poz. 1864). Grupy:
| Grupa | Zakres |
|---|---|
| 0 | Grunty |
| 1 | Budynki i lokale, spółdzielcze własnościowe prawo do lokalu |
| 2 | Obiekty inżynierii lądowej i wodnej |
| 3 | Kotły i maszyny energetyczne |
| 4 | Maszyny, urządzenia i aparaty ogólnego zastosowania |
| 5 | Maszyny, urządzenia i aparaty specjalistyczne |
| 6 | Urządzenia techniczne |
| 7 | Środki transportu |
| 8 | Narzędzia, przyrządy, ruchomości i wyposażenie |
| 9 | Inwentarz żywy |
Typowa sp. z o.o. (usługowa) będzie miała głównie środki z grupy 4 (komputery, peryferia), 6 (telefony, biurowe), 7 (samochody), 8 (meble). Stawki amortyzacyjne z Wykazu (zał. 1 do CIT) opierają się na kodzie KŚT — prawidłowa klasyfikacja to warunek prawidłowej amortyzacji.
Numify nie waliduje kodu KŚT — użytkownik wprowadza go ręcznie przy zakładaniu karty środka.
Status środka
Enum fixed_asset_status:
| Wartość | JPK | Znaczenie |
|---|---|---|
active | „używany" | W użyciu, amortyzowany |
disposed | „zlikwidowany" | Sprzedany / zutylizowany |
fully_depreciated | „w pełni zamortyzowany" | NBV = 0, ale jeszcze w użyciu |
Status zmienia się:
- Ręcznie — przez disposeFixedAsset (likwidacja/sprzedaż).
- Automatycznie — gdy zakumulowana amortyzacja = wartość początkowa
(funkcja aktualizuje
netBookValue = 0istatus = fully_depreciated).
Walidacja i złożenie
Analogicznie do JPK_KR_PD:
generateJpkStKrXml({ companyId, fiscalYear, purpose: 1, email }).- Zapis do pliku lokalnego.
- Walidacja offline przeciwko XSD z rozporządzenia.
- Podpis elektroniczny (ePUAP, kwalifikowany, podpis osobisty).
- Przesłanie przez bramkę MF łącznie z JPK_KR_PD za ten sam rok.
Wymagane dane firmy (te same co JPK_KR_PD):
companies.taxId(NIP).companies.taxOfficeCode— 4-cyfrowy kod US.- Email przekazywany jako parametr.
Ograniczenia generatora
- Brak integracji z KSeF / bramką MF — plik trzeba przesłać zewnętrznym narzędziem.
- Brak automatycznej aktualizacji kodów KŚT — jeżeli GUS opublikuje nową wersję KŚT, kody trzeba zaktualizować ręcznie w ewidencji.
- Brak wsparcia dla WNiP jako osobnej kartoteki — Numify
traktuje WNiP jak jedną z kategorii
fixed_assets, ale rozporządzenie przewiduje odrębne struktury. W praktyce dla typowej sp. z o.o. (niewiele WNiP) nie jest to blocker. - Brak walidacji XSD po stronie generatora.
Typowe błędy
- Pominięcie środków zlikwidowanych w trakcie roku. Środek sprzedany w sierpniu trzeba uwzględnić w JPK — z datą likwidacji i wartością likwidacyjną. Generator Numify robi to poprawnie.
- Błędne
DataPrzyjST— data nabycia ≠ data przyjęcia do używania. Rozporządzenie wymaga daty przyjęcia do używania, która może różnić się od daty zakupu. Wfixed_assetsNumify mamy dwa pola:acquisitionDate(domyślnie użyte w XML) idepreciationStartDate(data rozpoczęcia amortyzacji). W razie różnicy użytkownik powinien rozważyć, które pole odpowiada definicji rozporządzenia. - Brak ulepszeń w sumie wartości początkowej.
totalAcquisitionValuew generatorze liczyacquisitionValue + improvementValue— to zgodne z rozporządzeniem, ale ulepszenia muszą być ujęte jako podwyższenie wartości początkowej (art. 16g ust. 13), nie jako bieżący KUP. - Stosowanie metody degresywnej dla samochodu osobowego. Ustawa o CIT, art. 16k ust. 1 wyklucza samochody osobowe z degresywnej — dopuszcza się ją tylko dla grup 3–6 i 8 Klasyfikacji oraz środków transportu z wyjątkiem samochodów osobowych.
Powiązane sekcje
- JPK_KR_PD — struktura ksiąg rachunkowych składana łącznie.
- CIT-8 — JPK_ST_KR składany w terminie CIT-8.
- KUP / NKUP — limity amortyzacji samochodów osobowych (art. 16 ust. 1 pkt 4: 225 / 150 / 100 tys. zł).
Historia zmian podstawy prawnej
- Phase 3c
Pierwsza wersja — oparta na Rozporządzeniu MF z 16.08.2024 (Dz.U. 2024 poz. 1314). Nowelizacja Dz.U. 2025 poz. 1828 (wejście 1.01.2026 r.) — treść w planie weryfikacji w I poł. 2026 r.
JPK_KR_PD — księgi rachunkowe w strukturze JPK
Obowiązkowe przekazywanie ksiąg rachunkowych w strukturze JPK wraz z znacznikami podatkowymi — art. 9 ust. 1c ustawy o CIT, Rozp. MF z 16.08.2024 (Dz.U. 2024 poz. 1314) znowelizowane Dz.U. 2025 poz. 1828. Pierwsza deklaracja za FY 2026 dla typowej sp. z o.o., struktura JPK_KR_PD(1), znaczniki `KodZapisuKR` i `OpisZapisuKR`.
Sprawozdanie finansowe — przegląd
Mapa obowiązków sp. z o.o. dotyczących rocznego sprawozdania finansowego — struktura SF, kaskada terminów sporządzenia/zatwierdzenia/złożenia w KRS, podział na jednostki mikro / małe / średnie / duże.