Zum Hauptinhalt springen

Transaktions-Kategorien

Zweck

Kategorien (Category) sind ein hierarchisches Klassifizierungs-System mit Multi-Scope — eine Kategorie kann gleichzeitig für Transaktionen, Dokumente, Mails und Zeiterfassung genutzt werden. Die Master-Liste wird von FinAPI gepflegt (Sync-Aktion); benutzerdefinierte Kategorien lassen sich darunter ergaenzen.

Voraussetzungen

- Berechtigung `create:Category`. - Für FinAPI-Sync: aktive FinAPI-Anbindung.

Berechtigungen (CASL)

ActionSubjectKeycloak-Rolle
viewFE_Category, Category
create/update/deleteCategoryAPP_SPEAMCORE_CREATE/UPDATE/DELETE_CATEGORY
viewTransaction (Sub-Liste pro Kategorie)APP_SPEAMCORE_VIEW_TRANSACTION (SUB-LISTE PRO KATEGORIE)`

Schritt-für-Schritt-Anleitung

Kategorie anlegen

  1. Transaktions-Kategorien (/transaction-categories) → + Neu.
  2. Name vergeben.
  3. Optional: parentCategoryId setzen — ergibt Hierarchie (sichtbar als Einrueckung in der Liste).
  4. Scopes wählen — pro Kategorie kann ein oder mehrere Bereiche aktiv sein:
    • isTransaction — Buchhaltungsbewegungen.
    • isDocument — Dokumenten-Klassifizierung.
    • isMail — Mail-Tagging.
    • isTimeTracking — Zeiterfassungs-Klassifizierung.
  5. Status auf active.

FinAPI-Sync ausloesen

POST /api/categories/sync triggert einen Massensync von der FinAPI — neue Kategorien werden mit pending-Status angelegt; bestehende werden aktualisiert.

Beim Sync werden `finapiCategoryId` und `isCustom` auf den FinAPI-Stand gesetzt. Diese Felder sind im FE **disabled** und nur durch den Sync veraenderbar.

Listenansicht — transaction-categories

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

UI-Elemente

Button: „Sync (FinAPI)"

Listenseite. Ruft POST /api/categories/sync auf. Toast bei Erfolg/Fehler.

Filter: Pending-only

Listenseite. Toggelt showPendingOnly-State; zeigt nur Kategorien mit status = pending.

Felder und Eingaben

FeldnamePflichtDatentypWirkung beim AusfuellenVoraussetzung
namejaStringAnzeige in der Hierarchie und in Auswahllisten.
parentCategoryIdneinUUID (Self-Ref)Bestimmt die Position in der Hierarchie.Keine Zyklen — Kategorie darf nicht (direkt oder indirekt) ihr eigener Parent sein.
colorneinHex-FarbeUI-Anzeige in Listen und Tags.
sortOrderneinIntegerReihenfolge in der Hierarchie-Anzeige.
statusneinactive/pending/inactivepending ist der Default für neu angelegte Categories vor FinAPI-Sync.
isTransactionneinBoolean (Switch)Bei true: in Transaktions-Auswahl sichtbar.
isDocumentneinBoolean (Switch)Bei true: in Dokumenten-Auswahl sichtbar.
isMailneinBoolean (Switch)Bei true: in Mail-Auswahl sichtbar.
isTimeTrackingneinBoolean (Switch)Bei true: in Zeiterfassungs-Auswahl sichtbar.
finapiCategoryIdInteger (read-only)Quell-ID aus FinAPI. Wird vom Sync gesetzt.
isCustomBoolean (read-only)true = Mandanten-eigene Kategorie.
isSensitiveneinBoolean (Switch)Markiert Kategorien als sensibel — beeinflusst Berichts-Sichtbarkeit (Datenschutz).

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • Transaktionen (/transactions) — Transaction.transactionCategoryId.
  • Dokumenten-Center (/document-center) — Dokumente koennen kategorisiert werden.
  • Mailbox — Mails koennen kategorisiert werden.
  • Zeiterfassung (/employee-time-trackings) — Zeit-Einträge koennen kategorisiert werden.

Häufige Fehler und Lösungen

FehlerLösung
Kategorie nicht in Auswahl sichtbarPassender Scope-Switch (isTransaction etc.) ist false.
pending-Kategorien stapeln sichFinAPI-Sync ausstehend — manuell ausloesen.
FinAPI-Felder lassen sich nicht ändernPer Design read-only — Änderungen passieren nur im Sync.
Kategorie-Auswahl leerKeine active-Kategorie mit dem passenden Scope vorhanden.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/categoriesListeview Category
GET/api/categories/:idDetailview Category
POST/api/categoriesAnlegencreate Category
PATCH/api/categories/:idÄndernupdate Category
DELETE/api/categories/:idSoft-Deletedelete Category
POST/api/categories/syncFinAPI-Syncupdate Category

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.