TimePro API: Best Practices für sichere Integration 2026
24.10.2026 · Zeiterfassung
TimePro API: Best Practices für sichere Integration 2026
*Die digitale Zeiterfassung ist längst nicht mehr nur ein internes Tool – sie ist das Rückgrat moderner Arbeitsprozesse. Die TimePro API ermöglicht Unternehmen, Zeiterfassungsdaten nahtlos in ERP‑Systeme, HR‑Plattformen oder eigene Dashboards zu integrieren. Doch mit großer Macht kommt auch Verantwortung: Die API muss sicher, performant und wartbar sein.*
In diesem Beitrag zeigen wir Ihnen **die wichtigsten Best Practices für eine sichere Integration der TimePro API im Jahr 2026**. Wir gehen auf Authentifizierung, Autorisierung, Verschlüsselung, Rate‑Limiting, Monitoring und mehr ein – und liefern Ihnen am Ende eine praktische Checkliste sowie ein FAQ, das häufige Fragen beantwortet.
---
Inhaltsverzeichnis
1. [Warum sichere API-Integration entscheidend ist](#warum-sichere-api-integration-entscheidend-ist) 2. [Grundlagen der TimePro API](#grundlagen-der-timepro-api) 3. [Authentifizierung: OAuth 2.0 & JWT](#authentifizierung-oauth2--jwt) 4. [Autorisation & Scope‑Management](#autorisation--scope-management) 5. [Transport‑ und Datenverschlüsselung](#transport--und-datenverschlüsselung) 6. [Rate Limiting & Throttling](#rate-limiting--throttling) 7. [Logging, Monitoring & Incident Response](#logging-monitoring--incident-response) 8. [Fehlerbehandlung & Idempotenz](#fehlerbehandlung--idempotenz) 9. [Versionierung und Deprecation‑Strategie](#versionierung-und-deprecation-strategie) 10. [Entwicklungs‑ und Test‑Strategien](#entwicklungs--und-test-strategien) 11. [Checkliste für die sichere Integration](#checkliste-für-die-sichere-integration) 12. [FAQ – häufige Fragen zur TimePro API](#faq) 13. [Call‑to‑Action]---
Warum sichere API-Integration entscheidend ist {#warum-sichere-api-integration-entscheidend-ist}
- **Datenschutz & Compliance**: Zeiterfassungsdaten enthalten personenbezogene Informationen (Arbeitszeiten, Pausen, Projektzuweisungen). In der EU gelten die DSGVO‑Bestimmungen, die strenge Vorgaben für Speicherung, Übertragung und Zugriff stellen.
- **Betriebliche Kontinuität**: Eine unsichere API kann zu Datenverlust, Manipulation oder Systemausfällen führen – das kostet Zeit und Geld.
- **Vertrauensbasis**: Kunden und Partner erwarten, dass Ihre Anwendung die Daten ihrer Mitarbeitenden schützt. Eine lückenlose Sicherheit stärkt das Markenimage.
- **Signatur**: Verwenden Sie das aktuelle Public‑Key‑Set von TimePro (`https://auth.timepro.com/.well-known/jwks.json`).
- **Claims**: `iss` (Issuer), `sub` (Subject), `aud` (Audience) und `exp` (Expiration).
- **Scope**: Der Token muss die für Ihre Anwendung erforderlichen Scopes enthalten (z. B. `timesheets.read`, `timesheets.write`).
</ul>Deshalb sollten Sie die Integration nicht als reines „Feature“, sondern als kritischen Sicherheitsaspekt Ihres IT‑Stacks behandeln.
---
Grundlagen der TimePro API {#grundlagen-der-timepro-api}
| Merkmal | Beschreibung |
|---------|--------------|
| **Protokoll** | RESTful über HTTPS (TLS 1.3 empfohlen) |
| **Datenformat** | JSON (UTF‑8) |
| **Authentifizierung** | OAuth 2.0 Authorization‑Code‑Flow + JWT‑Access‑Token |
| **Rate Limits** | 500 Requests pro Minute pro Client‑ID (Standard) |
| **Endpoints** | `/v1/timesheets`, `/v1/employees`, `/v1/projects`, `/v1/reports` |
| **Versionierung** | Pfad‑basiert (`/v1/`, `/v2/`) – Rückwärtskompatibilität bis 2024 garantiert |
Die API folgt den gängigen REST‑Prinzipien: Ressourcenorientierte URLs, stateless Requests und klare HTTP‑Statuscodes. Für 2026 wurden zusätzliche Sicherheits‑Header eingeführt (z. B. `Content‑Security‑Policy`, `Strict-Transport-Security`).
---
Authentifizierung: OAuth 2.0 & JWT {#authentifizierung-oauth2--jwt}
1. OAuth 2.0 Authorization‑Code‑Flow
Der empfohlene Flow für server‑seitige Integrationen ist der **Authorization‑Code‑Flow**:
1. **Client‑Registrierung**: Legen Sie im TimePro‑Portal eine Anwendung an → erhalten Sie `client_id` und `client_secret`.
2. **Authorization Request**: Weiterleitung des Users an `https://auth.timepro.com/authorize` mit den Parametern `response_type=code`, `scope=...`, `redirect_uri=...`.
3. **Code‑Austausch**: Der erhaltene `code` wird serverseitig gegen ein **Access‑Token** ausgetauscht (`POST /token`).
4. **Token‑Speicherung**: Access‑Token (kurzlebig, z. B. 15 Minuten) und Refresh‑Token (länger, z. B. 30 Tage) sicher in einer verschlüsselten Datenbank speichern.
> **Tip:** Verwenden Sie **PKCE** (Proof Key for Code Exchange) selbst bei server‑seitigen Anwendungen, um die Gefahr von Code‑Injection zu reduzieren.
2. JSON Web Token (JWT)
Access‑Tokens werden als **JWT** ausgegeben. Prüfen Sie beim Empfang:
</ul>**Best Practice:** Implementieren Sie ein **Token‑Caching** mit kurzer TTL und prüfen Sie das `exp`‑Claim bei jedem Request. Verwerfen Sie abgelaufene Tokens sofort und fordern Sie ein neues Refresh‑Token an.
---
Autorisation & Scope‑Management {#autorisation--scope-management}
Rollen‑basiertes Zugriffskonzept (RBAC)
TimePro unterstützt **Rollen** (Admin, Manager, Mitarbeiter) und **Scopes**. Kombinieren Sie beides, um das Prinzip der minimalen Rechte (Least Privilege) umzusetzen:
| Rolle | Empfohlene Scopes |
|-------|-------------------|
| Admin | `employees.read`, `employees.write`, `timesheets.*`, `reports.*` |
| Manager | `employees.read`, `timesheets.read`, `timesheets.write`, `reports.read` |
| Mitarbeiter | `timesheets.read`, `timesheets.write` |
Scope‑Validierung im Code
def has_scope(token, required_scope):
token_scopes = token.get('scope', '').split()
return required_scope in token_scopes
Setzen Sie die Prüfung **vor** jeder Geschäftslogik ein. Loggen Sie fehlgeschlagene Autorisierungsversuche mit IP‑Adresse und User‑Agent.---
Transport- und Datenverschlüsselung {#transport--und-datenverschlüsselung}
1. **TLS 1.3 obligatorisch** – Ältere Protokolle (TLS 1.0/1.1) werden von TimePro ab 2025 nicht mehr unterstützt.
2. **HSTS (Strict‑Transport‑Security)** – Konfigurieren Sie Ihren Server mit `max-age=31536000; includeSubDomains; preload`.
3. **Cipher Suites** – Verwenden Sie nur moderne Cipher Suites (AES‑256‑GCM, ChaCha20‑Poly1305).
4. **At‑Rest‑Verschlüsselung** – Speichern Sie sensible Daten (Refresh‑Tokens, Kundendaten) mit AES‑256‑GCM in Ihrer Datenbank.
5. **End‑to‑End‑Signatur** – Für besonders kritische Payloads (z. B. Lohnabrechnungen) können Sie zusätzlich eine digitale Signatur (RSA‑2048) über den JSON‑Body legen.
> **Hinweis:** Prüfen Sie regelmäßig die **SSL‑Labs**‑Bewertung Ihrer Domain und aktualisieren Sie Zertifikate automatisiert über ACME (Let’s Encrypt) oder einen kommerziellen Anbieter.
---
Rate Limiting & Throttling {#rate-limiting--throttling}
Warum Rate Limiting wichtig ist
- Schutz vor **Denial‑of‑Service**‑Angriffen.
- Verhindert **Datenbank‑Überlastung** bei massiven Import‑Jobs.
- Gewährleistet **fairen Zugriff** für alle Kunden.
</ul><h3>Implementierung</h3>
| Ebene | Maßnahme |
|------|----------|
| **Client‑seitig** | Exponential Backoff bei 429‑Responses (`Retry-After` Header beachten). |
| **Server‑seitig** | Verwenden Sie ein Token‑Bucket‑Algorithmus (z. B. Redis‑basiert) pro `client_id`. |
| **Globale Limits** | 500 Requests/minute (Standard). Für Großkunden können individuelle Limits über das Partner‑Portal vereinbart werden. |
**Beispiel für Exponential Backoff (JavaScript):**</code></pre>js
let retry = 0;
async function callApi() {
try {
const res = await fetch(url, options);
if (res.status === 429) {
const wait = Math.pow(2, retry) * 1000; // ms
await new Promise(r => setTimeout(r, wait));
retry++;
return callApi();
}
return await res.json();
} catch (e) {
console.error(e);
}
}
---
Logging, Monitoring & Incident Response {#logging-monitoring--incident-response}
1. Strukturierte Logs
- **Format**: JSON‑Logs mit Feldern `timestamp`, `level`, `client_id`, `endpoint`, `status_code`, `response_time_ms`.
- **Sensitive Daten**: Maskieren Sie Token, persönliche Identifikatoren (PII) – z. B. `token: "***"`.
</ul><h3>2. Monitoring</h3>
- **Metriken**: Request‑Rate, Fehler‑Rate (4xx/5xx), Latenz, Token‑Refresh‑Fehler.
- **Tools**: Prometheus + Grafana, Datadog, Elastic Stack.
- **Alerting**: Schwellenwert‑basiert (z. B. >5 % 5xx‑Fehler über 5 Minuten → Slack‑Alarm).
</ul><h3>3. Incident Response</h3>
| Schritt | Aktion |
|--------|--------|
| **Erkennung** | Automatischer Alert → Incident‑Ticket (Jira/ServiceNow). |
| **Einschätzung** | Prüfen, ob es ein interner Fehler, ein Missbrauch oder ein externes Problem ist. |
| **Containment** | Temporäres Blockieren des betroffenen `client_id` über das Admin‑Portal. |
| **Ermittlung** | Analyse der Logs, Prüfung von IP‑Adressen, Rate‑Limits. |
| **Behebung** | Patchen, Token‑Invalidierung, Kommunikation an betroffene Kunden. |
| **Nachbereitung** | Post‑mortem‑Bericht, Update der SOPs. |
---
Fehlerbehandlung & Idempotenz {#fehlerbehandlung--idempotenz}
HTTP‑Statuscodes korrekt nutzen
| Code | Bedeutung | Empfohlene Aktion |
|------|-----------|-------------------|
| 200 OK | Erfolgreiche GET/PUT | Weiterverarbeiten |
| 201 Created | Ressource erstellt | Return Location‑Header |
| 400 Bad Request | Ungültige Parameter | Fehlermeldung an Client |
| 401 Unauthorized | Ungültiges/abgelaufenes Token | Refresh‑Token anfordern |
| 403 Forbidden | Fehlende Scopes | Hinweis auf Berechtigungsanpassung |
| 404 Not Found | Ressource nicht vorhanden | Optionales Retry bei temporärer Erstellung |
| 429 Too Many Requests | Rate Limit überschritten | Exponential Backoff |
| 500 Internal Server Error | Server‑Fehler | Retry mit begrenztem Versuch |
Idempotente Endpoints
- **GET**, **HEAD**, **DELETE** sind per Definition idempotent.
- **POST** für Zeiteinträge sollte **Idempotency‑Key** unterstützen (`X-Idempotency-Key` Header).
</ul>**Beispiel:**
```http
POST /v1/timesheets HTTP/1.1
Authorization: Bearer <access_token>
Content-Type: application/json
X-Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000
{
"employee_id": "E001",
"project_id": "P100",
"start": "2026-10-24T08:00:00Z",
"end": "2026-10-24T12:00:00Z"
}
Der Server speichert den Key und gibt bei Wiederholungen dieselbe Response zurück, ohne doppelte Zeiteinträge zu erzeugen.
---
Versionierung und Deprecation‑Strategie {#versionierung-und-deprecation-strategie}
1. **Semantische Versionierung** (MAJOR.MINOR.PATCH).
2. **Pfad‑basiert**: `/v1/`, `/v2/`. Kunden müssen explizit auf eine neue Version migrieren.
3. **Deprecation‑Hinweise**:
- 90 Tage Vorankündigung per E‑Mail und im Developer‑Portal.
- `Deprecation`‑Header in Antworten (`Deprecation: true; sunset="2027-04-01"`).
4. **Migrations‑Guide**: Dokumentieren Sie Breaking Changes, Beispiel‑Requests und automatisierte Tests.
Durch klare Kommunikation vermeiden Sie Überraschungen und erhalten das Vertrauen Ihrer Integrationspartner.
---
Entwicklungs‑ und Test‑Strategien {#entwicklungs--und-test-strategien}
1. Lokale Mock‑Server
- Nutzen Sie OpenAPI‑Spec von TimePro, um mit **Prism** oder **WireMock** Mock‑Endpoints zu erstellen.
- Simulieren Sie Fehler (429, 401) und Edge Cases.
</ul><h3>2. CI/CD‑Pipeline</h3>
| Stufe | Tool | Aufgabe |
|-------|------|----------|
| **Static Code Analysis** | SonarQube | Sicherheits‑ und Qualitäts‑Checks |
| **Unit Tests** | Jest / PHPUnit | Prüfung von Token‑Parsing, Scope‑Checks |
| **Integration Tests** | Postman/Newman | End‑to‑End‑Calls gegen Sandbox‑Umgebung |
| **Security Scans** | OWASP ZAP, Snyk | Schwachstellen‑Scanning |
| **Deployment** | GitHub Actions / GitLab CI | Automatisiertes Rollout mit Blue‑Green‑Strategie |
3. Sandbox‑Umgebung von TimePro
- Verwenden Sie die **TimePro Sandbox** (`api.sandbox.timepro.com`) für realistische Daten, ohne Produktionsdaten zu gefährden.
- Beachten Sie, dass Rate Limits in der Sandbox 2× niedriger sind – planen Sie Ihre Tests entsprechend.
</ul><h3>4. Contract Testing</h3>
- **Pact** oder **OpenAPI‑Validator** stellen sicher, dass Ihre Implementierung stets mit der API‑Spezifikation übereinstimmt.
</ul>---
Checkliste für die sichere Integration {#checkliste-für-die-sichere-integration}
- [ ] **OAuth 2.0** korrekt implementiert (Authorization‑Code‑Flow + PKCE)
- [ ] **JWT**‑Signatur und Claims validiert
- [ ] **Scope‑Management** nach Least‑Privilege-Prinzip
- [ ] **TLS 1.3** und moderne Cipher Suites konfiguriert
- [ ] **HSTS** Header gesetzt (`max-age=31536000; includeSubDomains; preload`)
- [ ] **At‑Rest‑Verschlüsselung** für Tokens und personenbezogene Daten
- [ ] **Rate Limiting** sowohl client‑ als auch serverseitig implementiert
- [ ] **Exponential Backoff** bei 429‑Responses integriert
- [ ] **Strukturierte JSON‑Logs** ohne PII
- [ ] **Monitoring** (Metriken, Alerts) eingerichtet
- [ ] **Incident‑Response‑Plan** dokumentiert und getestet
- [ ] **Idempotency‑Key** bei POST‑Requests verwendet
- [ ] **Versionierung** beachtet und Deprecation‑Hinweise geprüft
- [ ] **Automatisierte Tests** (Unit, Integration, Contract) im CI/CD‑