> ## Documentation Index
> Fetch the complete documentation index at: https://slovakapi.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Data models

> Types, fields, and the conventions that apply across the entire RÚZ API.

***

## Key concepts

RÚZ responses are built around two concepts that explain almost everything:

1. **Hierarchy**: everything links back to an accounting unit — see [Data access](/ruz/getting-started/data-access).
2. **Codes**: most categorical values use official classification codes — see [Codelists](/ruz/concepts/codelists).

***

## Type hierarchy

Four main entity types make up the register. An [Accounting unit](/ruz/api-reference/entity-details/get-accounting-unit) is always the starting point. Financial statements and annual reports link from it, and financial reports link from those.

```mermaid theme={null}
%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 40}}}%%
flowchart LR
  UJ["Accounting unit"]
  UZ["Financial statement"]
  VS["Annual report"]
  UV["Financial report"]
  SAB["Template"]
  PRIL["Attachment"]

  UJ -->|idUctovnychZavierok| UZ
  UJ -->|idVyrocnychSprav| VS
  UZ -->|idUctovnychVykazov| UV
  VS -->|idUctovnychVykazov| UV
  UV -.->|idSablony| SAB
  UV -.- PRIL
  VS -.- PRIL
```

Each arrow is a field on the parent containing an array of child IDs. You call the child's detail endpoint with those IDs to go one level deeper. Dotted lines indicate supporting objects that belong to a parent but are not navigated to via a separate endpoint.

<Info>
  A financial report can belong to both a financial statement and an annual report simultaneously.
</Info>

***

## Embedded types

<ResponseField name="TitulnaStrana" type="object">
  The cover page of a financial report, embedded in `UctovnyVykaz.obsah`. Captures entity identification details as they appeared at time of filing — these may differ from current values on `UctovnaJednotka`.

  <Tip>
    Codelist-backed fields here use the same codes as on `UctovnaJednotka`. See [Codelists](/ruz/concepts/codelists).
  </Tip>

  <Expandable title="properties">
    <ResponseField name="nazovUctovnejJednotky" type="string">
      Entity name at time of filing.
    </ResponseField>

    <ResponseField name="ico" type="string">
      IČO at time of filing.
    </ResponseField>

    <ResponseField name="dic" type="string">
      DIČ at time of filing.
    </ResponseField>

    <ResponseField name="sid" type="string">
      SID at time of filing.
    </ResponseField>

    <ResponseField name="adresa" type="Adresa">
      Registered address at time of filing.
    </ResponseField>

    <ResponseField name="miestoPodnikania" type="Adresa">
      Principal place of business, if different from the registered address.
    </ResponseField>

    <ResponseField name="pravnaForma" type="string">
      Legal form code from `/api/pravne-formy`.
    </ResponseField>

    <ResponseField name="skNace" type="string">
      Economic activity code from `/api/sk-nace`.
    </ResponseField>

    <ResponseField name="typZavierky" type="string">
      Statement type — mirrors `UctovnaZavierka.typ`.
    </ResponseField>

    <ResponseField name="typUctovnejJednotky" type="string">
      Accounting entity type code.
    </ResponseField>

    <ResponseField name="konsolidovana" type="boolean">
      `true` for consolidated statements.
    </ResponseField>

    <ResponseField name="oznacenieObchodnehoRegistra" type="string">
      Commercial register reference.
    </ResponseField>

    <ResponseField name="nazovSpravcovskehoFondu" type="string">
      Fund manager name. Present for fund statements.
    </ResponseField>

    <ResponseField name="leiKod" type="string">
      Legal Entity Identifier (LEI), 20 characters.
    </ResponseField>

    <ResponseField name="obdobieOd" type="string">
      Accounting period start (`YYYY-MM`).
    </ResponseField>

    <ResponseField name="obdobieDo" type="string">
      Accounting period end (`YYYY-MM`).
    </ResponseField>

    <ResponseField name="predchadzajuceObdobieOd" type="string">
      Prior period start (`YYYY-MM`). Used for comparative columns.
    </ResponseField>

    <ResponseField name="predchadzajuceObdobieDo" type="string">
      Prior period end (`YYYY-MM`). Used for comparative columns.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="Adresa" type="object">
  A postal address. Appears embedded in `TitulnaStrana` as both `adresa` (registered address) and `miestoPodnikania` (principal place of business).

  <Expandable title="properties">
    <ResponseField name="ulica" type="string">
      Street name and number.
    </ResponseField>

    <ResponseField name="psc" type="string">
      Postal code.
    </ResponseField>

    <ResponseField name="mesto" type="string">
      Municipality name.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="Priloha" type="object">
  A file attachment on a financial report or annual report. Download the binary via `/domain/financialreport/attachment/{id}`.

  <Warning>
    When an attachment is deleted, the parent `datumPoslednejUpravy` is bumped — but fetching the attachment directly returns **HTTP 404**. Always handle 404 when downloading.
  </Warning>

  <Expandable title="properties">
    <ResponseField name="id" type="integer" required>
      Attachment identifier. Use in the download URL.
    </ResponseField>

    <ResponseField name="meno" type="string">
      Original filename.
    </ResponseField>

    <ResponseField name="mimeType" type="string">
      MIME type, e.g. `image/tiff` or `application/pdf`.
    </ResponseField>

    <ResponseField name="velkostPrilohy" type="integer">
      File size in bytes.
    </ResponseField>

    <ResponseField name="pocetStran" type="integer">
      Page count. Present for paginated formats like TIFF and PDF.
    </ResponseField>

    <ResponseField name="digest" type="string">
      SHA-256 hex digest for integrity verification.
    </ResponseField>

    <ResponseField name="jazyk" type="string">
      Language code of the attachment.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="Tabulka" type="object">
  A single table section within `UctovnyVykaz.obsah.tabulky`. Contains a localised name and a flat array of row values whose positions are defined by the corresponding `Sablona`.

  <Expandable title="properties">
    <ResponseField name="nazov" type="object">
      Localised section name. Keys are language codes (`"sk"`, `"en"`), values are label strings. Always access `.nazov.sk` or `.nazov.en` — never `.nazov` directly, as it is an object, not a string.
    </ResponseField>

    <ResponseField name="data" type="string[]">
      Row values in positional order, as defined by the corresponding `Sablona.tabulky[i].riadky`. Values are numeric strings — the unit is set by `UctovnyVykaz.mena`.
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Entity types

<ResponseField name="UctovnaJednotka" type="object">
  The root entity — an accounting unit from which all financial statements and annual reports hang. Every other entity type links back here via `idUJ`.

  <Warning>
    When an entity is deleted, only `id`, `datumPoslednejUpravy`, and `stav` are returned. Always check for `stav: "ZMAZANÉ"` before accessing any other field.
  </Warning>

  <Expandable title="properties">
    <ResponseField name="id" type="integer" required>
      Unique identifier.
    </ResponseField>

    <ResponseField name="ico" type="string">
      Company registration number (IČO), 8 characters.
    </ResponseField>

    <ResponseField name="dic" type="string">
      Tax identification number (DIČ), 10 characters.
    </ResponseField>

    <ResponseField name="sid" type="string">
      Statistical identifier (SID), up to 5 characters.
    </ResponseField>

    <ResponseField name="nazovUJ" type="string">
      Legal name, up to 500 characters.
    </ResponseField>

    <ResponseField name="ulica" type="string">
      Registered address — street.
    </ResponseField>

    <ResponseField name="mesto" type="string">
      Registered address — municipality.
    </ResponseField>

    <ResponseField name="psc" type="string">
      Registered address — postal code.
    </ResponseField>

    <ResponseField name="datumZalozenia" type="string">
      Date of incorporation (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="datumZrusenia" type="string">
      Date of dissolution (`YYYY-MM-DD`). Absent if still active.
    </ResponseField>

    <ResponseField name="pravnaForma" type="string">
      Legal form code from `/api/pravne-formy`.
    </ResponseField>

    <ResponseField name="skNace" type="string">
      Economic activity code from `/api/sk-nace`.
    </ResponseField>

    <ResponseField name="velkostOrganizacie" type="string">
      Organisation size code from `/api/velkosti-organizacie`.
    </ResponseField>

    <ResponseField name="druhVlastnictva" type="string">
      Ownership type code from `/api/druhy-vlastnictva`.
    </ResponseField>

    <ResponseField name="kraj" type="string">
      Region code from `/api/kraje`.
    </ResponseField>

    <ResponseField name="okres" type="string">
      District code from `/api/okresy`.
    </ResponseField>

    <ResponseField name="sidlo" type="string">
      Municipality code from `/api/sidla`.
    </ResponseField>

    <ResponseField name="konsolidovana" type="boolean">
      `true` if the entity has at least one consolidated financial statement.
    </ResponseField>

    <ResponseField name="idUctovnychZavierok" type="integer[]">
      IDs of all associated financial statements.
    </ResponseField>

    <ResponseField name="idVyrocnychSprav" type="integer[]">
      IDs of all associated annual reports.
    </ResponseField>

    <ResponseField name="zdrojDat" type="string">
      Source system code. See [Data sources](/ruz/concepts/codelists#data-sources).
    </ResponseField>

    <ResponseField name="datumPoslednejUpravy" type="string">
      Last modification date (`YYYY-MM-DD`), scoped strictly to this record. Does **not** update when linked statements or reports change — see [Local storage](/ruz/getting-started/local-storage).
    </ResponseField>

    <ResponseField name="stav" type="string">
      Present only on deleted entities. Always `"ZMAZANÉ"`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="UctovnaZavierka" type="object">
  A financial closing statement linked to an accounting unit. Groups one or more `UctovnyVykaz` records covering the same accounting period.

  <Expandable title="properties">
    <ResponseField name="id" type="integer" required>
      Unique identifier.
    </ResponseField>

    <ResponseField name="idUJ" type="integer" required>
      ID of the parent accounting unit.
    </ResponseField>

    <ResponseField name="obdobieOd" type="string">
      Accounting period start (`YYYY-MM`).
    </ResponseField>

    <ResponseField name="obdobieDo" type="string">
      Accounting period end (`YYYY-MM`).
    </ResponseField>

    <ResponseField name="typ" type="string">
      One of `"Riadna"`, `"Mimoriadna"`, `"Priebežná"`, or `"Kombinovaná"`.
    </ResponseField>

    <ResponseField name="konsolidovana" type="boolean">
      `true` for consolidated statements.
    </ResponseField>

    <ResponseField name="konsolidovanaZavierkaUstrednejStatnejSpravy" type="boolean">
      `true` for central state administration consolidated statements.
    </ResponseField>

    <ResponseField name="suhrnnaUctovnaZavierkaVerejnejSpravy" type="boolean">
      `true` for public administration aggregate statements.
    </ResponseField>

    <ResponseField name="datumPodania" type="string">
      Date of submission (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="datumZostavenia" type="string">
      Date of preparation (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="datumZostaveniaK" type="string">
      Date as-of which the statement was prepared (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="datumSchvalenia" type="string">
      Date of approval (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="datumPrilozeniaSpravyAuditora" type="string">
      Date the auditor's report was attached (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="nazovFondu" type="string">
      Fund name. Present when the statement belongs to a fund.
    </ResponseField>

    <ResponseField name="leiKod" type="string">
      Legal Entity Identifier (LEI), 20 characters.
    </ResponseField>

    <ResponseField name="idUctovnychVykazov" type="integer[]">
      IDs of the financial reports within this statement.
    </ResponseField>

    <ResponseField name="zdrojDat" type="string">
      Source system code. See [Codelists](/ruz/concepts/codelists) (Data sources table).
    </ResponseField>

    <ResponseField name="datumPoslednejUpravy" type="string">
      Last modification date (`YYYY-MM-DD`).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="VyrocnaSprava" type="object">
  An annual report linked to an accounting unit. May contain financial reports, file attachments, or both.

  <Expandable title="properties">
    <ResponseField name="id" type="integer" required>
      Unique identifier.
    </ResponseField>

    <ResponseField name="idUJ" type="integer" required>
      ID of the parent accounting unit.
    </ResponseField>

    <ResponseField name="nazovUJ" type="string">
      Name of the accounting entity at time of filing, up to 500 characters.
    </ResponseField>

    <ResponseField name="typ" type="string">
      One of `"Ročná finančná správa"`, `"Individuálna výročná správa"`, `"Konsolidovaná výročná správa"`, or `"Súhrnná výročná správa SR"`.
    </ResponseField>

    <ResponseField name="obdobieOd" type="string">
      Reporting period start (`YYYY-MM`).
    </ResponseField>

    <ResponseField name="obdobieDo" type="string">
      Reporting period end (`YYYY-MM`).
    </ResponseField>

    <ResponseField name="datumPodania" type="string">
      Date of submission (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="datumZostaveniaK" type="string">
      Date as-of which the report was prepared (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="pristupnostDat" type="string">
      One of `"Verejné"` or `"Neverejné"`.
    </ResponseField>

    <ResponseField name="nazovFondu" type="string">
      Fund name. Present when the report belongs to a fund.
    </ResponseField>

    <ResponseField name="leiKod" type="string">
      Legal Entity Identifier (LEI), 20 characters.
    </ResponseField>

    <ResponseField name="idUctovnychVykazov" type="integer[]">
      IDs of the financial reports within this annual report.
    </ResponseField>

    <ResponseField name="prilohy" type="Priloha[]">
      File attachments.
    </ResponseField>

    <ResponseField name="zdrojDat" type="string">
      Source system code. See [Codelists](/ruz/concepts/codelists) (Data sources table).
    </ResponseField>

    <ResponseField name="datumPoslednejUpravy" type="string">
      Last modification date (`YYYY-MM-DD`).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="UctovnyVykaz" type="object">
  A single financial report — the leaf node of the hierarchy. Contains structured tabular data in `obsah` and any file attachments in `prilohy`. May belong to a financial statement, an annual report, or both.

  <Warning>
    `obsah` is only present when `pristupnostDat` is `"Verejné"`. Always check the access level before reading report content.
  </Warning>

  <Expandable title="properties">
    <ResponseField name="id" type="integer" required>
      Unique identifier.
    </ResponseField>

    <ResponseField name="idUctovnejZavierky" type="integer">
      ID of the parent financial statement. Absent if the report belongs to an annual report only.
    </ResponseField>

    <ResponseField name="idVyrocnejSpravy" type="integer">
      ID of the parent annual report. Absent if the report belongs to a financial statement only.
    </ResponseField>

    <ResponseField name="idSablony" type="integer">
      ID of the template defining the structure of `obsah.tabulky`. See [Get report template](/ruz/api-reference/templates/get-report-template).
    </ResponseField>

    <ResponseField name="mena" type="string">
      Currency unit applied to all values in `obsah.tabulky`, e.g. whole euros or thousands. See [Get report template](/ruz/api-reference/templates/get-report-template).
    </ResponseField>

    <ResponseField name="kodDanovehoUradu" type="string">
      Tax office code.
    </ResponseField>

    <ResponseField name="pristupnostDat" type="string">
      One of `"Verejné"`, `"Verejné prílohy"`, or `"Neverejné"`.
    </ResponseField>

    <ResponseField name="obsah" type="object">
      Report content — `titulnaStrana` and `tabulky`. See [Get report template](/ruz/api-reference/templates/get-report-template).
    </ResponseField>

    <ResponseField name="prilohy" type="Priloha[]">
      File attachments.
    </ResponseField>

    <ResponseField name="zdrojDat" type="string">
      Source system code. See [Codelists](/ruz/concepts/codelists) (Data sources table).
    </ResponseField>

    <ResponseField name="datumPoslednejUpravy" type="string">
      Last modification date (`YYYY-MM-DD`). Updated when attachments are deleted.
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Reference types

<ResponseField name="Sablona" type="object">
  A report template that defines the row and column structure of `UctovnyVykaz.obsah.tabulky`. See [Get report template](/ruz/api-reference/templates/get-report-template) for how to use it to interpret financial data.

  <Expandable title="properties">
    <ResponseField name="id" type="integer" required>
      Unique identifier. Stable — templates are never deleted.
    </ResponseField>

    <ResponseField name="nazov" type="string">
      Template name, e.g. `"Úč FO 1-01"`.
    </ResponseField>

    <ResponseField name="nariadenieMF" type="string">
      Ministry of Finance regulation reference.
    </ResponseField>

    <ResponseField name="platneOd" type="string">
      Effective from (`YYYY-MM-DD`).
    </ResponseField>

    <ResponseField name="platneDo" type="string">
      Effective to (`YYYY-MM-DD`). Absent if still in use.
    </ResponseField>

    <ResponseField name="tabulky" type="object[]">
      Table definitions, each with a localised `nazov`, a `hlavicka` array for the header layout, and a `riadky` array of row definitions whose order corresponds positionally to `Tabulka.data`. See [Get report template](/ruz/api-reference/templates/get-report-template).
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Deleted entities

When an entity is deleted, its detail endpoint returns a stripped response rather than HTTP 404, so that sync consumers can detect and handle deletions.

<CodeGroup>
  ```json Active entity theme={null}
  {
    "id": 336953,
    "ico": "00603481",
    "nazovUJ": "Hlavné mesto Slovenskej republiky Bratislava",
    "datumPoslednejUpravy": "2012-11-14"
  }
  ```

  ```json Deleted entity theme={null}
  {
    "id": 316853,
    "datumPoslednejUpravy": "2013-08-21",
    "stav": "ZMAZANÉ"
  }
  ```
</CodeGroup>

The deleted entity's `id` still appears in `zmenene-od` change lists so that sync consumers can discover it. Cascading behaviour:

* Deleting an `UctovnaJednotka` deletes all its child records.
* Deleting a `VyrocnaSprava` or `UctovnaZavierka` **does not** bump `datumPoslednejUpravy` on the parent `UctovnaJednotka`.
* Deleting an attachment bumps `datumPoslednejUpravy` on the parent `UctovnyVykaz`, but the attachment itself returns HTTP 404.
* In exceptional cases an entity may disappear from the public register without a trace.
