Kategórie
Kategórie nákladov a príjmov, vrátane vnoreného stromu.
Kategórie nákladov a príjmov. Podporujú vnorenie cez parent_id (max 2 úrovne). Každá kategória má jeden type – income alebo expense; nemení sa. Polia depth, has_children a child_count sa odvodzujú zo stromu a vracajú sa s každou odpoveďou.
Endpointy
/api/v1/categoriescategories:writeVytvorí kategóriu. Pole type je povinné (income/expense), parent_id voliteľné.
Request
curl -X POST "https://monivio.sk/api/v1/categories" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"type": "expense",
"name": "Kancelária",
"icon": "briefcase",
"color": "#3b82f6",
"is_tax_deductible": true
}'Response 201json
{
"data": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"type": "expense",
"name": "Kancelária",
"parent_id": null,
"icon": "briefcase",
"color": "#3b82f6",
"is_tax_deductible": true,
"depth": 0,
"has_children": false,
"child_count": 0,
"created_at": "2026-04-15T10:00:00.000Z"
}
}/api/v1/categoriescategories:readZoznam kategórií. Query parameter type=income alebo type=expense je povinný.
Request
curl "https://monivio.sk/api/v1/categories?type=expense" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Response 200json
{
"data": [
{
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"type": "expense",
"name": "Kancelária",
"parent_id": null,
"icon": "briefcase",
"color": "#3b82f6",
"is_tax_deductible": true,
"depth": 0,
"has_children": false,
"child_count": 0,
"created_at": "2026-04-15T10:00:00.000Z"
}
]
}/api/v1/categories/{id}categories:readDetail jednej kategórie.
Request
curl "https://monivio.sk/api/v1/categories/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Response 200json
{
"data": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"type": "expense",
"name": "Kancelária",
"parent_id": null,
"icon": "briefcase",
"color": "#3b82f6",
"is_tax_deductible": true,
"depth": 0,
"has_children": false,
"child_count": 0,
"created_at": "2026-04-15T10:00:00.000Z"
}
}/api/v1/categories/{id}categories:writeUpdate mena, ikony, farby alebo flagu is_tax_deductible. Pole parent_id v PATCH-i NIE JE podporované — re-parenting cez API zatiaľ nie je možný.
Request
curl -X PATCH "https://monivio.sk/api/v1/categories/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Kancelária a IT",
"color": "#22c55e"
}'Response 200json
{
"data": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"type": "expense",
"name": "Kancelária a IT",
"parent_id": null,
"icon": "briefcase",
"color": "#22c55e",
"is_tax_deductible": true,
"depth": 0,
"has_children": false,
"child_count": 0,
"created_at": "2026-04-15T10:00:00.000Z"
}
}/api/v1/categories/{id}categories:writeVymaže kategóriu. Kategória s podkategóriami alebo priradenými nákladmi sa nedá vymazať (vráti 409).
Request
curl -X DELETE "https://monivio.sk/api/v1/categories/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Objekt Category
idreadonlystring
CUID2 ID s prefixom cat_.
Príklad:
cat_xfzwq2hjkbpr6ny9smtv8d4ltyperequired"income" | "expense"
Druh kategórie. Nemenný po vytvorení. Povinný query parameter pri listingu.
namerequiredstring
Názov kategórie (max 100 znakov).
Príklad:
Kanceláriaparent_idstring/ null
ID rodičovskej kategórie (pre vnorené stromy). Nastavuje sa iba pri vytvorení – PATCH ho neumožňuje meniť, takže re-parenting cez API zatiaľ nie je možný.
depthreadonlynumber
Hĺbka v strome (0 = root, 1 = priama podkategória). Odvodené od parent_id.
Príklad:
0has_childrenreadonlyboolean
True ak má kategória aspoň jednu podkategóriu. Skratka pre child_count > 0.
child_countreadonlynumber
Počet priamych podkategórií tejto kategórie.
Príklad:
3iconstring
Lucide icon name (briefcase, car, ...). Default tag, ak vynecháš.
Príklad:
briefcasecolorstring (#hex)
Farba badge-u (formát #RRGGBB). Default #6b7280, ak vynecháš.
Príklad:
#3b82f6is_tax_deductibleboolean
Či sa zahŕňa do daňových odpočtov (relevantné len pre expense).
created_atreadonlystring (ISO 8601)
Vytvorenie.