Zum Inhalt

Abwesenheiten

Abruf von Abwesenheitsperioden

Information Wert
Verfügbar in Planerio-Versionen 1.5 / 2.0
Verfügbar über Technisches Login ja
Verfügbar über Browser nein
Endpunkt-Pfad /planerio/absences/api/external/tokenapi/aaa-bbb-ccc/absencePeriods

Für den Datenabruf benötigen Sie ein im Abschnitt Konfiguration erstelltes Schichtgruppen-Token. Die URL lautet:

https://<host>/planerio/absences/api/external/tokenapi/aaa-bbb-ccc/absencePeriods

Ersetzen Sie aaa-bbb-ccc durch das entsprechende Schichtgruppen-Token und hängen Sie die folgenden Query-Parameter an. Leiten Sie den ersten Parameter mit ? und alle weiteren Parameter mit & ein.

Parameter Beschreibung
startDate=2023-02-01 Beginn des Zeitraums, für den Abwesenheiten abgerufen werden. Geben Sie das Datum im Format YYYY-MM-DD an, z. B. 2020-12-31 für den 31. Dezember 2020. Das Jahr muss zwischen 2000 und 2099 liegen.
endDate=2023-02-28 Ende des Zeitraums, für den Abwesenheiten abgerufen werden.
Die Antwort enthält alle Abwesenheiten, die sich mit dem angegebenen Zeitraum überschneiden.

Folgende Parameter stehen optional zur Verfügung:

Parameter Beschreibung
includeDeleted=1 Schließt gelöschte Abwesenheiten ein, beispielsweise für eine kontinuierliche Synchronisierung. Standardmäßig werden sie nicht zurückgegeben.
includeOpen=1 Schließt Abwesenheiten ein, die noch auf eine Genehmigung warten. Standardmäßig werden nur genehmigte Abwesenheiten zurückgegeben.
includeRejected=1 Schließt abgelehnte Abwesenheiten ein.
updatedAfter=2020-07-01 Beschränkt das Ergebnis auf Abwesenheiten, die nach einem Stichtag geändert wurden. Dies eignet sich für differenzielle Synchronisierungen. Geben Sie das Datum im Format YYYY-MM-DD an.
includeDays=1 Ergänzt die Antwort um eine Aufschlüsselung nach Tagen. Dadurch ändert sich die Struktur der Antwort: Für jeden Kalendertag einer Abwesenheit wird ein Datensatz zurückgegeben, der zusätzlich Arbeitszeitinformationen wie cost_in_days, cost_in_hours, day_segment, is_counted_as_planned und shift_ids enthält.

Folgende Daten sind enthalten (jeweils ein JSON-Objekt pro Abwesenheitsperiode):

Feldname Beschreibung
unique_absence_id Planerio-systemweit eindeutige ID der Abwesenheitsperiode
employee_uuid Planerio-systemweit eindeutige ID des Mitarbeiters
employee_personnel_number Personalnummer des Mitarbeiters
employee_external_id Wurde der Mitarbeiter über den Stammdatenimport angelegt, enthält dieses Feld die uniqueId, die ihn im externen System identifiziert.
date_from Startdatum der Abwesenheitsperiode im Format YYYY-MM-DD in der Zeitzone des Kunden
date_to Enddatum der Abwesenheitsperiode (date_to >= date_from) im Format YYYY-MM-DD in der Zeitzone des Kunden
time_from Startzeit im Format HH:MM für untertägige Abwesenheiten; andernfalls leer
time_to Endzeit im Format HH:MM für untertägige Abwesenheiten; andernfalls leer
amount_calendardays Anzahl Kalendertage
amount_workingdays Anzahl der Arbeitstage dieser Abwesenheit, berechnet aus dem Arbeitszeitprofil des Mitarbeiters
status Folgende Status sind möglich:
- ACCEPTED – Abwesenheit ist genehmigt und damit gültig und aktiv.
- DELETED – Abwesenheit wurde gelöscht.
- OPEN – Abwesenheit wartet auf Genehmigung.
- REJECTED – Abwesenheit wurde nicht genehmigt.
Grundsätzlich ist der Übergang von jedem Status in jeden anderen möglich.
updated_at Änderungszeitstempel im RFC-3339-Format (kompatibel mit ISO 8601).
Das Feld wird bei jeder relevanten Änderung der Abwesenheit aktualisiert. Es kann jedoch auch ohne benutzerausgelöste Änderung relevanter Parameter einen neuen Zeitstempel erhalten, beispielsweise bei einem Software-Upgrade.
comment Kommentar, sofern vorhanden
absence_type_key Exportschlüssel des Abwesenheitstyps, z. B. Lohnbuchhaltungscode
absence_title Name des Abwesenheitstyps
absence_custom_title Benutzerdefinierter Name des Abwesenheitstyps, sofern vorhanden
created_at Erstellungszeitstempel im RFC3339-Format (kompatibel mit ISO 8601)
employee_tenant_number Mandantennummer des Mitarbeiters (sofern vorhanden)
employee_cost_center Kostenstelle des Mitarbeiters (sofern vorhanden)

Perioden, die über den unten beschriebenen Import von Abwesenheitsperioden angelegt wurden und daher extern verwaltet werden, gibt dieser Endpunkt nicht zurück.


Import von Abwesenheitsperioden

Information Wert
Verfügbar in Planerio-Versionen nur 1.5, nicht in 2.0
Verfügbar über Technisches Login ja
Verfügbar über Browser ja
Endpunkt-Pfad /integrations/tokenapi/v1/aaa-bbb-ccc/absencePeriod

Über diesen Endpunkt können Sie Abwesenheitsperioden in Planerio anlegen. Die entsprechenden Abwesenheitstypen müssen bereits in Planerio vorhanden sein. Importierte Abwesenheitsperioden sind in Planerio sichtbar, können dort aber weder von Benutzern noch von Administratoren genehmigt, bearbeitet oder gelöscht werden.

Die URL des Endpunkts lautet:

https://<host>/integrations/tokenapi/v1/aaa-bbb-ccc/absencePeriod

Ersetzen Sie aaa-bbb-ccc durch das entsprechende Schichtgruppen-Token (siehe Abschnitt Konfiguration).

Abwesenheiten können nur für Mitarbeiter angelegt, geändert oder gelöscht werden, deren primäre Schichtgruppe mit dem verwendeten Schichtgruppen-Token verknüpft ist. Dadurch lässt sich der Zugriff auf bestimmte Schichtgruppen beschränken.

Anlegen und Aktualisieren (POST)

Folgende Parameter stehen zur Verfügung:

Feldname Beschreibung
unique_absence_id Zeichenfolge mit bis zu 255 Zeichen, die die Abwesenheitsperiode eindeutig identifiziert. Existiert in Planerio bereits eine Periode mit derselben ID, wird sie überschrieben; andernfalls wird eine neue Periode angelegt.
Empfehlung: Verwenden Sie den Primärschlüssel der Abwesenheitsperiode im Drittsystem, bei Bedarf gekürzt als Hashwert oder UUIDv5. Groß- und Kleinschreibung werden ignoriert.
absence_type_key Exportschlüssel des Abwesenheitstyps, z. B. Lohnbuchhaltungscode
employee_external_id Wurde der Mitarbeiter über einen Import angelegt, können Sie ihn mit derselben uniqueId identifizieren.
employee_personnel_number Personalnummer zur Identifikation des Mitarbeiters. Ist die Personalnummer innerhalb der verknüpften Schichtgruppen nicht eindeutig, wird ein Fehler zurückgegeben.
employee_external_id oder employee_personnel_number muss angegeben werden.
date_from Erster Tag der Abwesenheit im Format YYYY-MM-DD
date_to Letzter Tag der Abwesenheit im Format YYYY-MM-DD
time_from (optional) Startzeit einer untertägigen Abwesenheit im Format HH:MM
time_to (optional) Endzeit einer untertägigen Abwesenheit im Format HH:MM
comment (optional) Freitextkommentar zur Anzeige in Planerio

Übermitteln Sie die Felder in einem POST-Request. Beispiel mit curl:

curl -v \
  --data-urlencode 'unique_absence_id=A1182783912' \
  --data-urlencode 'absence_type_key=0400' \
  --data-urlencode 'employee_personnel_number=001234' \
  --data-urlencode 'date_from=2023-07-17' \
  --data-urlencode 'date_to=2023-07-17' \
  -H 'X-Planerio-Api-Gateway-Auth: SESSIONTOKEN' \
  'https://HOST/integrations/tokenapi/v1/AAA-BBB-CCC/absencePeriod'

Nach erfolgreichem Anlegen oder Aktualisieren gibt der Endpunkt den HTTP-Status-Code 204 mit einem leeren Response-Body zurück.

Löschen (DELETE)

Senden Sie zum Löschen einer Abwesenheitsperiode einen DELETE-Request. Übergeben Sie den folgenden Parameter im URL-Pfad:

Feldname Beschreibung
unique_absence_id Zeichenfolge mit bis zu 255 Zeichen (siehe oben)

Vollständige URL: https://<host>/integrations/tokenapi/v1/aaa-bbb-ccc/absencePeriod/<unique_absence_id>

Wurde die Abwesenheit erfolgreich gelöscht oder war sie bereits nicht mehr vorhanden, gibt der Endpunkt den HTTP-Status-Code 204 mit einem leeren Response-Body zurück.

Beispielaufruf mit curl:

curl -v -XDELETE \
  -H 'X-Planerio-Api-Gateway-Auth: SESSIONTOKEN' \
  'https://HOST/integrations/tokenapi/v1/AAA-BBB-CCC/absencePeriod/A1182783912'

Einmaliger Import

Der primäre Anwendungsfall dieses Endpunkts ist der kontinuierliche Import von Abwesenheitsperioden aus einem Drittsystem. Sie können ihn jedoch auch verwenden, um einmalig eine größere Anzahl von Abwesenheiten in Planerio anzulegen.

Dazu ist die POST-Anfrage (vgl. oben) wie folgt zu parametrisieren:

Feldname Beschreibung
unique_absence_id Diesen Parameter nicht übergeben.
one_time_import Mit dem Wert 1 übergeben.

So importierte Perioden:

  • können in Planerio bearbeitet werden und verhalten sich wie direkt in Planerio angelegte Abwesenheitsperioden;
  • können anschließend nicht mehr über die Schnittstelle aktualisiert werden, da ihnen eine unique_absence_id fehlt.

Abruf des Urlaubsbudgets

Information Wert
Verfügbar in Planerio-Versionen nur 1.5, nicht in 2.0
Verfügbar über Technisches Login ja
Verfügbar über Browser ja
Endpunkt-Pfad /integrations/tokenapi/v3/aaa-bbb-ccc/absences/vacationDays

Über diesen Endpunkt können Sie Urlaubsdaten automatisiert oder manuell abrufen, beispielsweise zur Berechnung von Urlaubsrückstellungen. Dafür benötigen Sie ein im Abschnitt Konfiguration erstelltes Schichtgruppen-Token. Die URL zum Datenabruf lautet:

https://<host>/integrations/tokenapi/v3/aaa-bbb-ccc/absences/vacationDays

Verwenden Sie für diesen Endpunkt unbedingt Version v3 (siehe URL). Ältere Versionen werden nicht mehr unterstützt.

Ersetzen Sie aaa-bbb-ccc durch das entsprechende Schichtgruppen-Token. Sie können den Datenabruf mit den folgenden Query-Parametern konfigurieren. Leiten Sie den ersten Parameter mit ? und alle weiteren Parameter mit & ein.

Parameter Beschreibung
date=2022-01-01 Jahr, für das die Urlaubsberechnung durchgeführt und die Daten ausgegeben werden.
format=xls Format der exportierten Daten. Verfügbar sind xls (Excel-Datei), csv (Textdatei) und json (Standard).

Folgende Daten sind pro Zeile/Datensatz enthalten:

Feldname Beschreibung
personnel_number Personalnummer des Mitarbeiters
employee_uuid Planerio-systemweit eindeutige ID des Mitarbeiters
year Ausgewertetes Jahr im Format YYYY
vacation_days_allowance Gesamturlaubsbudget des abgefragten Jahres in Tagen
vacation_days_lastYear Resturlaub des Vorjahres in Tagen
vacation_days_expired Verfallener Urlaub in Tagen
vacation_days_requested Im abgefragten Jahr beantragter Urlaub in Tagen
vacation_days_approved Im abgefragten Jahr genehmigter Urlaub in Tagen
vacation_days_taken Bis zum abgefragten Stichtag genommener Urlaub in Tagen. Als „genommen“ gilt Urlaub, der bereits stattgefunden hat.
vacation_days_remaining Noch nicht beantragtes Urlaubsbudget
Berechnung: vacation_days_allowance + vacation_days_lastYear - vacation_days_expired - vacation_days_approved
employee_first_name Vorname des Mitarbeiters
employee_last_name Nachname des Mitarbeiters
shift_group Name der primären Schichtgruppe des Mitarbeiters

ℹ️ Dieser Endpunkt wird in 2026/27 im Rahmen der Einführung von mehreren Budgets ersetzt.