NumifyAI
Zgodność z prawemUstawa o CIT
Zweryfikowane wewnętrznie

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.01 lub brak).

Konsekwencje:

  1. Środek nabyty w grudniu danego roku — trafia do JPK za ten rok, nawet jeśli amortyzacja dopiero się rozpocznie.
  2. Środek sprzedany w styczniu — trafia do JPK za ten rok (był w użyciu przez część roku).
  3. Ś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, daty DataOd/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 NumifyObowiązkowość
<LpST>kolejny numer od 1tak
<NrInwentarzowy>fixed_assets.inventoryNumberwarunkowo (jeżeli ustawiony)
<NazwaST>fixed_assets.nametak
<KodKST>fixed_assets.classificationCodewarunkowo (kod klasyfikacji)
<DataPrzyjST>fixed_assets.acquisitionDatetak
<WartoscPoczatkowa>fixed_assets.acquisitionValuetak
<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 − yearDepreciationtak
<AmortyzacjaOkres>Suma depreciation_entries.amount w rokutak
<AmortyzacjaNarastajaco>fixed_assets.accumulatedDepreciation (na koniec roku)tak
<WartoscNetto>fixed_assets.netBookValuetak
<DataLikwidacji>fixed_assets.disposalDate (jeśli status disposed)warunkowo
<WartoscLikwidacji>fixed_assets.disposalValuewarunkowo
<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):

  1. Pobiera środki z fixed_assets firmy, filtruje przez warunek „aktywne w roku" (opis powyżej).
  2. Dla każdego środka pobiera zapisy amortyzacji z depreciation_entries za ten rok.
  3. Wylicza amortyzację narastającą na początek roku (accumulatedDepreciation − yearDepreciation) i na koniec roku (accumulatedDepreciation).
  4. Składa XML zgodnie ze schemą i zwraca jako string.

Metody amortyzacji w Numify

Enum depreciation_method (fixed-assets.ts):

WartośćMapowanie w JPKOpisPodstawa 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ższaUstawa 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:

(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:

GrupaZakres
0Grunty
1Budynki i lokale, spółdzielcze własnościowe prawo do lokalu
2Obiekty inżynierii lądowej i wodnej
3Kotły i maszyny energetyczne
4Maszyny, urządzenia i aparaty ogólnego zastosowania
5Maszyny, urządzenia i aparaty specjalistyczne
6Urządzenia techniczne
7Środki transportu
8Narzędzia, przyrządy, ruchomości i wyposażenie
9Inwentarz ż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śćJPKZnaczenie
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 = 0 i status = fully_depreciated).

Walidacja i złożenie

Analogicznie do JPK_KR_PD:

  1. generateJpkStKrXml({ companyId, fiscalYear, purpose: 1, email }).
  2. Zapis do pliku lokalnego.
  3. Walidacja offline przeciwko XSD z rozporządzenia.
  4. Podpis elektroniczny (ePUAP, kwalifikowany, podpis osobisty).
  5. 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

  1. Brak integracji z KSeF / bramką MF — plik trzeba przesłać zewnętrznym narzędziem.
  2. Brak automatycznej aktualizacji kodów KŚT — jeżeli GUS opublikuje nową wersję KŚT, kody trzeba zaktualizować ręcznie w ewidencji.
  3. 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.
  4. 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. W fixed_assets Numify mamy dwa pola: acquisitionDate (domyślnie użyte w XML) i depreciationStartDate (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. totalAcquisitionValue w generatorze liczy acquisitionValue + 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
  1. 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.

Na tej stronie