Skip to main content

Accounting Outputs in the REST API

How do I generate accounting outputs via the API?

Written by Petr Pech

Accounting outputs don't have to be generated only through the desktop application or the web interface. Like other data, you can retrieve them using the ABRA Flexi REST API.

This article lists all accounting outputs that can be generated through the REST API, including their URLs and parameters. The outputs are available in both PDF and XLSX (for print reports, see exporting print reports), and some of them are also available in XML, JSON, and CSV.


Overview of Outputs

Output

URL

/c/{firma}/stav-uctu

/c/{firma}/ucetni-denik, /c/{firma}/pohyb-na-uctech

/c/{firma}/hlavni-kniha

/c/{firma}/obratova-predvaha

/c/{firma}/sestava + parameter report-name

/c/{firma}/rozvaha-vykaz.xml

/c/{firma}/vysledovka-po-uctech

/c/{firma}/rozvaha-po-uctech

/c/{firma}/vykaz-hospodareni

/c/{firma}/analyza-zakazky

/c/{firma}/po-splatnosti

/c/{firma}/souhrnne-hlaseni-dph

Where {firma} is the database company identifier. All outputs are retrieved using the method GET, and the required format is selected by the extension in the URL.

⚠️ For these outputs, the server silently ignores unknown parameters and returns 200 OK — an incorrectly named parameter therefore does not cause an error, but produces an output without the requested restriction. Copy parameter names exactly as shown in the tables below.


Account Balances

URL: /c/{firma}/stav-uctu[.xml]. You can also use a detail level and filtering.

If you need balances for an accounting period other than the current one, add the parameter ucetniObdobi to the URL, with the abbreviation of the required accounting period as its value. Another option is the parameter idUcetniObdobi, which allows you to use accounting period identifiers. If used, it takes precedence over the parameter ucetniObdobi.

Account balances can be split by cost centers using groupByStredisko=true or by activities using groupByCinnost=true. Each row then contains the account balance for a specific cost center or activity.

Usage examples

URL

Description

/c/{firma}/stav-uctu

Account balances for the current accounting period

/c/{firma}/stav-uctu?idUcetniObdobi=3

Account balances for the accounting period with ID 3

/c/{firma}/stav-uctu?idUcetniObdobi=code:2016

Account balances for the accounting period with the abbreviation 2016

/c/{firma}/stav-uctu?ucetniObdobi=2016

Account balances for the accounting period with the abbreviation 2016

/c/{firma}/stav-uctu?groupByStredisko=true

Account balances split by cost centers

/c/{firma}/stav-uctu?groupByCinnost=true

Account balances split by activities

/c/{firma}/stav-uctu?groupByStredisko=true&groupByCinnost=true

Account balances split by both cost centers and activities at the same time

ℹ️ Account balances are covered in more detail in the article Account Balances, and their recalculation in Recalculating Account Balances.


General Journal and Account Movements

URLs: /c/{firma}/ucetni-denik, /c/{firma}/pohyb-na-uctech, and /c/{firma}/ucetni-denik-zjednoduseny. These are standard records, so you can use detail levels, filtering, and pagination.

In all three records, you can use the parameter postingState to filter records by posting status:

Value

Description

posted

Returns only posted documents (zuctovano = true).

unposted

Returns only unposted documents (zuctovano = false).

all

Returns all documents regardless of posting status.

If you omit the parameter, the default behavior depends on the company's legislation: for DACH legislation (Germany, Austria, Switzerland), the default value is posted; for other legislations (e.g., CZ, SK), it is all. The value is case-insensitive, so POSTED, Posted, and posted are all valid.

Call examples

GET https://demo.flexibee.eu/c/demo/ucetni-denik.json?postingState=posted
GET https://demo.flexibee.eu/c/demo/ucetni-denik.json?postingState=unposted
GET https://demo.flexibee.eu/c/demo/pohyb-na-uctech.json?postingState=all

If you specify any other value, the server returns 400 with the code stavZauctovaniNeplatnaHodnota and a list of allowed values.

Performance of General Journal Queries

The general journal is not a standalone table but a view that is rebuilt from documents with every query. Processing time therefore grows with the number of records in the queried period, not with the number of rows returned. A query for a single day takes a few seconds; a query for several months can take minutes.

⚠️ Pagination using the parameters start and limit works for the general journal, but the entire calculation for the period is repeated with each additional page. For large periods, pagination therefore tends to make loading longer rather than shorter.

Recommendations for integrations:

  • Do not use the parameter add-row-count=true; it triggers an additional database query.

  • Download data in shorter ranges, ideally day by day, for example by filtering on lastUpdate within a one-day range.

  • Limit the output to only the columns you actually need by using the detail level custom.

  • For regular reading of large volumes, the most efficient option performance-wise is a custom user query that retrieves the data directly.

ℹ️ Since version 2026.6.0, reading the general journal is faster, especially when reading page by page, and the database may compute demanding listings in parallel on multiple cores. A query over a long period will still not be instant, though, because the journal is still assembled from documents.

💡 Do you need to regularly download large volumes of data from the general journal? We can prepare a custom user query for you — contact us at podporaflexi@abra.eu.


General Ledger

URL: /c/{firma}/hlavni-kniha.{přípona}. Supported formats are pdf, xlsx, xml, json, and csv.

Parameters

  • ucetniObdobi — accounting period code in the form with code: (e.g., code:2024)

  • koncovyMesicRok — general ledger up to the specified month in the format MM/yyyy (e.g., 06/2024)

  • pocetMesicu — number of months in the general ledger

  • stredisko — object code from the /stredisko record; can be specified multiple times (e.g., stredisko=code:C&stredisko=code:B)

  • mena — currency code; can be specified multiple times (e.g., mena=code:CZK&mena=code:EUR)

  • filtrUcty — account codes, or their prefix or range, separated by commas (e.g., 311000,32,3-4)

  • ucet — account code; can be specified multiple times (e.g., ucet=code:211001&ucet=code:112001)

If no parameters are specified, the general ledger for the current accounting period is returned. The resulting period can be selected either with the parameter ucetniObdobi or with a combination of the parameters koncovyMesicRok and pocetMesicu.

GET https://demo.flexibee.eu/c/demo/hlavni-kniha.pdf?ucetniObdobi=code:2024
GET https://demo.flexibee.eu/c/demo/hlavni-kniha.pdf?koncovyMesicRok=12/2024&pocetMesicu=12
GET https://demo.flexibee.eu/c/demo/hlavni-kniha.json?ucetniObdobi=code:2024&filtrUcty=311


Trial Balance

URL: /c/{firma}/obratova-predvaha.{přípona}, typically pdf or xlsx. The parameters ucetniObdobi, koncovyMesicRok, pocetMesicu, stredisko, mena, filtrUcty, and ucet behave the same as for the general ledger.

In addition, you can use the parameter report-name to choose the report layout:

  • Predvaha — Trial balance

  • PredvahaPort — Trial balance (portrait)

If you do not specify any parameters, the Trial balance (portrait) for the current accounting period is generated.

GET https://demo.flexibee.eu/c/demo/obratova-predvaha.pdf?report-name=Predvaha&ucetniObdobi=code:2024&koncovyMesicRok=06/2024&pocetMesicu=12&stredisko=code:C&mena=code:CZK&filtrUcty=3&ucet=code:211001

⚠️ For both the trial balance and the general ledger, the parameter ucetniObdobi requires the form with the prefix code:. A value without the prefix (e.g., ucetniObdobi=2024) results in the error 404. For the statement of operations, it is the other way around — see Statement of Operations.


Balance Sheet

URL: /c/{firma}/sestava.{přípona}. The required parameter report-name specifies the print report you want:

  • rozvaha$$SUM_ZAKL — Balance sheet in basic format

  • rozvaha$$SUM — Balance sheet in abridged format

  • rozvaha$$NES — Balance sheet in full format

GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=rozvaha$$SUM_ZAKL
GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=rozvaha$$SUM
GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=rozvaha$$NES

In all cases, the response is 200 OK and the requested document.

ℹ️ Without the parameter report-name, the URL /c/{firma}/sestava.pdf returns an overview of accounting report definitions, not a specific statement. Recalculation and the structure of reports are covered in the article Accounting Reports in the API.


Profit and Loss Statement

URL: /c/{firma}/sestava.{přípona}, values of the parameter report-name:

  • vysledovka$$SUM — Profit and loss statement in abridged format

  • vysledovka$$NES — Profit and loss statement in full format

GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=vysledovka$$SUM
GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=vysledovka$$NES


Cash Flow Statement

URL: /c/{firma}/sestava.{přípona}, values of the parameter report-name:

  • cashFlow$$NES — Cash flow statement

  • cashFlow$$MIN_OBDOBI — Cash flow statement including data for the previous period

GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=cashFlow$$NES
GET https://demo.flexibee.eu/c/demo/sestava.pdf?report-name=cashFlow$$MIN_OBDOBI


Balance Sheet and Profit and Loss Statement in XML

URL: /c/{firma}/rozvaha-vykaz.xml. The output is an XML document for the tax authority. The service requires three mandatory parameters — druh, rozsah, and typ (of the reporting entity):

Parameter

Values

druh

B — regular, O — regular corrective, D — supplementary, E — supplementary corrective

rozsah

P — full, Z — abridged

typ

M — micro, L — small, S — medium, V — large

Error when a report has not been calculated

GET https://demo.flexibee.eu/c/demo/rozvaha-vykaz.xml?druh=B&rozsah=P&typ=M

The response is 400 Bad Request with the code priznaniDanPoNeniVypocet:

<?xml version="1.0" ?>
<winstrom version="1.0">
<success>false</success>
<message>Pro vygenerování Rozvaha a výkaz zisku a ztráty v XML musí být vypočtené sestavy Rozvaha v plném rozsahu a Výkaz zisku a ztráty - druhové členění.</message>
</winstrom>

Successful call

After the required reports have been recalculated, the same call returns 200 OK and XML in the following structure (values are illustrative):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Pisemnost nazevSW="ABRA Flexi" verzeSW="2026.5.2">
<DPPDP8 verzePis="05.01.01">
<VetaD c_nace="582000" c_ufo_cil="451" dapdpp_forma="B" dokument="DP8" k_uladis="DPP" kat_uj="M" typ_dapdpp="A" typ_popldpp="1" typ_zo="A" uv_vyhl="500" zdobd_do="31.12.2024" zdobd_od="01.01.2024"/>
<VetaP c_pop="1" c_pracufo="2005" dic="CZ12345678" naz_obce="Praha" opr_jmeno="Jan" opr_postaveni="Jednatel" opr_prijmeni="Vzorový" psc="10000" ulice="Ulice 1" zkrobchjm="Vzorová firma s.r.o."/>
<VetaO/>
<VetaUA c_radku="1" kc_brutto="0" kc_korekce="0" kc_netto="0" kc_netto_min="0"/>
<VetaUB c_radku="1" kc_min="13817245.31" kc_sled="3788007.63"/>
<VetaUD c_radku="66" kc_min="0" kc_sled="0"/>
</DPPDP8>
</Pisemnost>


Expenses and Revenues Listing

URL: /c/{firma}/vysledovka-po-uctech.{přípona}.

Parameters

  • report-name — print report code (e.g., vysledovkaPoUctechStavy)

  • ucetniObdobi — accounting period code (e.g., 2024); the default is the current accounting period

  • filtrUcty — account codes, or their prefix or range, separated by commas (e.g., 311000,32,3-4)

  • ucet — account code; can be specified multiple times (e.g., ucet=code:211001&ucet=code:112001)

  • danoveUcty — if not specified, both tax-deductible and non-deductible accounts are included

  • stredisko — object code from the /stredisko record; can be specified multiple times

  • cinnost — object code from the /cinnost record; can be specified multiple times

  • mena — currency code; can be specified multiple times

  • groupByStredisko — true / false, enables or disables breakdown by cost centers

  • groupByCinnost — true / false, enables or disables breakdown by activities

GET https://demo.flexibee.eu/c/demo/vysledovka-po-uctech.pdf?report-name=vysledovkaPoUctechStavy&ucetniObdobi=2024&mena=code:CZK&danoveUcty=true&stredisko=code:C

⚠️ If the company does not have the corresponding print report available, the service returns 406 with the code neexistujeReport. In that case, it is the report definition that is missing, not a call parameter.


Assets and Liabilities Listing

URL: /c/{firma}/rozvaha-po-uctech.{přípona}. The parameters are identical to those of the expenses and revenues listing, only without the parameter danoveUcty.

GET https://demo.flexibee.eu/c/demo/rozvaha-po-uctech.pdf?report-name=rozvahaPoUctechObraty&mena=code:CZK&filtrUcty=2,32,022001&ucet=code:082001&stredisko=code:C


Statement of Operations

URL: /c/{firma}/vykaz-hospodareni.{přípona}.

Parameters

  • report-name — required value vykazHospodareni

  • mesicRok — required month and year in the format MM/yyyy (e.g., 04/2024)

  • ucetniObdobi — accounting period code without the prefix code: (e.g., 2024); the default is the current accounting period

  • filtrUcty, ucet, stredisko, cinnost, mena — same meaning as for the expenses and revenues listing

GET https://demo.flexibee.eu/c/demo/vykaz-hospodareni.pdf?report-name=vykazHospodareni&ucetniObdobi=2024&mesicRok=04/2024&mena=code:CZK

⚠️ The month in the parameter mesicRok must fall within the selected accounting period. If it does not match, the service returns 400 with a message stating that the values of the parameters mesicRok and ucetniObdobi are not compatible with each other. Without the parameter report-name, the call fails with the error 406.


Accounting Analysis of a Project

URL: /c/{firma}/analyza-zakazky.{přípona}. Only the period parameters are required.

Parameters

  • uctovaniOd — required posting start date in the format yyyy-MM-dd (e.g., 2024-01-01)

  • uctovaniDo — required posting end date in the format yyyy-MM-dd (e.g., 2024-12-31)

  • report-name — if not specified, analyzaZakazky is used

  • zakazka — object code from the /zakazka record; can be specified multiple times (e.g., zakazka=code:ZAK1&zakazka=code:ZAK2)

  • stredisko — object code from the /stredisko record; can be specified multiple times (e.g., stredisko=code:C&stredisko=code:B)

  • cinnost — object code from the /cinnost record; can be specified multiple times (e.g., cinnost=code:1&cinnost=code:2)

GET https://demo.flexibee.eu/c/demo/analyza-zakazky.pdf?uctovaniOd=2024-01-01&uctovaniDo=2024-12-31&zakazka=code:ZAK1&zakazka=code:ZAK2

A missing period parameter results in the error 400 with the code missing_param_exception; a nonexistent project, cost center, or activity results in the error 404.


Unpaid Overdue Receivables and Payables

URL: /c/{firma}/po-splatnosti.{přípona}.

Parameters

  • datumVypoctu — required report calculation date in the format yyyy-MM-dd (e.g., 2024-09-01)

  • report-name — if not specified, poSplatnosti is used; poSplatnostiDleDokladu is also available

  • modul — accounting module code; can be specified multiple times (e.g., modul=FAV&modul=PHL). Valid values are FAP, FAV, PHL, and ZAV.

  • rozmezi1 to rozmezi6 — overdue ranges in days; the default values are 30, 60, 90, 180, 360, and 720

GET https://demo.flexibee.eu/c/demo/po-splatnosti.pdf?report-name=poSplatnostiDleDokladu&datumVypoctu=2024-09-01&rozmezi1=0&modul=FAP&modul=PHL

⚠️ If you specify the parameters rozmezi1 to rozmezi6, each value must be equal to or greater than the previous one. Otherwise, the call fails with the error 400. An invalid module code returns 404.


VAT Recapitulative Statement

URL: /c/{firma}/souhrnne-hlaseni-dph.{přípona}.

Parameters

  • rok — return year (e.g., 2024), always required

  • ctvrtleti — for quarterly filing, values 1 to 4

  • mesic — for monthly filing, values 1 to 12

  • stat — country for which the statement is to be processed. Values are CZ and SK; if not specified, the country of the company's legislation is used.

You must always specify a pair of period parameters — either rok and ctvrtleti, or rok and mesic. rok alone results in the error 400 with the code missing_param_exception.

GET https://demo.flexibee.eu/c/demo/souhrnne-hlaseni-dph.pdf?rok=2024&mesic=2&stat=CZ

ℹ️ The VAT recapitulative statement, including the XML output for the tax authority, is covered in detail in the article VAT Recapitulative Statement - REST API.


Related

Did this answer your question?