Skip to main content

User Roles - REST API

How to Manage Permissions and Access Rights via the API

Written by Petr Pech

User roles, as defined in the application interface, are also accessible via the REST API.

⚠️ Notice: In version 2026.1.0, only reading is available, not import. Import will be enabled in one of the following versions.


Method of calling

You can use the HTTP method: GET, PUT, POST

In the REST API, you can use the /c/{firma}/role endpoint, through which you can export, modify, import, and create roles within a company.

GET http://demo.flexibee.eu/c/demo/role.xml

The following output formats are supported: JSON, XML, or CSV.


Description of records


Available operations

Export

  • GET /c/{firma}/role Returns all roles within the company.

  • GET /c/{firma}/role/{ID} Returns a specific role with all access rights.

You can use the usual filtering and detail levels in the API.

Import

  • PUT a POST /c/{firma}/role

    • If the request contains <id>{ID}</id>, the role corresponding to the specified ID is updated.

    • If the request does not contain <id>{ID}</id>, a new role is created.

  • PUT a POST /c/{firma}/role/{ID} The role corresponding to the specified ID is updated.

Required import parameters

  • to create a new role, the following properties need to be filled in:

  • kod - required Code/Abbreviation.

  • nazev - required Name

  • otecRole - ID or code of the default role

    • When creating a new role, the access rights from the default role will be used if they were not defined in the request

    • <otecRole>code:ADMIN</otecRole>

⚠️ User roles (<standard>false</standard>) are created by the user and must be based on another role (property otecRole).

Standard roles (<standard>true</standard>) are created by the application and are immutable.

WARNING! For access rights of standard roles, the ID is in the format uuid:{kód role}-{klíč práva}

For imports, you can use the usual identifiers, including external ones.


Call examples

1. Reading all available roles

GET

https://demo.flexibee.eu/c/demo/role.xml?limit=0&detail=full

Output:

<winstrom version="1.0">
<!-- Role uživatele -->
<role>
<!-- ID (celé číslo) - -->
<id>1</id>
<!-- Poslední změna (datum a čas) - -->
<lastUpdate>2020-02-12T15:10:00.172+01:00</lastUpdate>
<!-- Zkratka (řetězec) - max. délka: 20 -->
<kod>ADMIN</kod>
<!-- Název (řetězec) - max. délka: 255 -->
<nazev>Administrátor</nazev>
<!-- Název EN (řetězec) - max. délka: 255 -->
<nazevA>Administrator</nazevA>
<!-- Název IT (řetězec) - max. délka: 255 -->
<nazevB>Verwalter</nazevB>
<!-- Název FR (řetězec) - max. délka: 255 -->
<nazevC/>
<!-- Poznámka (řetězec) - -->
<poznam/>
<!-- Popis (řetězec) - -->
<popis/>
<!-- Zobrazovat (logická hodnota) - -->
<visible>true</visible>
<!-- Standardní role (logická hodnota) - -->
<standard>true</standard>
<!-- Přístup Administrátor - typPrav.admin Super uživatel - typPrav.superUzivatel Standardní uživatel - typPrav.uzivatel Obchodník - typPrav.obchodnik Účetní - typPrav.ucetni Mzdový účetní - typPrav.mzdovyUcetni Skladník - typPrav.skladnik Skladník s pokladnou - typPrav.skladnikSPokladnou Jen číst - typPrav.jenCist Neaktivní účet - typPrav.zablokovan -->
<pristupK showAs="Administrátor">typPrav.admin</pristupK>
<!-- Odvozeno z role (objekt) - max. délka: 20 -->
<otecRole/>
<pristupova-prava>
<!-- Přístupová práva -->
<pristupove-pravo>
<!-- ID (celé číslo) - -->
<id>uuid:ADMIN-cTypZbozi</id>
<!-- Poslední změna (datum a čas) - -->
<lastUpdate/>
<!-- Typ přístupu Plný přístup - typPristPrav.plny Nepřístupné - typPristPrav.nepripustne Pouze číst - typPristPrav.pouzeCist Upřesnění přístupu - typPristPrav.upresneni -->
<typeK showAs="Plný přístup">typPristPrav.plny</typeK>
<!-- Klíč přístupového práva (řetězec) - -->
<groupKey>cTypZbozi</groupKey>
<!-- Role uživatele (objekt) - max. délka: 20 -->
<role ref="/c/demo141020_v26/role/1.xml" showAs="ADMIN: Administrátor">code:ADMIN</role>
<!-- Upřesňující přístupová práva Přidávat nové - Pridavat Měnit existující - Menit Mazat - Mazat Export - Export Import - Import Otevírat detail - OteviratDetail Měnit sloupce - Sloupce Kusovník - Kusovnik Stornovat - Storno Povolit slevu a změnu ceny - SlevaZmenaCeny Sumace - Sumace Služby - Sluzby Vazby - Vazby Hromadné změny - HromZmeny Vidět nákupní cenu - NakupCena Měnit zaúčtování - MenitZauctovani Měnit předpis zaúčtování - MenitTuo Generovat faktury ze smluv - GenerovatZeSmluv Podepisovat faktury - PodepsatFaktury Prodávat pod minimální marží - ProdejPodMinMarzi -->
<featureK>
<feature>Pridavat</feature>
<feature>Menit</feature>
<feature>Mazat</feature>
<feature>Export</feature>
<feature>Import</feature>
<feature>OteviratDetail</feature>
<feature>Sloupce</feature>
</featureK>
</pristupove-pravo>
....
....
</role>

2. Copying the ADMIN role with the same rights

POST

https://demo.flexibee.eu/c/demo/role.xml

Input:

<winstrom version="1.0">     
<role>
<kod>ADMIN_COPY</kod>
<nazev>Kopie role ADMIN.</nazev>
<otecRole>code:ADMIN</otecRole>
</role>
</winstrom>

3. Determining the keys for the rights being changed

GET

https://demo.flexibee.eu/c/demo/role.xml

Output:

...
<pristupove-pravo>
<id>uuid:ADMIN-dDoklFak$$FAP</id>
<groupKey evidencePath="faktura-prijata">dDoklFak$$FAP</groupKey>
</pristupove-pravo>
...
<pristupove-pravo>
<id>uuid:ADMIN-dDoklFak$$FAV</id>
<groupKey evidencePath="faktura-vydana">dDoklFak$$FAV</groupKey>
</pristupove-pravo>
...

You need to find the corresponding right keys for step 4. We are interested in the keys dDoklFak$$FAV and dDoklFak$$FAP.

4. Setting access to issued invoices to read-only and completely disabling access to received invoices.

POST

https://demo.flexibee.eu/c/demo/role.xml


Input

<winstrom version="1.0">     
<role>
<!-- identifikace měněné role -->
<id>code:ADMIN_COPY</id>
<!-- definice nastavovaných přístupových práv -->
<pristPrava>
<!-- klíč pro FAV a nastavení práva pro čtení -->
<pristupove-pravo>
<groupKey>dDoklFak$$FAV</groupKey>
<typeK>typPristPrav.pouzeCist</typeK>
</pristupove-pravo>
<!-- klíč pro FAP a nastavení bez přístupu -->
<pristupove-pravo>
<groupKey>dDoklFak$$FAP</groupKey>
<typeK>typPristPrav.nepripustne</typeK>
</pristupove-pravo>
</pristPrava>
</role>
</winstrom>


FAQ

💡 Need help? If you have any questions about the application, contact us at podporaflexi@abra.eu or via the chat window in the bottom right corner.

Did this answer your question?