---
title: "JPK_ST_KR — ewidencja środków trwałych"
description: "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)."
url: https://numifyai.com/docs/zgodnosc-z-prawem/ustawa-o-cit/jpk-st-kr
review_status: internal
updated: 2026-04-16
---


**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.

<ComplianceDisclaimer />

## Podstawa prawna [#podstawa-prawna]

Obowiązek wynika z <LegalRef act="CIT" art="9" paragraph="1c" />
i Rozporządzenia MF z 16 sierpnia 2024 r. (Dz.U. 2024 poz. 1314) —
zob. [JPK\_KR\_PD](/docs/zgodnosc-z-prawem/ustawa-o-cit/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 [#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 [#struktura-pliku]

### Nagłówek i podmiot [#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 [#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>` [#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 [#implementacja-w-numify]

<ServiceRef path="src/lib/services/jpk-st-kr-generator.ts">generateJpkStKrXml</ServiceRef>
korzysta z rejestru środków trwałych (<ServiceRef path="src/lib/services/fixed-assets.ts">fixed-assets.ts</ServiceRef>):

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 [#metody-amortyzacji-w-numify]

Enum `depreciation_method` (<ServiceRef path="src/lib/services/fixed-assets.ts">fixed-assets.ts</ServiceRef>):

| Wartość      | Mapowanie w JPK | Opis                                                                          | Podstawa prawna                                |
| ------------ | --------------- | ----------------------------------------------------------------------------- | ---------------------------------------------- |
| `linear`     | „liniowa"       | Stała roczna stawka (kwota/12 miesięcznie)                                    | <LegalRef act="CIT" art="16i" />               |
| `degressive` | „degresywna"    | NBV × stawka × współczynnik 2,0; przełączenie na liniową gdy staje się niższa | <LegalRef act="CIT" art="16k" paragraph="1" /> |
| `one_time`   | „jednorazowa"   | Jednorazowy odpis; typowo ŚT \< 10 000 zł                                     | <LegalRef act="CIT" art="16k" paragraph="7" /> |

Funkcja <ServiceRef path="src/lib/services/fixed-assets.ts">calculateMonthlyDepreciation</ServiceRef>
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 [#generowanie-miesięcznych-odpisów]

<ServiceRef path="src/lib/services/fixed-assets.ts">generateMonthlyDepreciation</ServiceRef>
tworzy wpisy `depreciation_entries` za dany rok i miesiąc — dla
**wszystkich aktywnych środków firmy**. Wymaga otwartego okresu
(<ServiceRef path="src/lib/services/fiscal-periods.ts">ensurePeriodOpen</ServiceRef>).

Odpisy amortyzacyjne **są automatycznie księgowane** na konta:

| Debetowy (Wn)                                | Kredytowy (Ma)                                              |
| -------------------------------------------- | ----------------------------------------------------------- |
| <AccountRef code="400" name="Amortyzacja" /> | <AccountRef code="070" name="Umorzenie środków trwałych" /> |

(mapowanie z `seed-accounts.ts`, kategoria `depreciation` w `DEFAULT_CATEGORY_MAPPINGS`).

## Kod KŚT — klasyfikacja środków trwałych [#kod-kśt--klasyfikacja-środków-trwałych]

Pole `<KodKST>` to kod z &#x2A;*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 [#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 <ServiceRef path="src/lib/services/fixed-assets.ts">disposeFixedAsset</ServiceRef>
  (likwidacja/sprzedaż).
* Automatycznie — gdy zakumulowana amortyzacja = wartość początkowa
  (funkcja aktualizuje `netBookValue = 0` i `status = fully_depreciated`).

## Walidacja i złożenie [#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 [#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 [#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.**
  <LegalRef act="CIT" art="16k" paragraph="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 [#powiązane-sekcje]

* [JPK\_KR\_PD](/docs/zgodnosc-z-prawem/ustawa-o-cit/jpk-kr-pd) —
  struktura ksiąg rachunkowych składana łącznie.
* [CIT-8](/docs/zgodnosc-z-prawem/ustawa-o-cit/cit-8) — JPK\_ST\_KR
  składany w terminie CIT-8.
* [KUP / NKUP](/docs/zgodnosc-z-prawem/ustawa-o-cit/kup-nkup) —
  limity amortyzacji samochodów osobowych (art. 16 ust. 1 pkt 4:
  225 / 150 / 100 tys. zł).

<ChangeHistory>
  <ChangeEntry date="2026-04-16" act="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.
  </ChangeEntry>
</ChangeHistory>
