Timebutler API Dokumentation

Timebutler bietet eine RESTful API, um Daten automatisiert abrufen und in Drittsystemen weiterverarbeiten zu können.

Aufruf der Schnittstelle

Die API kann mit einem HTTP POST Request abgefragt werden. Andere HTTP Methods wie GET, PUT, usw. sind aus Sicherheitsgründen nicht erlaubt und werden von der Schnittstelle abgelehnt. Alle Aufrufe müssen immer über https erfolgen. Aufrufe über http werden mit einer Fehlermeldung zurückgewiesen. Die URL für alle Abfragen lautet:

https://timebutler.de/api/v1/[...]

Das [...] am Ende der URL muss durch die gewünschte API-Aktion ersetzt werden. Gültige API-Aktions-Codes finden Sie weiter unten in dieser Dokumentation.

Die URL könnte also beispielsweise wie folgt lauten:

Beispiel:

https://timebutler.de/api/v1/absences

Authentifizierung

Zur Authentifizierung muss bei jedem API-Aufruf der individuelle API-Token als HTTP Post Parameter übergeben werden:

Parametername Wert
auth Ihr individueller API-Token (API-Token abrufen )

Zwei API-Tokens

Beachten Sie, dass es zwei API-Tokens gibt:

  • ein API-Token zur Abfrage der Personalakten und Gehaltsdaten
  • ein API-Token zur Abfrage der anderen Endpunkte

Damit kann der Zugriff auf die Personalakte und Gehaltsdaten getrennt vom Zugriff auf die anderen Daten gesteuert und freigegeben oder verboten werden.

Für den Aufruf der folgenden Endpunkte verwenden Sie den API-Token für die Personalakte und Gehaltsdaten:

salariespersonnelfiles

Für alle weiteren Endpunkte verwenden Sie den anderen API-Token.

HTTP Antwort Codes

Bei jedem HTTP Post Request gibt die Schnittstelle einen der folgenden Codes zurück:

Code Name Beschreibung
200 OK All good, response contains requested data.
400 Bad request The request was invalid, e.g. the action code does not exist or is invalid
401 Unauthorized Authentication information missing or invalid or API access has been deactivated by user
404 Not found Invalid URL, Version in request URL not supported, malformed URL
405 Method not allowed Invalid HTTP method for the API URL
413 Request Entity Too Large The number of bytes of the uploaded data is larger than the allowed amount (3 MB).
500 Internal server error Internal server error, please retry later

Aktionen - Übersicht

Durch Übergabe des API-Aktions-Codes in der URL können verschiedene API-Funktionen aufgerufen werden. Diese sind:

API-Aktion Beschreibung und URL
absences Abwesenheitseinträge auslesen
Liefert eine Liste aller Abwesenheitseinträge aller Nutzer zurück.
https://timebutler.de/api/v1/absences
users Nutzerdaten auslesen
Liefert eine Liste aller Nutzer zurück.
https://timebutler.de/api/v1/users
holidayentitlement Urlaubsanspruchsdaten auslesen
Liefert eine Liste aller Urlaubsanspruch-Werte aller Nutzer für ein bestimmtes Jahr zurück.
https://timebutler.de/api/v1/holidayentitlement
workdays Arbeitstage der Nutzer auslesen
Liefert eine Liste der Arbeitstage der Nutzer zurück.
https://timebutler.de/api/v1/workdays
holidaysets Feiertagsregelungen auslesen
Liefert eine Liste der Feiertagsregelungen zurück.
https://timebutler.de/api/v1/holidaysets
worktime Arbeitszeiteinträge der Nutzer auslesen
Liefert eine Liste der Arbeitszeiteinträge der Nutzer zurück.
https://timebutler.de/api/v1/worktime
projects Liste der Projekte auslesen
Liefert eine Liste aller konfigurierten Projekte (Zeiterfassung) zurück.
https://timebutler.de/api/v1/projects
projectsimport Projekte hinzufügen, ändern oder löschen
Die bestehende Liste der Projekte kann damit erweitert oder geändert werden.
https://timebutler.de/api/v1/projectsimport
services Liste der Kategorien auslesen
Liefert eine Liste aller konfigurierten Kategorien (Zeiterfassung) zurück.
https://timebutler.de/api/v1/services
timeclock Virtuelle Stempeluhr steuern
Stellt Kommandos zum Starten, Pausieren und Stoppen der virtuellen Stempeluhr bereit.
https://timebutler.de/api/v1/timeclock
timeimportbyevents Import von Arbeitszeiteinträgen
Zum Import von Arbeitszeiteinträgen nach Timebutler, die von Zeiterfassungsterminals von Drittanbietern aufgezeichnet wurden. Import der Stempeluhr-Ereignisse (Start/Pause/Stop/...)
https://timebutler.de/api/v1/timeimportbyevents
personnelfiles Personalakte abfragen
Zur Abfrage von Daten aus der digitalen Personalakte.
https://timebutler.de/api/v1/personnelfiles
salaries Gehaltsdaten abfragen
Zur Abfrage von Gehaltsdaten der Mitarbeiter.
https://timebutler.de/api/v1/salaries

Aktion absences

Mit dieser Aktion werden alle Abwesenheitseinträge aller Nutzer eines bestimmten Jahres zurückgeliefert. Wenn das gewünschte Jahr nicht übergeben wird, werden die Einträge des aktuellen Jahres zurückgegeben.

Abfrage-URL:

https://timebutler.de/api/v1/absences

Request-Parameter

Folgende Parameter können als HTTP Post Parameter übergeben werden:

Parametername Pflichtangabe Wert
year Nein Kalenderjahr im Format JJJJ, beispielsweise 2023. Falls nicht angegeben, wird das aktuelle Kalenderjahr verwendet.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Abwesenheitseinträge. Die Daten sind mit einem Semikolon separiert. Sind keine Einträge für das Jahr vorhanden, wird nur die erste Zeile mit den Spaltenüberschriften zurückgegeben.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • ID
  • From
  • To
  • Half a day
  • Morning
  • User ID
  • Employee number
  • Type
  • Extra vacation day
  • State
  • Substitute state
  • Workdays
  • Hours
  • Medical certificate (sick leave only)
  • Comments
  • User ID of the substitute
  • Spalten der Zusatzfelder, optional (Details siehe weiter unten)

Die Spalte "Type" beinhaltet den Namen des Abwesenheitstyps. Ein Admin kann beliebige Abwesenheitstypen konfigurieren. Sie können die Liste der Abwesenheitstypen aufrufen, indem Sie sich als Admin anmelden, dann links unten auf "Einstellungen" klicken, dann darunter auf "Weitere..", dann rechts auf "Abwesenheitstypen".

Die Spalte "State" kann folgende Werte annehmen:

  • Approved
  • Done
  • In process
  • Rejected
  • Submitted

Die Spalte "Substitute state" kann folgende Werte annehmen:

  • Approval pending
  • Approved
  • Automatically approved
  • Denied
  • No approval required

Zusatzfelder

Für jeden Abwesenheitstyp können individuell Zusatzfelder konfiguriert werden. Beispielsweise kann für den Abwesenheitstyp "Dienstreise" ein Zusatzfeld "Zielort" (Text), "Entfernung in km" (Zahl), "Reisekosten Betrag" (Kommazahl) und "Tag der Beantragung" (Datum) festgelegt werden. Die Nutzer können dann bei Eintragung einer Dienstreise die Angaben zu den Zusatzfeldern eintragen.

Bei den Rückgabe-Daten werden dann weitere Spalten ausgegeben: für jeden Abwesenheitstyp eine Spalte "Zusatzfelder für <Abwesenheitstyp>" und anschließend für jedes Zusatzfeld eine eigene Spalte.

Beispiel:

Wenn für den Abwesenheitstyp "Dienstreise" die Zusatzfelder "Zielort" und "Entfernung in km" konfiguriert sind und für den Abwesenheitstyp "Weiterbildung" die Zusatzfelder "Kursname" und "Kursgebühr" konfiguriert sind, dann werden nach den Spalten der oben genannten Rückgabe-Daten zusätzlich auch Spalten mit den folgenden Überschriften zurückgegeben:

Zunächst die Spalten gemäß der Auflistung oben bei "Rückgabe-Daten" (siehe weiter oben), anschließend folgende Spalten:

  • Zusatzfelder für "Dienstreise"
  • Zielort
  • Entfernung in km
  • Zusatzfelder für "Weiterbildung"
  • Kursname
  • Kursgebühr

Aktion users

Mit dieser Aktion werden die Daten aller Nutzer zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/users

Request-Parameter

Es sind keine zusätzlichen Parameter möglich oder erforderlich.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Nutzerdaten. Die Daten sind mit einem Semikolon separiert.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • User ID
  • Last name
  • First name
  • Employee number
  • E-mail address
  • Phone
  • Mobile phone
  • Cost center
  • Branch office
  • Department
  • User type
  • Language
  • User ID list of the user's manager (comma separated list, in case more than one user ID exists)
  • User account locked
  • Additional Information
  • Date of entry (dd/mm/yyyy)
  • Date of separation from company (dd/mm/yyyy)
  • Day of birth (dd/mm/yyyy)

Die Spalte "User type" kann folgende Werte annehmen:

  • Employee
  • Manager
  • Admin

Aktion holidayentitlement

Mit dieser Aktion werden die Urlaubsanspruchsdaten der Nutzer für ein bestimmtes Jahr zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/holidayentitlement

Request-Parameter

Folgender Parameter kann als HTTP Post Parameter übergeben werden:

Parametername Pflichtangabe Wert
year Nein Kalenderjahr im Format JJJJ, beispielsweise 2023. Falls nicht angegeben, wird das aktuelle Kalenderjahr verwendet.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Werte des Urlaubsanspruchs. Die Daten sind mit einem Semikolon separiert.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • User ID
  • Vacation contingent
  • Remaining vacation
  • Extra vacation days
  • Additional vacation for severely challenged persons
  • Expired vacation
  • Paid out vacation
  • Further vacation contingent

Aktion workdays

Mit dieser Aktion werden die Arbeitstage aller Nutzer zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/workdays

Request-Parameter

Es sind keine zusätzlichen Parameter möglich oder erforderlich.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Arbeitstage der Nutzer. Die Daten sind mit einem Semikolon separiert. Da ein Nutzer mehrere Arbeitstag-Einstellungen eingestellt haben kann, können in den zurückgelieferten CSV-Daten mehrere Zeilen mit der gleichen User ID beinhaltet sein.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • User ID
  • Valid from (dd/mm/yyyy)
  • Monday working time in minutes
  • Tuesday working time in minutes
  • Wednesday working time in minutes
  • Thursday working time in minutes
  • Friday working time in minutes
  • Saturday working time in minutes
  • Sunday working time in minutes
  • ID of the holiday set

Aktion holidaysets

Mit dieser Aktion wird die Liste aller Feiertagsregelungen zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/holidaysets

Request-Parameter

Es sind keine zusätzlichen Parameter möglich oder erforderlich.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die eindeutige ID und der Name der Feiertagsregelung, die mit einem Semikolon separiert sind.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • ID of the holiday set
  • Name of the holiday set

Aktion worktime

Mit dieser Aktion werden die Arbeitszeiteinträge aller Nutzer eines bestimmten Monats zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/worktime

Request-Parameter

Folgende Parameter können als HTTP Post Parameter übergeben werden:

Parametername Pflichtangabe Wert
year Nein Kalenderjahr im Format JJJJ, beispielsweise 2023. Falls nicht angegeben, wird das aktuelle Kalenderjahr verwendet.
month Nein Monatszahl, Wert zwischen 1 und 12, beispielsweise 2 für Februar. Falls nicht angegeben, wird der aktuelle Monat verwendet.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Arbeitszeiteinträge der Nutzer. Die Daten sind mit einem Semikolon separiert.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • ID of the work time entry
  • User ID
  • Employee number
  • Date (dd/mm/yyyy)
  • Start time (hh:mm)
  • End time (hh:mm)
  • Working time in seconds
  • Pause in seconds
  • State
  • ID of the project
  • ID of the service
  • Comments
  • Auto stopped

Die Spalte "State" kann folgende Werte annehmen:

  • Done
  • Requested
  • Accepted
  • Rejected
  • In process

Aktion projects

Mit dieser Aktion wird die Liste aller konfigurierten Projekte aus den Einstellungen für die Zeiterfassung zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/projects

Request-Parameter

Es sind keine zusätzlichen Parameter möglich oder erforderlich.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Abwesenheitseinträge. Die Daten sind mit einem Semikolon separiert. Sind keine Einträge für das Jahr vorhanden, wird nur die erste Zeile mit den Spaltenüberschriften zurückgegeben.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • ID of the project
  • Name
  • State
  • Budget in hours
  • Comments
  • Creation date

Die Spalte "State" kann folgende Werte annehmen:

  • Active
  • Inactive

Aktion projectsimport

Mit dieser Aktion können neue Projekte in die Liste der Projekte importiert und bestehende Projekte geändert oder gelöscht werden.

Abfrage-URL:

https://timebutler.de/api/v1/projectsimport

Request-Parameter

Folgender Parameter muss übergeben werden:

Parametername Typ Wert
csvdatafile File

Datei mit den zu importierenden Daten im CSV-Format. Details zum Aufbau der Daten siehe weiter unten.

Aufbau der CSV-Datei

In der CSV-Datei werden die Projekt-Informationen übergeben. Je Zeile in der CSV-Datei wird ein Kommando für ein Projekt übergeben. Je Zeile kann also ein Projekt hinzugefügt oder geändert oder gelöscht werden. Die CSV darf keine Kopfzeilen beinhalten, sondern alle Zeilen ab der ersten Zeile werden verarbeitet und importiert. Dass Trennzeichen der Daten in einer Zeile der CSV-Datei ist das Semikolon (;).

In jeder Zeile der CSV-Datei müssen folgende Daten in den Spalten übergeben werden:

Spalte / Wert Beschreibung Format / Beispiele

Erste Spalte

Eines der Kommandos
CREATE
UPDATE
DELETE

Mit diesem Wert legen Sie fest, was mit den übergebenen Daten in der Zeile geschehen soll:

CREATE
Es wird ein neues Projekt erstellt und gespeichert.

UPDATE
Bestehendes Projekt ändern: In der Zeile muss die ID des zu ändernden Projekts übergeben werden (siehe Beschrebung zur nächsten Spalte). Falls es zu der ID ein Projekt gibt, dann werden die Angaben zum Projekt geändert. Falls es zu der ID kein Projekt gibt, dann wird eine Fehlermeldung zurückgegeben und die CSV-Zeile verworfen.

DELETE
Bestehendes Projekt löschen: In der Zeile muss die ID des zu löschenden Projekts übergeben werden (siehe Beschrebung zur nächsten Spalte). Falls es zu der ID ein Projekt gibt, dann wird das Projekt gelöscht (falls es mindestens einen Arbeitszeit zu dem Projekt gibt, wird das Projekt nicht gelöscht und eine Fehlermeldung zurückgegeben). Falls es kein Projekt gibt, wird keine Aktion ausgeführt und es wird auch keine Fehlermeldung zurückgegeben.

Eines der 3 Kommandos.

Beispiele:
CREATE
DELETE

Zweite Spalte

ID des Projekts

Die ID des Projekts, das geändert oder gelöscht werden soll. Die Angabe der ID ist bei allen Kommandos obligatorisch mit Ausnahme von CREATE (in diesem Fall wird die ID ignoriert, falls sie dennoch übergeben wird).

Die Liste der von Timebutler vergebenen Projekt-IDs kann über den Endpunkt projects abgerufen werden.

Die ID des Projekts

Beispiele:
4711
2367

Dritte Spalte

Name des Projekts

Der Name des Projekts, das erstellt werden soll (Kommando CREATE) bzw. der neue Name des Projekts (Kommando UPDATE). Diese Spalte kann beim Kommando DELETE leer bleiben.

Es sind maximal 150 Zeichen erlaubt. Zeilenumbrüche (Carriage Return oder Line Feed) sind nicht erlaubt, ebenso ist ein Semikolon nicht erlaubt, da dieses als Trennzeichen der CSV-Datei dient.

Der Name des Projekts, alphanumerisch

Beispiele:
Pegasus
Zeus II

Vierte Spalte

Projekt aktiv?
true
false

Die Angabe, ob das Projekt aktiv (neue Zeiteinträge für das Projekt erlaubt) oder inaktiv (neue Zeiteinträge für das Projekt nicht erlaubt) ist.

Einer der beiden Werte:
true
false

Fünfte Spalte

Projekt-Budget in ganzen Stunden

Die Anzahl Stunden für das Projekt-Budget. Die Angabe ist optional. Wenn angegeben, muss der Wert eine Ganzzahl größer oder gleich 0 sein.

Das Projektbudget in Stunden als ganze Zahl

Beispiele:
32
1200

Sechste Spalte

Auswahl einer Kategorie Pflicht?
true
false

Die Angabe, ob die Nutzer bei Zeiteinträgen auf dieses Projekt auch eine Kategorie auswählen müssen oder nicht.

Einer der beiden Werte:
true
false

Siebte Spalte

Kommentar

Ein Kommentar als interner Vermerk. Wird nur Admin-Nutzern bei der online Bearbeitung der Projektliste angezeigt. Wird anderen Nutzern, die Arbeitszeiten auf Projekte buchen, nicht angezeigt.

Die Angabe ist optional. Es sind maximal 200 Zeichen erlaubt. Zeilenumbrüche (Carriage Return oder Line Feed) sind nicht erlaubt, ebenso ist ein Semikolon nicht erlaubt, da dieses als Trennzeichen der CSV-Datei dient.

Ein Kommentar für das Projekt als Text.

Beispiel:
Das wichtigste Projekt in diesem Jahr.

Bedingungen an die CSV-Datei

CSV-Datei Beispiel

Ein Projekt "Pegasus IV" erstellen, das Projekt mit der ID 4711 ändern und das Projekt mit der ID 2367 löschen:

CREATE;;Pegasus IV;true;48;false;Das kleinste Projekt in 2024
UPDATE;4711;Zeus;true;;true;
DELETE;2367;;;;;

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben.

Wenn fehlende oder falsche Input-Daten übergeben wurden oder die übergebenen Daten nicht verarbeitet werden konnten, dann wird in der Antwort lediglich eine Zeile mit einem Fehlercode zurückgegeben, beispielsweise CSV_FILE_MISSING_OR_INVALID oder CSV_FILE_TOO_LARGE.

Wenn lesbare Daten übergeben wurden und die Input-CSV-Datei abgearbeitet werden kann, dann wird für jede übergebene Zeile der Input-CSV-Datei in der Antwort eine Zeile mit einer Rückmeldung zu der Verarbeitung der Zeile zurückgegeben.

Wenn die Input-Zeile erfolgreich verarbeitet werden konnte, dann steht in der Antwort-CSV ein Eintrag im folgenden Format:

line #n: OK;[PROJEKT-ID]

Wenn die Input-Zeile nicht verarbeitet werden konnte, dann steht in der Antwort-CSV ein Eintrag im fogenden Format:

line #n: [FEHLERCODE]

Die Rückgabe für eine Input-CSV-Datei mit 5 Zeilen könnte also beispielsweise wie folgt aussehen:

line #1: OK;4711
line #2: OK;815
line #3: LINE_NOT_READABLE
line #4: OK;5838
line #5: PROJECT_ID_UNKNOWN

Fehler-Codes

Die Liste der möglichen Fehlercodes lautet:

  • INTERNAL_ERROR
  • CSV_FILE_MISSING_OR_INVALID
  • CSV_FILE_TOO_LARGE
  • LINE_NOT_READABLE
  • NUMBER_OF_COLUMNS_INCORRECT
  • COMMAND_MISSING_OR_INVALID
  • PROJECT_ID_MISSING
  • PROJECT_ID_INVALID
  • PROJECT_ID_UNKNOWN
  • PROJECT_NAME_MISSING_OR_INVALID
  • PROJECT_ACTIVE_FLAG_MISSING_OR_INVALID
  • PROJECT_BUDGET_HOURS_INVALID
  • PROJECT_SERVICES_FLAG_MISSING_OR_INVALID
  • WORKTIME_ENTRY_FOR_PROJECT_EXISTS_THUS_NO_DELETE
  • COMMENT_INVALID_OR_TOO_LARGE

Aktion services

Mit dieser Aktion wird die Liste aller konfigurierten Kategorien aus den Einstellungen für die Zeiterfassung zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/services

Request-Parameter

Es sind keine zusätzlichen Parameter möglich oder erforderlich.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Abwesenheitseinträge. Die Daten sind mit einem Semikolon separiert. Sind keine Einträge für das Jahr vorhanden, wird nur die erste Zeile mit den Spaltenüberschriften zurückgegeben.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • ID of the service
  • Name
  • State
  • Billable
  • Comments
  • Creation date

Die Spalte "State" kann folgende Werte annehmen:

  • Active
  • Inactive

Aktion timeclock

Mit dieser Aktion können Sie Kommandos übergeben, um die virtuelle Stempeluhr eines Nutzers zu starten, zu pausieren (und fortzusetzen), zu stoppen oder die Aufzeichnung abzubrechen.

Abfrage-URL:

https://timebutler.de/api/v1/timeclock

Request-Parameter

Folgende Parameter müssen als HTTP Post Parameter übergeben werden:

Parametername Wert
command

Das gewünschte Kommando für die virtuelle Stempeluhr. Die möglichen Kommandos lauten:

start
Virtuelle Stempeluhr starten. Wenn die Stempeluhr pausiert ist, dann wird die Pause beendet und die Stempeluhr läuft weiter. Somit ist dieses Kommando gleichbedeutend mit dem Kommando "resume".

pause
Virtuelle Stempeluhr pausieren.

resume
Pause beenden und Aufzeichnung fortsetzen. Wenn die Stempeluhr nicht pausiert ist, dann wird die Stempeluhr dennoch gestartet. Somit ist dieses Kommando gleichbedeutend mit dem Kommando "start".

stop
Virtuelle Stempeluhr stoppen und Zeiteintrag speichern.

cancel
Virtuelle Stempeluhr stoppen und Zeiteintrag nicht speichern.

status
Den aktuellen Status der virtuellen Stempeluhr abfragen (Stempeluhr ruht, Stempeluhr läuft, Pausiert).

businesstripstart
Einen Dienstgang starten (nur möglich, wenn die Stempeluhr gestartet ist).

businesstripstop
Einen Dienstgang stoppen (nur möglich, wenn der Dienstgang zuvor gestartet wurde).

userid

Die userid, mit der das Nutzerkonto eindeutig identifiziert werden kann.

Die Liste aller userid erhalten Sie über den API-Aufruf users (siehe hier). Die Aktion users brauchen Sie nur einmalig aufrufen. Die zurückgegebenen userid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion users nochmal aufrufen zu müssen, da sich die userid nie ändert.

projectid
(optional)

Die ID des Projekts, auf das der Arbeitszeiteintrag gebucht werden soll. Die Angabe ist optional. Nur beim command "stop" wird dieser Parameter verarbeitet, bei allen anderen commands wird er ignoriert.

Die projectid erhalten Sie über den API-Aufruf projects (siehe hier). Die Aktion projects brauchen Sie nur einmalig aufrufen. Die zurückgegebenen projectid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion projects nochmal aufrufen zu müssen, da sich die projectid nie ändert.

serviceid
(optional)

Die ID der Kategorie, auf die der Arbeitszeiteintrag gebucht werden soll. Die Angabe ist optional. Nur beim command "stop" wird dieser Parameter verarbeitet, bei allen anderen commands wird er ignoriert.

Die serviceid erhalten Sie über den API-Aufruf services (siehe hier). Die Aktion services brauchen Sie nur einmalig aufrufen. Die zurückgegebenen serviceid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion services nochmal aufrufen zu müssen, da sich die serviceid nie ändert.

Rückgabe-Daten

Im Response wird einer der folgenden Ergebniswerte zurückgegeben (beachten Sie auch die Besonderheit bei der Abfrage von status weiter unten):

OK

Das Kommando wurde erfolgreich ausgef�hrt.

WARN_TIMECLOCK_ALREADY_RUNNING

Die Stempeluhr ist gerade aktiv und kann nicht erneut gestartet werden.

WARN_TIMECLOCK_ALREADY_PAUSED

Die Stempeluhr ist gerade pausiert und kann nicht erneut pausiert werden.

WARN_TIME_ENTRY_SAVED_WITH_MODIFICATIONS

Die Stempeluhr wurde gestoppt und der Zeiteintrag wurde gespeichert. Der Zeiteintrag wurde jedoch abge�ndert, um die Vorgaben der Pausenregelung (Pausenzeiten oder maximale t�gliche Arbeitszeit) zu erf�llen.

WARN_SHORT_BUSINESSTRIP_TIMECLOCK_NOT_RUNNING

Die Stempeluhr ist gerade nicht aktiv. Ein Dienstgang kann nur bei gestarteter Stempeluhr gestartet oder gestoppt werden.

WARN_SHORT_BUSINESSTRIP_ALREADY_STARTED

Der Dienstgang wurde bereits gestartet.

WARN_SHORT_BUSINESSTRIP_NOT_STARTED

Der Dienstgang ist nicht gestartet.

RESULT_ERR_INTERNAL_ERROR

Es ist ein interner Fehler aufgetreten. Bitte wiederholen Sie den Vorgang sp�ter nochmal.

RESULT_ERR_TIMETRACKING_FEATURE_NOT_ACT

Das Zeiterfassungs-Feature ist deaktiviert.

RESULT_ERR_COMMAND_INVALID

Es wurde kein Kommando-Parameter in dem Request �bergeben oder der �bergebene Kommando-Parameter ist ung�ltig oder unbekannt.

RESULT_ERR_USERID_INVALID

Es wurde kein userid-Parameter in dem Request �bergeben oder der �bergebene userid-Parameter ist ung�ltig.

RESULT_ERR_PROJECTID_INVALID

Die Angabe zur Projekt ID (Parameter projectid) ist ung�ltig oder unbekannt.

RESULT_ERR_SERVICEID_INVALID

Die Angabe zur Kategorie ID (Parameter serviceid) ist ung�ltig oder unbekannt.

RESULT_ERR_TIMECLOCK_NOT_STARTABLE_MAY_OVERLAP

Die Stempeluhr kann zurzeit nicht gestartet werden, da es zu �berschneidungen mit bestehenden Zeiteintr�gen f�r den heutigen Tag kommen kann.

RESULT_ERR_TIMECLOCK_STOPPED_WITHOUT_SAVE_DUE_TO_OVERLAPPING

Der Zeiteintrag f�r die Stempeluhr �berschneidet sich mit bestehenden Zeiteintr�gen f�r den heutigen Tag. Die Stempeluhr wurde gestoppt und der Zeiteintrag wurde verworfen.

RESULT_ERR_TIMECLOCK_STOPPED_WITHOUT_SAVE_DUE_TO_UNRESOLVABLE_CHANGE_REQUIREMENTS

Der Zeiteintrag f�r die Stempeluhr verletzt die Vorgaben einer Pausenregelung (Mindestpause oder maximale t�gliche Arbeitszeit) in einer Weise, die durch Anpassung der Zeiten/Pausen des Eintrages nicht behoben werden k�nnen. Die Stempeluhr wurde gestoppt und der Zeiteintrag wurde verworfen.

RESULT_ERR_TIMECLOCK_NOT_RUNNING

Die Stempeluhr l�uft zurzeit nicht und kann deswegen nicht pausiert oder gestoppt werden.

RESULT_ERR_MIN_DURATION_OR_PAUSE_NOT_OK

Die Pause und die Arbeitszeitdauer sind kleiner als 60 Sekunden. Der Zeiteintrag kann noch nicht gespeichert werden.

Rückgabe-Daten bei status

Bei Übergabe des Kommandos status werden neben dem Ergebniswert noch weitere Informationen zum Status der Stempeluhr zurückgegeben. Die Daten werden im CSV-Format und UTF-8 codiert zurückgegeben. Die CSV-Datei beinhaltet keine Spaltenüberschriften, sondern besteht aus nur einer Zeile mit den Nutzdaten. Die Daten werden mit einem Semikolon separiert.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • Ergebniswert: Beispielsweise OK oder RESULT_ERR_USERID_INVALID (siehe Tabelle oben)
  • Status:
    • IDLE = Stempeluhr ruht
    • RUNNING = Stempeluhr läuft, nicht pausiert
    • PAUSED = Stempeluhr pausiert
  • Start der Stempeluhr: Zeitstempel in Millisekunden seit 1.1.1970 (falls die Stempeluhr nicht gestartet oder pausiert ist, wird 0 zurückgegeben)
  • Start der aktuellen Pause: Zeitstempel in Millisekunden seit 1.1.1970 (falls die Stempeluhr nicht pausiert ist, wird 0 zurückgegeben)

Beispiel:

Folgende Zeile wird zurückgegeben, wenn die Stempeluhr am 17.6.2019 um 14:10:45 Uhr gestartet wurde und um 14:15:01 Uhr pausiert wurde:

OK;PAUSED;1560773445237;1560773701707

Aktion timeimportbyevents

Mit dieser Aktion können die Arbeitszeiteinträge von Stempeluhr-Terminals von Drittanbietern nach Timebutler importiert werden. Das Stempeluhr-Terminal kann die aufgezeichneten Stempeluhr-Ereignisse (Start, Pause, Stop) an Timebutler übermitteln und Timebutler wandelt diese Ereignisse in Arbeitszeiteinträge um.

Abfrage-URL:

https://timebutler.de/api/v1/timeimportbyevents

Request-Parameter

Folgende zwei Parameter müssen übergeben werden:

Parametername Typ Wert
useridentification HTTP Parameter

Um die Zeiteinträge zu den Mitarbeitern zuordnen zu können, muss bei dem Import der Daten entweder die Email-Adresse des Mitarbeiters oder die Mitarbeiternummer übergeben werden. Mit diesem Parameter wird festgelegt, ob in den importierten Daten die Email-Adresse oder die Mitarbeiternummer angegeben ist, wie folgt:

Parameterwert email oder Parameter nicht angegeben: in den Import-Daten ist die Email-Adresse angegeben.

Parameterwert employeenumber: in den Import-Daten ist die Mitarbeiternummer angegeben.

csvdatafile File

Datei mit den zu importierenden Daten im CSV-Format. Details zum Aufbau der Daten siehe weiter unten.

Aufbau der CSV-Datei

In der CSV-Datei werden die Daten mit den Stempeluhr-Ereignissen übergeben. Je Zeile in der CSV-Datei wird ein Ereignis für einen Mitarbeiter übergeben. Die CSV darf keine Kopfzeilen beinhalten, es werden also alle Zeilen ab der ersten Zeile verarbeitet und importiert. Dass Trennzeichen der Daten in einer Zeile der CSV-Datei ist das Semikolon (;).

In jeder Zeile der CSV-Datei müssen folgende Daten in den Spalten übergeben werden:

Spalte / Wert Beschreibung Format / Beispiele

Erste Spalte

Email-Adresse des Mitarbeiters oder Mitarbeiternummer

Bei den Request-Parametern kann im Parameter "useridentification" (siehe oben) angegeben werden, ob in der CSV-Datei die Email-Adresse des Mitarbeiters oder die Mitarbeiternummer angegeben ist. Entsprechend der Einstellung im Request Parameter muss in der CSV-Datei in dieser Spalte immer entweder die Email-Adresse des Mitarbeiters stehen oder immer die Mitarbeiternummer.

Email oder Mitarbeiternummer

Beispiele:
sarah@example.com
MA0209

Zweite Spalte

Zeitstempel

Datum und Uhrzeit, an dem das Ereignis aufgetreten ist (minutengenau).

jjjj-mm-ttThh:mm
Das T bleibt unverändert, die anderen Buchstaben werden ersetzt:

  • jjjj=Jahr
  • mm=Monat 01-12
  • tt=Tag 01-31
  • hh=Stunde 00-23
  • mm=Minuten 00-59

Beispiele:
2024-03-31T17:58
(= 31. März 2024, 17:58 Uhr)

2024-12-02T07:08
(= 2. Dezember 2024, 7:08 Uhr)

Dritte Spalte

Einer der Ereignistypen
START
STOP
PAUSE
RESUME

Mit dem Ereignistyp wird festgelegt, welches Ereignis zu dem übergebenen Zeitpunkt stattgefunden hat:

START
Stempeluhr wurde gestartet / Aufzeichnung gestartet

STOP
Stempeluhr wurde gestoppt / Aufzeichnung beendet

PAUSE
Stempeluhr wurde auf Pause gesetzt, Aufzeichnung der Pause wurde gestartet

RESUME
Pause an der Stempeluhr wurde beendet, Aufzeichnung der Arbeitszeit wurde fortgesetzt

Einer der 4 angegebenen Ereignis-Typen.

Beispiele:
START
PAUSE

Vierte Spalte
(optional)

Die ID des Projekts, auf das der Arbeitszeiteintrag gebucht werden soll.

Die Angabe ist optional. Nur beim Ereignistyp STOP wird dieser Parameter verarbeitet, bei allen anderen Ereignistypen wird er ignoriert.

Die ID des Projekts erhalten Sie über den API-Aufruf projects (siehe hier). Die Aktion projects brauchen Sie nur einmalig aufrufen. Die zurückgegebenen projectid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion projects nochmal aufrufen zu müssen, da sich die projectid nie ändert.

Beispiele:
4711
32977

Fünfte Spalte
(optional)

Die ID der Kategorie, auf die der Arbeitszeiteintrag gebucht werden soll.

Die Angabe ist optional. Nur beim Ereignistyp STOP wird dieser Parameter verarbeitet, bei allen anderen Ereignistypen wird er ignoriert.

Die ID der Kategorie erhalten Sie über den API-Aufruf services (siehe hier). Die Aktion services brauchen Sie nur einmalig aufrufen. Die zurückgegebenen projectid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion services nochmal aufrufen zu müssen, da sich die serviceid nie ändert.

Beispiele:
4711
32977

Bedingungen an die CSV-Datei

CSV-Datei Beispiel

Ein Arbeitszeiteintrag von 9:43 Uhr - 17:33 Uhr mit Pause zwischen 11:45 Uhr und 12:17 Uhr, gebucht auf Projekt ID 17 und Service ID 733, für einen Mitarbeiter:

sarah@example.com;2024-02-27T09:43;START
sarah@example.com;2024-02-27T11:45;PAUSE
sarah@example.com;2024-02-27T12:17;RESUME
sarah@example.com;2024-02-27T17:33;STOP;17;733

Zwei Arbeitszeiteinträge für zwei Mitarbeiter, in zeitlich korrekter Abfolge, Zeilen jedoch nicht nach Mitarbeiter sortiert (da nicht notwendig). Es werden zwei Zeiteinträge generiert:

sarah@example.com;2024-02-27T09:43;START
tom@example.com;2024-02-27T11:02;START
sarah@example.com;2024-02-27T11:45;PAUSE
sarah@example.com;2024-02-27T12:17;RESUME
tom@example.com;2024-02-27T16:05;STOP;;733
sarah@example.com;2024-02-27T17:33;STOP

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Wenn kein Fehler aufgetreten ist und alle Zeilen korrekt verarbeitet werden konnten, dann wird lediglich ein OK zurückgegeben.

Wenn mindestens ein Fehler aufgetreten ist, dann wird für jede Zeile der CSV-Datei, die zu einem Fehler geführt hat, eine Rückmeldung wie folgt zurückgegeben: line #nn: Fehlercode

Beispiel: line #144: TIMESTAMP_INVALID

Die Liste der möglichen Fehlercodes lautet:

  • INTERNAL_ERROR
  • CSV_FILE_MISSING_OR_INVALID
  • CSV_FILE_TOO_LARGE
  • LINE_NOT_READABLE
  • NUMBER_OF_COLUMNS_INCORRECT
  • EMAIL_OR_EMPLOYEE_NUMBER_MISSING
  • EMAIL_UNKNOWN
  • EMPLOYEE_NUMBER_UNKNOWN
  • TIMESTAMP_INVALID
  • EVENT_TYPE_INVALID
  • PROJECT_ID_INVALID
  • SERVICE_ID_INVALID
  • FIRST_EVENT_MUST_BE_START
  • EVENT_MUST_BE_AFTER_PREVIOUS_EVENT
  • ENTRY_COLLIDES_WITH_EXISTING_ENTRY
  • ENTRY_MUST_NOT_EXCEED_TWO_CALENDAR_DAYS
  • ENTRY_HAS_NO_WORK_TIME

Aktion personnelfiles

Mit dieser Aktion werden die Daten aus der digitalen Personalakte eines oder aller Nutzer zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/personnelfiles

Request-Parameter

Einer der folgende Parameter kann als HTTP Post Parameter übergeben werden, um die Daten von nur einem Mitarbeiter abzufragen. Wenn kein Parameter übergeben wird, werden alle Daten aller Mitarbeiter zurückgegeben.

Parametername Pflichtangabe Wert
email Nein Die Email-Adresse des Nutzerkontos, für das die Daten zurückgeliefert werden sollen.
employeenumber Nein Die Mitarbeiter-Nummer des Mitarbeiters, für den die Daten zurückgeliefert werden sollen.
userid Nein

Die eindeutige userid des Nutzerkontos, für das die Daten zurückgeliefert werden sollen.

Die Liste aller userid erhalten Sie über den API-Aufruf users (siehe hier). Die Aktion users brauchen Sie nur einmalig aufrufen. Die zurückgegebenen userid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion users nochmal aufrufen zu müssen, da sich die userid nie ändert.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Daten aus der Personalakte der Nutzer. Die Daten sind mit einem Semikolon separiert.

Jedes Unternehmen kann für die digitale Personalakte die Feldnamen beliebig konfigurieren und in Kategorien gruppieren. Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • User ID
  • Employee number
  • Ihre individuellen Spalten der Digitalen Personalakte, wie folgt:
    • Gruppenname 1 | Feldname 1
    • Gruppenname 1 | Feldname 2
    • Gruppenname 1 | Feldname 3
    • Gruppenname 2 | Feldname 1
    • Gruppenname 2 | Feldname 2
    • Gruppenname 3 | Feldname 1
    • Gruppenname 3 | Feldname 2
    • usw.

Beispiel

Wenn Sie die Gruppe "Home address" mit den Feldern "Street", "ZIP code" und "City" und die Gruppe "Personal data" mit den Feldern "Place of birth" und "Marital status" konfiguriert haben, dann werden folgende Spaltenüberschriften zurückgegeben (es werden immer die englischen Bezeichnungen zurückgegeben):

  • User ID
  • Employee number
  • Home address | Street
  • Home address | ZIP Code
  • Home address | City
  • Personal data | Place of birth
  • Personal data | Marital status

Aktion salaries

Mit dieser Aktion werden die Gehaltsdaten eines oder aller Nutzer zurückgeliefert.

Abfrage-URL:

https://timebutler.de/api/v1/salaries

Request-Parameter

Einer der folgende Parameter kann als HTTP Post Parameter übergeben werden, um die Daten von nur einem Mitarbeiter abzufragen. Wenn kein Parameter übergeben wird, werden alle Daten aller Mitarbeiter zurückgegeben.

Parametername Pflichtangabe Wert
email Nein Die Email-Adresse des Nutzerkontos, für das die Daten zurückgeliefert werden sollen.
employeenumber Nein Die Mitarbeiter-Nummer des Mitarbeiters, für den die Daten zurückgeliefert werden sollen.
userid Nein

Die eindeutige userid des Nutzerkontos, für das die Daten zurückgeliefert werden sollen.

Die Liste aller userid erhalten Sie über den API-Aufruf users (siehe hier). Die Aktion users brauchen Sie nur einmalig aufrufen. Die zurückgegebenen userid-Werte können Sie auf Ihrem System speichern und wiederverwenden, ohne die Aktion users nochmal aufrufen zu müssen, da sich die userid nie ändert.

Rückgabe-Daten

Im Response werden die Daten im CSV-Format und UTF-8 codiert zurückgegeben. Die erste Zeile der CSV-Datei beinhaltet die Spaltenüberschriften. Darauf folgen zeilenweise die Gehaltsdaten. Wenn für einen Mitarbeiter mehrere Gehaltsdaten hinterlegt sind (beispielsweise Gehalt, variable Vergütung und Bonuszahlungen), werden mehrere Zeilen für den gleichen Mitarbeiter zurückgegeben. Die Daten sind mit einem Semikolon separiert. Sind keine Einträge vorhanden, wird nur die erste Zeile mit den Spaltenüberschriften zurückgegeben.

Folgende Spalten in folgender Reihenfolge werden zurückgeliefert:

  • User ID
  • Employee number
  • Payment type
  • Valid from / Payment date
  • Valid until
  • Salary type / Bonus type
  • Gross amount
  • Currency
  • Hours per week
  • Comments

Die Spalte "Payment type" kann folgende Werte annehmen:

  • Salary
  • Variable remuneration
  • Bonus payments

Die Spalte "Gehaltsart / Bonusart" ist ein Freitextfeld und kann beliebige Eingaben durch die Nutzer haben, beispielsweise "Festgehalt" oder "Bonus wegen Zielerreichung".

In der Spalte "Wochenstunden" können die Wochenarbeitsstunden angegeben werden. Das Feld kann nur bei Gehaltsangaben eingetragen werden, nicht bei Bonuszahlungen und variabler Vergütung.

Die Spalte "Currency" kann folgende Werte annehmen:

  • AUD (Australische Dollar)
  • BRL (Brasilianische Real)
  • GBP (Britische Pfund)
  • BGN (Bulgarische Lew)
  • CNY (Chinesische Yuan Renminbi)
  • DKK (Dänische Kronen)
  • EUR (Euro)
  • HKD (Hong Kong Dollar)
  • INR (Indische Rupien)
  • IDR (Indonesische Rupien)
  • ISK (Isländische Kronen)
  • ILS (Israelischer Schekel)
  • JPY (Japanische Yen)
  • CAD (Kanadische Dollar)
  • HRK (Kroatische Kuna)
  • MYR (Malaiische Ringgit)
  • MXN (Mexikanische Pesos)
  • NZD (Neuseeländische Dollar)
  • NOK (Norwegische Kronen)
  • PHP (Philippinische Peso)
  • PLN (Polnische Zloty)
  • RON (Rumänische Leu)
  • SEK (Schwedische Kronen)
  • CHF (Schweizer Franken)
  • SGD (Singapur Dollar)
  • ZAR (Südafrikanische Rand)
  • KRW (Südkoreanische Won)
  • THB (Thailändische Baht)
  • CZK (Tschechische Kronen)
  • TRY (Türkische Lira)
  • HUF (Ungarischer Forint)
  • USD (US Dollar)

Code Beispiele

Das XXXXXXX unten im Quellcode unten ersetzen Sie mit Ihrem API Token.

Curl

curl -X POST 'https://timebutler.de/api/v1/absences' -d 'auth=XXXXXXX'

Python

import requests
url = 'https://timebutler.de/api/v1/absences'
params = {'auth': 'XXXXXXX'}
response = requests.post(url, params=params)
response.text

Java

public String requestTimebutlerApi()
{
  String postData = "auth=" + URLEncoder.encode("XXXXXXX", "UTF-8"); // java.net.URLEncoder
  String targetUrl = "https://timebutler.de/api/v1/absences";
  
  String responseTxt = "";
  
  URL url = new URL(targetUrl); // java.net.URL
  HttpURLConnection connection = (HttpURLConnection)url.openConnection(); // java.net.HttpURLConnection
  
  connection.setRequestMethod("POST");
  connection.setUseCaches(false);
  connection.setDoOutput(true);
  connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  connection.setRequestProperty("Content-Length", String.valueOf(postData.length()));
  connection.getOutputStream().write(postData.getBytes("UTF-8"));
  
  BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); // java.io.BufferedReader
  
  String line;
  while ((line = in.readLine()) != null) {
    responseTxt += line + "\n";
  }
  
  if (connection != null) {
    connection.disconnect();
  }
  
  return responseTxt;
}

Rust

use reqwest;

fn main() {
  request_timebutler_api()
}

fn request_timebutler_api() {

  let url = "https://timebutler.de/api/v1/absences";
  let params = [("auth", "XXXXXXX")];
  let client = reqwest::blocking::Client::new();
  let resp = match client
    .post(url)
    .form(&params)
    .send() {
      Ok(resp) => resp.text().unwrap(),
      Err(err) => panic!("Error: {}", err)
    };
}

Powershell

$url = "https://timebutler.de/api/v1/absences"
$body = @{
  auth = "XXXXXXX"
}

Invoke-RestMethod -Method 'Post' -Uri $url -Body $body -ContentType "application/x-www-form-urlencoded"

# If you want the output to be written into a file just add the following parameter to the last line above: -OutFile output.csv

Google Apps Script

function requestAbsences() {

  var apiUrl = "https://timebutler.de/api/v1/absences";
  var authtoken = "XXXXXXX";

  var formData = {
    'auth': authtoken
  };

  var options = {
    'method' : 'post',
    'payload' : formData
  };

  try {
    var response = UrlFetchApp.fetch(apiUrl, options);
    var responseData = response.getContentText();
  }
  catch (e) {
    Logger.log(e);
  }

};

Powerquery

let
  ApiKey = "XXXXXXX",
  baseUrl = "https://timebutler.de/api/v1/absences",
  headers = [#"Content-Type" = "application/x-www-form-urlencoded"],
  postData = "auth=" & ApiKey,
  response = Web.Contents(
    baseUrl,
      [
        Headers = headers,
        Content = Text.ToBinary(postData)
      ]
    ),
  csvResponse = Csv.Document(response, [Delimiter=";"]),
  #"PromoteHeader" = Table.PromoteHeaders(csvResponse, [PromoteAllScalars=true])
in
  #"PromoteHeader"

VBA (Excel, ...)

Sub requestTimebutlerApi()
 Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 URL = "https://timebutler.de/api/v1/absences"
 objHTTP.Open "POST", URL, False
 objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
 objHTTP.Send ("auth=[XXXXXXX]")

 replyTXT = objHTTP.responseText

 If objHTTP.Status = "200" Then 'success
  MsgBox replyTXT
 Else
  MsgBox objHTTP
 End If
End Sub

 

Zum Seitenanfang