Schnittstellen
REST-API
Punchify bietet unter https://<Ihre Domain>/api/v1 eine REST-API, z. B. für Lohnbüro, Auswertungen oder eigene Programme. Die vollständige Beschreibung (OpenAPI) steht unter https://<Ihre Domain>/api/v1-docs.
Anmeldung mit der Kopfzeile:
Authorization: Bearer <API-Schlüssel oder OAuth-Token>
Verfügbare Bereiche:
| Recht | Inhalt |
|---|---|
people:read |
Personen lesen |
entries:read |
Buchungen lesen |
entries:write |
Buchungen anlegen |
account:read |
Monat und Saldo lesen |
absences:read |
Abwesenheiten lesen |
projects:read |
Kunden und Projekte lesen |
reports:read |
Projektbericht lesen |
Beispiel:
curl -H "Authorization: Bearer $PUNCHIFY_API_KEY" https://zeit.ihrefirma.de/api/v1/people
API-Schlüssel
Unter Firma → Schnittstellen legt ein Admin Schlüssel mit ausgewählten Rechten und Ablaufdatum an. Der Schlüssel wird nur einmal angezeigt; er lässt sich jederzeit widerrufen.
OAuth 2.0 für Apps
Programme anderer Anbieter verbinden sich per OAuth 2.0 (Authorization Code mit PKCE). Ein Admin registriert die App unter Firma → Schnittstellen → Apps; die Person stimmt beim ersten Verbinden auf einer Zustimmungsseite zu. Unter Einstellungen → Verbundene Apps lassen sich Freigaben widerrufen. Adressen: /oauth/authorize, /oauth/token, /oauth/revoke. Access-Tokens gelten eine Stunde, Refresh-Tokens 60 Tage.
Webhooks
Punchify meldet ausgewählte Ereignisse sofort per HTTPS an andere Systeme:
punch, entry.created, entry.updated, entry.deleted, absence.requested, absence.created, absence.approved, absence.rejected, absence.cancelled, month.closed, month.reopened
Jede Zustellung ist per HMAC-SHA256 signiert (Kopfzeile X-Punchify-Signature, Geheimnis wird beim Anlegen einmal angezeigt). Fehlgeschlagene Zustellungen werden über etwa einen Tag wiederholt; nach 50 Fehlschlägen in Folge wird der Webhook abgeschaltet. Ein Zustellprotokoll und „Test senden“ helfen beim Einrichten.
Datenübernahme
Unter Firma → Datenübernahme übernehmen Admins Buchungen aus einem anderen System – als CSV oder Excel (.xlsx), eine Zeile je Arbeitsblock:
| Spalte | Pflicht | Beispiel |
|---|---|---|
| Person (E-Mail oder Name) | ja | anna@firma.de |
| Datum | ja | 03.11.2026 |
| Beginn | ja | 07:30 |
| Ende | ja | 16:00 |
| Pause (Minuten oder h:mm) | nein | 30 |
| Art (Arbeit, außer Haus, Reise) | nein | Arbeit |
| Projekt | nein | Umbau Müller |
| Notiz | nein |
Punchify erkennt die Spalten an üblichen Überschriften, zeigt eine Vorschau mit Fehlern je Zeile und übernimmt nur fehlerfreie Zeilen. Eine Pause wird in die Mitte des Blocks gelegt; endet ein Block vor seinem Beginn, geht er über Mitternacht. Eine Übernahme lässt sich rückgängig machen.