Externe API-Integration
Diese Seite beschreibt die API-Endpunkte für externe Systeme (z. B. Integrationen oder Partnerdienste), die mit der gleichen API-Schlüssel-Authentifizierung arbeiten wie die Terminals.
Authentifizierung (API-Schlüssel-Flow)
- API-Schlüssel beschaffen
-
Ein Administrator erstellt einen API-Schlüssel im System (Client-ID und Secret).
-
Access-Token erhalten
- Endpoint:
POST /api/auth/api - Body:
{ "id": "<clientId>", "secret": "<clientSecret>" } -
Response:
{ "access_token": "<jwt>", "refresh_token": "<refresh-token>", "expires_in": 3600 } -
API-Aufrufe autorisieren
- Header:
Authorization: Bearer <access_token>
Refresh-Token nutzen
Access-Tokens laufen nach expires_in Sekunden ab. Verwenden Sie das Refresh-Token, um ein neues
Access-Token zu erhalten:
- Endpoint:
POST /api/auth/refresh - Body:
{ "refreshToken": "<refresh-token>" } - Response:
{ "access_token": "<jwt>", "expires_in": 3600 }
Hinweis: Alternativ kann das Refresh-Token (falls vorhanden) auch als Cookie übermittelt werden.
Arbeitszeit-Summen pro Nutzer abrufen
Der Endpoint liefert für einen Nutzer die Soll-, Pausen- und Arbeitsminuten sowie Abwesenheiten inklusive Abwesenheitsgrund für ein einzelnes Datum oder einen Datumsbereich.
- Endpoint:
GET /api/working-days/api/summary - Auth:
Authorization: Bearer <access_token> - Query-Parameter:
email(Pflicht): E-Mail-Adresse des ZielnutzersstartDate(Pflicht): Startdatum im FormatYYYY-MM-DDendDate(Optional): Enddatum im FormatYYYY-MM-DD(Standard:startDate)
Beispiel
GET /api/working-days/api/summary?email=user@example.com&startDate=2024-03-01&endDate=2024-03-31
Response
[
{
"date": "2024-03-01",
"targetMinutes": 480,
"pauseMinutes": 30,
"workingMinutes": 450,
"absenceValue": 480,
"absenceReason": {
"id": 3,
"name": "Krankheit",
"description": "Optionaler Beschreibungstext."
}
}
]