---
title: "Okresy fiskalne"
description: "Zarządzanie rokiem obrotowym i okresami miesięcznymi — statusy open / closed / locked, zamykanie i ponowne otwieranie okresu, trwałe zamknięcie roku (lock) oraz zapisy zamknięcia rocznego."
url: https://numifyai.com/docs/korzystanie-z-numify/fiscal-periods
review_status: numify-source
updated: 2026-04-17
---


**Okresy fiskalne** to miesięczne „koperty", w które Numify wkłada zapisy
z <FeatureRef slug="journal">dziennika</FeatureRef>. Każdy okres ma
status (`open` / `closed` / `locked`), który kontroluje, czy można w
nim jeszcze dodawać, modyfikować lub odwracać zapisy.

<ComplianceDisclaimer />

{/* SCREENSHOT: ekran /fiscal-periods — lista 12 okresów roku z badge'ami statusu i przyciskami Zamknij / Otwórz ponownie / Zamknij trwale */}

## Po co to w Numify [#po-co-to-w-numify]

<LegalRef act="UoR" art="12" paragraph="1" /> wymaga otwierania
ksiąg na początek roku obrotowego i ich zamknięcia na dzień kończący
rok (<LegalRef act="UoR" art="12" paragraph="2" />). W praktyce
księgi prowadzi się w podziale na miesięczne okresy sprawozdawcze —
zgodnie z deklaracją z <FeatureRef slug="accounting-policy">polityki
rachunkowości</FeatureRef> (<LegalRef act="UoR" art="10" paragraph="1" />).

Numify wymusza tę strukturę programowo:

* każdy zapis w dzienniku jest przypisany do konkretnego `(fiscalYear, fiscalMonth)`,
* do okresu `closed` nie można dodawać nowych zapisów ani modyfikować istniejących,
* do okresu `locked` nie można nawet wystawić storna — jest nieodwracalnie zamknięty.

## Model — rok obrotowy i okresy miesięczne [#model--rok-obrotowy-i-okresy-miesięczne]

**Rok obrotowy** to domyślnie rok kalendarzowy (1 I – 31 XII), ale
zgodnie z <LegalRef act="UoR" art="3" paragraph="1" /> (pkt 9) może
być dowolnym okresem 12 pełnych miesięcy. Rok obrotowy deklaruje się w
ustawieniach spółki (`fiscalYearStartMonth`) i w polityce
rachunkowości.

**Okres miesięczny** to `(companyId, fiscalYear, fiscalMonth)`. Numify
automatycznie tworzy okres przy pierwszym zapisie w danym miesiącu
(`getOrCreatePeriod`) — ręczne zakładanie okresów nie jest wymagane.

## Trzy statusy okresu [#trzy-statusy-okresu]

| Status       | Można księgować? |              Można storno?             | Kiedy?                                                                                                                                                                              |
| ------------ | :--------------: | :------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`open`**   |         ✅        |                    ✅                   | Domyślny. Okres otwarty — dodawanie, modyfikacje, storno dozwolone.                                                                                                                 |
| **`closed`** |         ❌        | ✅ (w okresie otwartym, z datą bieżącą) | Po miesięcznym / kwartalnym zamknięciu. Błędy można korygować przez storno w kolejnym otwartym okresie.                                                                             |
| **`locked`** |         ❌        |                    ❌                   | Trwałe zamknięcie po zatwierdzeniu sprawozdania finansowego (<LegalRef act="UoR" art="12" paragraph="5" />). Odpowiada „nieodwracalnemu wyłączeniu możliwości dokonywania zapisów". |

Funkcja `isPeriodModifiable(period)` w <ServiceRef path="src/lib/services/fiscal-periods.ts" tests="30" />
zwraca `true` tylko dla statusu `open` — jest wywoływana przez wszystkie
endpointy modyfikujące dziennik.

## Zamykanie okresu [#zamykanie-okresu]

Przycisk „Zamknij okres" (`closePeriod`) ustawia status na `closed`.
Przed zamknięciem warto:

1. Sprawdzić, że wszystkie faktury z miesiąca są zaksięgowane (<FeatureRef slug="faktury" />).
2. Sprawdzić, że wszystkie wiersze wyciągu są dopasowane (<FeatureRef slug="konta-bankowe" />).
3. Uzgodnić salda w <FeatureRef slug="trial-balance">zestawieniu obrotów i sald</FeatureRef>.
4. Uzgodnić rejestr VAT i wygenerować JPK\_V7 (<FeatureRef slug="vat-register" />).

Zamknięcie nie jest obowiązkowe prawnie w cyklu miesięcznym — to
**dyscyplina operacyjna**, która zabezpiecza przed przypadkową edycją
zaksięgowanych już miesięcy. Obowiązkowe jest dopiero zamknięcie na
koniec roku (<LegalRef act="UoR" art="12" paragraph="2" />).

## Ponowne otwarcie (`reopenPeriod`) [#ponowne-otwarcie-reopenperiod]

Jeśli po zamknięciu okazuje się, że miesiąc wymaga korekty (np.
znaleziona po czasie faktura kosztowa), można ponownie otworzyć okres
— wraca do statusu `open`. Uwaga:

* Ponowne otwarcie **nie jest dostępne**, jeśli okres ma status `locked` (jest to zamknięcie nieodwracalne, <LegalRef act="UoR" art="12" paragraph="5" />).
* Ponowne otwarcie po zatwierdzeniu sprawozdania finansowego stanowi istotną zmianę — jeśli wpływa na dane już wykazane w bilansie / RZiS, wymaga korekty sprawozdania zgodnie z KSR 7 (błędy lat ubiegłych).

Rekomendacja: w trakcie roku preferuj **korekty przez storno** w
bieżącym okresie, a ponowne otwieranie traktuj jako wyjątek.

## Trwałe zamknięcie (`lockPeriod`) [#trwałe-zamknięcie-lockperiod]

Po zatwierdzeniu rocznego sprawozdania finansowego przez zarząd /
zgromadzenie wspólników okresy roku podlegają **trwałemu zamknięciu**
— status `locked`. Termin: **15 dni od zatwierdzenia**
(<LegalRef act="UoR" art="12" paragraph="4" />).

Trwałe zamknięcie:

* uniemożliwia dodawanie zapisów, modyfikacje oraz storno,
* realizuje wymóg „nieodwracalnego wyłączenia możliwości dokonywania zapisów" (<LegalRef act="UoR" art="12" paragraph="5" />),
* jest warunkiem zgodności ksiąg z zatwierdzonym sprawozdaniem.

Po zablokowaniu jedyną drogą korekty pozostaje **storno w kolejnym
roku obrotowym** — zgodnie z zasadą, że błędy wykryte po zamknięciu
ksiąg koryguje się w okresie bieżącym.

## Generowanie zapisów zamknięcia rocznego [#generowanie-zapisów-zamknięcia-rocznego]

<ServiceRef path="src/lib/services/fiscal-periods.ts" tests="30" /> eksportuje
`generateYearEndClosingEntries` — funkcja składa zapisy zamknięcia
kont wynikowych (zespoły 4, 7) na <AccountRef code="860" /> (wynik
finansowy bieżącego roku), a następnie przeksięgowuje saldo na
<AccountRef code="820" /> (wynik finansowy).

Generowanie jest **odrębną czynnością** od zamknięcia okresu — tworzy
konkretne zapisy w dzienniku na dzień bilansowy. Workflow:

1. Uzgodnij RZiS za cały rok (<FeatureRef slug="profit-loss" />).
2. Uruchom generator — powstaje zapis „Zamknięcie roku YYYY" na 31 XII.
3. Zweryfikuj, że salda kont zespołu 4 i 7 są wyzerowane.
4. Zatwierdź sprawozdanie finansowe.
5. Zablokuj okresy roku (`lockPeriod` dla każdego miesiąca).

## Widok `/fiscal-periods` [#widok-fiscal-periods]

{/* SCREENSHOT: tabela 12 miesięcy — kolumny Miesiąc / Liczba zapisów / Obrót Wn / Obrót Ma / Status / Akcje */}

* **Selektor roku** — przełączanie między latami obrotowymi.
* **Tabela miesięcy** — 12 wierszy z licznikiem zapisów i sumą obrotów.
* **Badge statusu** — `otwarty` (zielony), `zamknięty` (żółty), `zablokowany` (szary).
* **Akcje kontekstowe** — zależne od statusu (Zamknij / Otwórz ponownie / Zamknij trwale).

## Typowe błędy i jak ich uniknąć [#typowe-błędy-i-jak-ich-uniknąć]

* **Zamknięcie okresu z niezaksięgowanymi fakturami** — faktura zaksięgowana później trafi do kolejnego miesiąca, zaburzając VAT. Zawsze księguj przed zamknięciem.
* **Lock przed zatwierdzeniem SF** — nie ma prawnego uzasadnienia przed uchwałą zgromadzenia wspólników. Odwróć przez `reopenPeriod` zanim okres zostanie zablokowany.
* **Praca w dwóch latach jednocześnie** — zapisy BO (<FeatureRef slug="opening-balance" />) trafiają do nowego roku na 1 I, ale wymagają zamkniętego poprzedniego. Nie otwieraj ksiąg roku YYYY+1 bez zapisów zamknięcia roku YYYY.

## Powiązania [#powiązania]

* <FeatureRef slug="journal">Dziennik</FeatureRef> — każdy zapis ma `(fiscalYear, fiscalMonth)` i respektuje status okresu.
* <FeatureRef slug="opening-balance">Bilans otwarcia</FeatureRef> — używa `ensurePeriodOpen` i tworzy okres pierwszego miesiąca, jeśli go brak.
* <FeatureRef slug="trial-balance">Zestawienie obrotów i sald</FeatureRef> — filtruje zapisy po roku / miesiącu.
* <FeatureRef slug="balance-sheet">Bilans</FeatureRef> i <FeatureRef slug="profit-loss">RZiS</FeatureRef> — sporządzane na dzień zamknięcia ksiąg zgodnie z <LegalRef act="UoR" art="45" paragraph="1" />.
