Skip to main content

# Historical account states and movements via API

Selecting the accounting period for account balances, account movements, and trial balance

Written by Petr Pech

Accounting outputs — account balances, account movements, and the trial balance — can be read via the REST API just like any other record type. The only difference is how the accounting period is selected for them.


Account Balances

Without additional parameters, the stav-uctu record returns balances for the period valid as of today. A different period is selected using a parameter:

Address

What it returns

/c/{firma}/stav-uctu.xml

Current accounting period.

…/stav-uctu.xml?ucetniObdobi=2024

Period by code.

…/stav-uctu.xml?idUcetniObdobi=code:2024

Period by identifier; takes precedence over ucetniObdobi.

…/stav-uctu.xml?groupByStredisko=true

Balances broken down by cost center.

…/stav-uctu.xml?groupByCinnost=true

Balances broken down by activity.

Filtering works the usual way, so you can pull the balance of one specific account like this:

GET /c/{firma}/stav-uctu/(ucet='code:311001').xml?idUcetniObdobi=code:2024

⚠️ The period code must exist — an unknown value in ucetniObdobi results in the 404 response. The ucetni-obdobi record provides the list of periods.


Account Movements

The pohyb-na-uctech record has no accounting period parameter — the period is selected using a date filter:

GET /c/{firma}/pohyb-na-uctech/(datVyst < 2019-01-01).xml?detail=full

GET /c/{firma}/pohyb-na-uctech/(datUcto < 2019-01-01).xml?detail=full

For selecting the accounting period, datUcto (posting date) tends to be more accurate than datVyst. Each row also carries a postingPeriod field in the format 2024/10, which can be used to further sort the output.


Trial Balance

The trial balance has the accounting period directly as a property, so it is filtered as follows:

GET /c/{firma}/obratova-predvaha/(ucetniObdobi='code:2026').xml?detail=full

ℹ️ The ?ucetniObdobi= parameter does not work with the trial balance — it returns 404. It applies only to account balances; for the trial balance, use a filter as shown above.

💡 Filters in the address must be encoded — a space as %20, the character < as %3C. An unencoded filter will return an HTML page instead of data.


Related

Did this answer your question?