Endpunkte
Alle Pfade unter /api/v1. Die verbindliche Beschreibung mit jedem Feld steht unter /api/docs.
Anmeldung
| Methode | Pfad | Recht |
|---|
| POST | /auth/register | öffentlich |
| POST | /auth/login | öffentlich |
| POST | /auth/refresh | öffentlich |
| POST | /auth/logout | öffentlich |
| POST | /auth/forgot-password | öffentlich |
| POST | /auth/reset-password | öffentlich |
| POST | /auth/change-password | angemeldet |
| GET | /auth/me | angemeldet |
| PATCH | /auth/me | angemeldet |
| PATCH | /auth/me/locale | angemeldet |
Zeiterfassung
| Methode | Pfad | Recht |
|---|
| GET | /time-entries/refs | time_entry:read |
| POST | /time-entries/clock-in | time_entry:create |
| POST | /time-entries/clock-out | time_entry:create |
| POST | /time-entries/break/start | time_entry:create |
| POST | /time-entries/break/end | time_entry:create |
| POST | /time-entries/:id/breaks | time_entry:create |
| POST | /time-entries/manual | time_entry:create |
| GET | /time-entries/status/:employeeId | time_entry:read |
| GET | /time-entries | time_entry:read |
| PATCH | /time-entries/:id | time_entry:create |
| DELETE | /time-entries/:id | time_entry:create |
| PATCH | /time-entries/:id/approve | time_entry:approve |
| PATCH | /time-entries/:id/reject | time_entry:approve |
Korrigieren und Löschen hängen bewusst an time_entry:create: Mitarbeiter haben time_entry:update nicht; hinge beides daran, könnten sie ihre eigenen Zeiten nicht berichtigen. Der Dienst begrenzt beides auf die eigene, noch nicht genehmigte Buchung.
Projektzeiten und Planung
| Methode | Pfad | Recht |
|---|
| GET | /projects/time/running | time_entry:read |
| POST | /projects/time/start | time_entry:create |
| POST | /projects/time/switch | time_entry:create |
| POST | /projects/time/stop | time_entry:create |
| POST | /projects/time/manual | time_entry:create |
| POST | /projects/time/:id/stop | time_entry:create |
| GET | /projects/time/vergessen | time_entry:read |
| GET | /projects/time | time_entry:read |
| GET | /projects/time.pdf | time_entry:read |
| PATCH | /projects/time/:id | time_entry:create |
| DELETE | /projects/time/:id | time_entry:create |
| PATCH | /projects/time/:id/approve | time_entry:approve |
| PATCH | /projects/time/:id/reject | time_entry:approve |
| GET | /projects/evaluation | controlling:read |
| GET, POST | /projects/schedules | project:read / project:create |
| POST | /projects/schedules/:id/status | project:read |
| PATCH, DELETE | /projects/schedules/:id | project:update / project:delete |
| GET, POST | /projects | project:read / project:create |
| PATCH, DELETE | /projects/:id | project:update / project:delete |
Zeitkonten
| Methode | Pfad | Recht |
|---|
| GET | /time-accounts | time_account:read |
| GET | /time-accounts/me | angemeldet |
| GET | /time-accounts/me/detail | time_account:read_self |
| GET | /time-accounts/me/ledger | time_account:read_self |
| GET | /time-accounts/:employeeId | time_account:read |
| GET | /time-accounts/:employeeId/ledger | time_account:read |
| POST | /time-accounts/:employeeId/corrections | time_account:update |
| POST | /time-accounts/:employeeId/payouts | time_account:update |
| POST | /time-accounts/:employeeId/close | time_account:approve |
| POST | /time-accounts/:employeeId/reopen | time_account:approve |
| PATCH | /time-accounts/:employeeId/limits | time_account:update |
Abwesenheiten
| Methode | Pfad | Recht |
|---|
| GET | /absences/types | leave:read |
| GET | /absences/me/overview | leave:create |
| GET | /absences/overview | leave:read + employee:read |
| GET | /absences/overview/:employeeId | leave:read + employee:read |
| POST | /absences/carry-over | leave:approve + employee:write |
| GET, POST | /absences/leave | leave:read / leave:create |
| PATCH | /absences/leave/:id/approve | leave:approve |
| PATCH | /absences/leave/:id/reject | leave:approve |
| PATCH | /absences/leave/:id/cancel | leave:create |
| GET, POST | /absences/sickness | sickness:read / sickness:create |
| PATCH | /absences/sickness/:id | leave:approve |
Berichte und Auswertungen
| Methode | Pfad | Recht |
|---|
| GET | /reports/time | report:read |
| GET | /reports/time.csv | report:export |
| GET | /reports/time.pdf | report:export |
| GET | /reports/time-account | report:read |
| GET | /profitability/employee | profitability:read |
| POST | /profitability/snapshot | profitability:create |
| GET | /compliance/violations | report:read |
| GET | /compliance/balance | report:read |
| POST | /compliance/balance/run | report:update |
| PATCH | /compliance/violations/:id/resolve | report:update |
| GET | /compliance/report | report:read |
| GET | /dashboard/me | angemeldet |
| GET | /dashboard/overview | dashboard:overview |
Stammdaten
/employees, /departments, /locations, /positions, /cost-centers, /work-time-models, /shifts folgen demselben Muster: Lesen mit employee:read, Anlegen mit employee:create, Ändern mit employee:update, Löschen mit employee:delete (bei Schichten shift:*).
/costs führt Kostenarten, Kostenbestandteile je Mitarbeiter, Gemeinkosten und Verrechnungssätze unter cost:*.
Verwaltung und System
| Methode | Pfad | Recht |
|---|
| GET, PUT | /settings | settings:read / settings:update |
| DELETE | /settings/tenant/:id | * |
| GET | /settings/tenant-deletions | audit:read |
| GET | /roles, /roles/:id | tenant:read |
| GET, POST, PATCH, DELETE | /users… | tenant:read / tenant:update |
| GET, POST, DELETE | /api-keys… | api:read / api:create / api:delete |
| GET | /audit-logs | audit:read |
| GET | /audit-logs/verify | audit:read |
| GET, POST, PATCH, PUT, DELETE | /privacy… | gdpr:* |
| GET, PATCH | /notifications… | angemeldet |
| GET | /health, /ready | öffentlich |
| GET | /license/status | öffentlich |