Skip to main content
Una transacción tiene cero o una categoría (0..1). Las categorías son jerárquicas y se identifican por su ruta completa "Padre / Hijo / Nieto".

Ruta, no ID (al escribir)

Al crear/editar una transacción o un presupuesto, pasas la categoría como ruta:
Si la ruta no existe, se crea al vuelo (con sus padres). Así no necesitas resolver IDs para capturar rápido. En las respuestas, cada categoría trae su id, su name (ruta completa) y su emoji.

Tipo: ingreso o gasto

Cada categoría es de ingreso o de gasto (kind). La raíz define el tipo y los hijos lo heredan. Una categoría de ingreso no puede usarse en un gasto y viceversa.

Emoji

Las categorías tienen un emoji (CAT-010). En el ref de categoría de cada transacción, el emoji se hereda del ancestro más cercano que tenga uno (así “Gastos / Comida / Súper” muestra el 🛒 de “Comida” aunque “Súper” no tenga el suyo).

Endpoints

AcciónEndpoint
ListarGET /v1/categories (lista plana con parentId; el árbol se arma en el cliente)
CrearPOST /v1/categories (nombre o cadena “Padre / Hijo”)
Renombrar / moverPATCH /v1/categories/{id}
Archivar / restaurarPOST /v1/categories/{id}/archive · /restore
Archivar saca la categoría (y su subárbol) de los selectores pero conserva el historial de reportes. Reusar el nombre la revive.