Überblick
Die Stampfactory API ist eine REST API und stellt alle Funktionen der Zeiterfassungs- und Personalverwaltungsplattform bereit. Sie ist mandantenfähig: jeder Mandant hat eine eigene Datenbank, und jede Anfrage wird über die Subdomain dem richtigen Mandanten zugeordnet.Basis-URL
Jeder Mandant erreicht die API über seine eigene Subdomain. Der Pfad-Präfix ist immer/rest.
demo lautet die Basis-URL also https://demo.stamp.eu/rest.
Eigene Domains werden unterstützt; auch dort bleibt der Präfix /rest unverändert.
Authentifizierung
Die API nutzt Bearer-Token (Laravel Sanctum). Den Token liefert der Login-Endpunkt. Er muss bei allen weiteren Anfragen im HeaderAuthorization mitgeschickt werden.
Token beziehen
Token verwenden
DELETE /rest/login wird der Token wieder ungültig, GET /rest/login liefert die
angemeldete Person, und PUT /rest/login ändert das eigene Passwort.
Der Terminal-Endpunkt
POST /rest/terminal/{code} ist bewusst ohne Token erreichbar,
damit Hardware-Terminals ohne Anmeldung stempeln können.Datenformate
Die folgenden Formate gelten verbindlich für die gesamte API.Dauerwerte gibt es je nach Feld in zwei Varianten. Für Anzeigen eignet sich der
formatierte String, für Berechnungen der Millisekundenwert mit dem Suffix
_ms. Beide
beschreiben denselben Wert.Arbeitszeit-Flags
Das Feldflags fasst die Eigenschaften eines Arbeitstags als Bitmaske zusammen. Ein Tag
kann mehrere Eigenschaften gleichzeitig tragen, etwa halber Urlaubstag und Feiertag. Die
Prüfung erfolgt per bitweisem UND:
Antwortformat
Erfolgreiche Antworten liefern die fachliche Nutzlast unterdata. Ausgenommen sind die
Stempel-Endpunkte POST /rest/terminal/{code} und /rest/mobile, die aus
Kompatibilitätsgründen ein flaches Objekt zurückgeben.
Listen sind, sofern sie paginiert werden, im Laravel-Paginator-Format aufgebaut und
enthalten neben data zusätzlich links und meta.
Fehlerformat
Alle Fehler mit Status 4xx und 5xx nutzen denselben Envelope. Das Feldtype verweist auf
die passende Stelle in der Fehlerreferenz.
field_errors erscheint nur bei Validierungsfehlern (Status 422). Endpunktspezifische
Zusatzdaten wie warnings, earliest oder code stehen kanonisch in errors[0]._meta;
gleichlautende Felder auf oberster Ebene sind eine Übergangslösung für ältere Clients.
Die request_id entspricht dem Response-Header X-Request-Id und hilft dem Support
dabei, eine konkrete Anfrage wiederzufinden.
Fehlerreferenz
Alle Fehlercodes mit Bedeutung, typischen Auslösern und Beispielantworten.
Berechtigungsmodell
Die API verwendet rollenbasierte Zugriffskontrolle. Jede Benutzerin und jeder Benutzer erhält genau eine Rolle, die bestimmt, auf welche Funktionen Zugriff besteht.Systemrollen
Zusätzlich lassen sich über
POST /rest/roles eigene Rollen mit individuellen
Berechtigungen anlegen.
Berechtigungen
Berechtigungen sind in Funktionsbereiche gegliedert:Sichtbarkeit
Die Sichtbarkeit von Mitarbeitenden richtet sich nach der zugewiesenen Rolle:- Workspace Admin: sieht alle Mitarbeitenden.
- Rollen mit
employees:viewoderemployees:manage: sehen Mitarbeitende der eigenen Organisationseinheit und aller untergeordneten Einheiten. - Rollen ohne diese Berechtigungen: sehen nur die eigenen Daten.
Module
Funktionen lassen sich pro Mandant als Modul aktivieren. Ist ein Modul deaktiviert, antworten die zugehörigen Endpunkte mit Status 403 und dem Codeforbidden. Welche Module
ein Mandant nutzt, liefert GET /rest/ in den Feldern modules und available_modules.
Die Prüfungen nach Arbeitszeitgesetz sind kein Modul. Sie laufen für jeden Mandanten
automatisch mit und lassen sich nicht abschalten.