Entwicklung

Die Absensio-API

Eine REST-Schnittstelle über HTTPS, JSON in beide Richtungen, Authentifizierung per Bearer-Token. Verfügbar ab dem Professional-Tarif.

https://api.absensio.de/v1Version 1, stabil

Token erzeugen und mitsenden

Einen API-Token legen Sie unter Einstellungen › Integrationen an. Der Token gehört zu Ihrem Mandanten und trägt eine eigene Rolle – vergeben Sie ihm nur die Rechte, die er tatsächlich braucht.

Anfrage
curl https://api.absensio.de/v1/time-entries \
  -H "Authorization: Bearer abs_live_7f3a…" \
  -H "Content-Type: application/json" \
  -G --data-urlencode "from=2026-08-01" \
     --data-urlencode "to=2026-08-31"

Antwortformat

Listen kommen unter data zurück, die Blätterung unter meta. Zeitstempel sind ISO 8601 mit Zeitzone, Dauern in Minuten.

Antwort · 200
{
  "data": [
    {
      "id": "te_01J9X2K…",
      "user_id": "usr_01J8A1B…",
      "project_id": "prj_01J7C4D…",
      "started_at": "2026-08-14T08:02:00+02:00",
      "ended_at":   "2026-08-14T16:31:00+02:00",
      "break_minutes": 45,
      "billable": true,
      "status": "approved"
    }
  ],
  "meta": { "total": 214, "page": 1, "per_page": 50 }
}
Referenz

Endpunkte

Alle Endpunkte erwarten und liefern JSON. Fehler kommen mit passendem HTTP-Status und einem Feld „error“ im Klartext.

Zeiten

  • GET/v1/time-entriesZeitbuchungen abrufen, filterbar nach Person, Projekt und Zeitraum
  • POST/v1/time-entriesZeitbuchung anlegen
  • PATCH/v1/time-entries/{id}Buchung korrigieren; erzeugt einen Eintrag im Audit-Log
  • DELETE/v1/time-entries/{id}Buchung entfernen, sofern noch nicht genehmigt

Abwesenheiten

  • GET/v1/absencesAbwesenheiten und Anträge abrufen
  • POST/v1/absencesAntrag im Namen einer Person stellen
  • POST/v1/absences/{id}/approvalAntrag genehmigen oder ablehnen

Projekte

  • GET/v1/projectsProjekte mit Budget und Verbrauch abrufen
  • POST/v1/projectsProjekt anlegen
  • GET/v1/projects/{id}/membersZugeordnete Personen abrufen

Personen

  • GET/v1/usersAktive Zugänge mit Rolle und Arbeitszeitmodell
  • POST/v1/usersPerson einladen
  • PATCH/v1/users/{id}Rolle, Modell oder Status ändern

Webhooks

Statt regelmäßig abzufragen, lassen Sie sich benachrichtigen. Jede Zustellung ist mit HMAC-SHA256 signiert; die Signatur steht im Header X-Absensio-Signature. Fehlgeschlagene Zustellungen werden über 24 Stunden erneut versucht.

  • time_entry.createdEine Zeitbuchung wurde angelegt
  • time_entry.correctedEine Buchung wurde nachträglich geändert
  • absence.requestedEin Abwesenheitsantrag wurde gestellt
  • absence.approvedEin Antrag wurde genehmigt
  • compliance.violationEine Prüfung nach Arbeitszeitgesetz hat angeschlagen
  • project.budget_warningEin Projekt hat die Warnschwelle erreicht

Grenzen und Fehler

Pro Token sind 600 Anfragen je Minute zulässig. Der verbleibende Rest steht in jedem Antwort-Header.

Antwort · 429
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
Retry-After: 27

{ "error": "Zu viele Anfragen. Bitte in 27 Sekunden erneut versuchen." }
400
Eingabe unvollständig oder ungültig
401
Token fehlt, ist abgelaufen oder wurde widerrufen
403
Token hat für diese Aktion keine Berechtigung
404
Objekt existiert nicht in diesem Mandanten
409
Konflikt, etwa überlappende Zeitbuchungen
422
Verstoß gegen eine Arbeitszeitregel

Etwas fehlt in der Schnittstelle?

Schreiben Sie uns, welchen Anwendungsfall Sie abbilden möchten. Wir richten Ihnen einen Testmandanten ein und melden zurück, ob und wann ein Endpunkt dafür entsteht.

Anwendungsfall schildern