Zum Inhalt springen
Developer

WorkTimeEntry

Personal11 EndpunkteTimeTracking / WorkTimeEntry

Alle WorkTimeEntry abrufen

GET/api/time/workentries

Query-Parameter

searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Alle WorkTimeEntry abrufenarray<WorkTimeEntry>

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/workentries \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "description": "Text",
    "user": {
      "id": 42,
      "name": "Beispiel",
      "username": "lena.hartmann@example.org",
      "email": "lena.hartmann@example.org",
      "profile_picture_url": "https://vynst.de",
      "positioningeneral": "string",
      "archived": true,
      "require2fa": true,
      "search_string": "string"
    },
    "start": "2026-10-15T09:30:00+02:00",
    "start_date": "2026-10-15T09:30:00+02:00",
    "start_month": 1,
    "start_year": 1,
    "end": "2026-10-15T09:30:00+02:00",
    "break_start": "2026-10-15T09:30:00+02:00",
    "break_end": "2026-10-15T09:30:00+02:00"
  }
]

Einzelnen WorkTimeEntry anlegen

POST/api/time/workentries

Request-Body application/json

  • work_time_entryWorkTimeEntry2
    Felder anzeigen (9)
    • personCRMPerson36

      Person, die gearbeitet hat.

    • contractEmploymentContract7

      Vertrag, auf dem die Arbeitszeit gebucht wird.

    • descriptionstring

      Beschreibung der Arbeit.

    • startstring (date-time)

      Beginn der Arbeitszeit.

    • endstring (date-time)

      Ende der Arbeitszeit.

    • break_startstring (date-time)

      Beginn der Pause.

    • break_endstring (date-time)

      Ende der Pause.

    • force_no_breakboolean

      Für diesen Eintrag wird keine Pause hinzugefügt.

    • content_typestring

      Art der Tätigkeit, zum Beispiel Arbeit oder Training.

Antworten

200Einzelnen WorkTimeEntry anlegenWorkTimeEntry

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/time/workentries \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "work_time_entry": {
    "description": "Text",
    "start": "2026-10-15T09:30:00+02:00",
    "end": "2026-10-15T09:30:00+02:00",
    "break_start": "2026-10-15T09:30:00+02:00",
    "break_end": "2026-10-15T09:30:00+02:00",
    "force_no_break": true
  }
}
'
Antwort 200 application/json
{
  "id": 42,
  "description": "Text",
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "start": "2026-10-15T09:30:00+02:00",
  "start_date": "2026-10-15T09:30:00+02:00",
  "start_month": 1,
  "start_year": 1,
  "end": "2026-10-15T09:30:00+02:00",
  "break_start": "2026-10-15T09:30:00+02:00",
  "break_end": "2026-10-15T09:30:00+02:00"
}

Einzelnen WorkTimeEntry abrufen

GET/api/time/workentries/{id}

Pfad-Parameter

idPflichtstring

Antworten

200Einzelnen WorkTimeEntry abrufenWorkTimeEntry

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/workentries/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "description": "Text",
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "start": "2026-10-15T09:30:00+02:00",
  "start_date": "2026-10-15T09:30:00+02:00",
  "start_month": 1,
  "start_year": 1,
  "end": "2026-10-15T09:30:00+02:00",
  "break_start": "2026-10-15T09:30:00+02:00",
  "break_end": "2026-10-15T09:30:00+02:00"
}

WorkTimeEntry einzeln aktualisieren

PUT/api/time/workentries/{id}

Pfad-Parameter

idPflichtstring

Request-Body application/json

  • work_time_entryWorkTimeEntry2
    Felder anzeigen (9)
    • personCRMPerson36

      Person, die gearbeitet hat.

    • contractEmploymentContract7

      Vertrag, auf dem die Arbeitszeit gebucht wird.

    • descriptionstring

      Beschreibung der Arbeit.

    • startstring (date-time)

      Beginn der Arbeitszeit.

    • endstring (date-time)

      Ende der Arbeitszeit.

    • break_startstring (date-time)

      Beginn der Pause.

    • break_endstring (date-time)

      Ende der Pause.

    • force_no_breakboolean

      Für diesen Eintrag wird keine Pause hinzugefügt.

    • content_typestring

      Art der Tätigkeit, zum Beispiel Arbeit oder Training.

Antworten

200WorkTimeEntry einzeln aktualisierenWorkTimeEntry

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request PUT \
  --url https://eure-instanz.iw-erp.de/api/time/workentries/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "work_time_entry": {
    "description": "Text",
    "start": "2026-10-15T09:30:00+02:00",
    "end": "2026-10-15T09:30:00+02:00",
    "break_start": "2026-10-15T09:30:00+02:00",
    "break_end": "2026-10-15T09:30:00+02:00",
    "force_no_break": true
  }
}
'
Antwort 200 application/json
{
  "id": 42,
  "description": "Text",
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "start": "2026-10-15T09:30:00+02:00",
  "start_date": "2026-10-15T09:30:00+02:00",
  "start_month": 1,
  "start_year": 1,
  "end": "2026-10-15T09:30:00+02:00",
  "break_start": "2026-10-15T09:30:00+02:00",
  "break_end": "2026-10-15T09:30:00+02:00"
}

WorkTimeEntry einzeln aktualisieren

PATCH/api/time/workentries/{id}

Pfad-Parameter

idPflichtstring

Request-Body application/json

  • work_time_entryWorkTimeEntry2
    Felder anzeigen (9)
    • personCRMPerson36

      Person, die gearbeitet hat.

    • contractEmploymentContract7

      Vertrag, auf dem die Arbeitszeit gebucht wird.

    • descriptionstring

      Beschreibung der Arbeit.

    • startstring (date-time)

      Beginn der Arbeitszeit.

    • endstring (date-time)

      Ende der Arbeitszeit.

    • break_startstring (date-time)

      Beginn der Pause.

    • break_endstring (date-time)

      Ende der Pause.

    • force_no_breakboolean

      Für diesen Eintrag wird keine Pause hinzugefügt.

    • content_typestring

      Art der Tätigkeit, zum Beispiel Arbeit oder Training.

Antworten

200WorkTimeEntry einzeln aktualisierenWorkTimeEntry

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request PATCH \
  --url https://eure-instanz.iw-erp.de/api/time/workentries/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "work_time_entry": {
    "description": "Text",
    "start": "2026-10-15T09:30:00+02:00",
    "end": "2026-10-15T09:30:00+02:00",
    "break_start": "2026-10-15T09:30:00+02:00",
    "break_end": "2026-10-15T09:30:00+02:00",
    "force_no_break": true
  }
}
'
Antwort 200 application/json
{
  "id": 42,
  "description": "Text",
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "start": "2026-10-15T09:30:00+02:00",
  "start_date": "2026-10-15T09:30:00+02:00",
  "start_month": 1,
  "start_year": 1,
  "end": "2026-10-15T09:30:00+02:00",
  "break_start": "2026-10-15T09:30:00+02:00",
  "break_end": "2026-10-15T09:30:00+02:00"
}

Einen einzelnen WorkTimeEntry löschen

DELETE/api/time/workentries/{id}

Pfad-Parameter

idPflichtstring

Antworten

200Einen einzelnen WorkTimeEntry löschenWorkTimeEntry

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request DELETE \
  --url https://eure-instanz.iw-erp.de/api/time/workentries/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "description": "Text",
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "start": "2026-10-15T09:30:00+02:00",
  "start_date": "2026-10-15T09:30:00+02:00",
  "start_month": 1,
  "start_year": 1,
  "end": "2026-10-15T09:30:00+02:00",
  "break_start": "2026-10-15T09:30:00+02:00",
  "break_end": "2026-10-15T09:30:00+02:00"
}

Den aktuellen eigenen WorkTimeEntry abrufen

GET/api/time/current_own_workentry

Antworten

200Den aktuellen eigenen WorkTimeEntry abrufenWorkTimeEntry

Felder anzeigen (27)
  • idinteger

    Primärschlüssel des Arbeitszeiteintrags. Interne ID.

  • userUser14

    Benutzer, der gearbeitet hat.

    Felder anzeigen (10)
    • idinteger

      Primärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.

    • namestring

      Anzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.

    • usernamestring

      Anmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.

    • emailstring

      E-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.

    • positioningeneralstring

      Freitext zur Position oder Rolle des Benutzers.

    • crm_personCRMPerson10

      CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.

    • profile_picture_urlstring

      URL des Profilbilds des Benutzers.

    • archivedboolean

      Markiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.

    • require2faboolean

      Für diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.

    • search_stringstring

      Text, unter dem die Entität gesucht werden kann.

  • descriptionstring

    Beschreibung der Arbeit.

  • startstring (date-time)

    Beginn der Arbeitszeit.

  • start_datestring

    Startdatum der Arbeitszeit als Text.

  • start_monthinteger

    Monat des Beginns.

  • start_yearinteger

    Jahr des Beginns.

  • endstring (date-time)

    Ende der Arbeitszeit.

  • break_startstring (date-time)

    Beginn der Pause.

  • break_endstring (date-time)

    Ende der Pause.

  • break_durationinteger

    Pausendauer in Sekunden

  • manual_break_durationinteger

    Z17.2: Pausendauer in Sekunden ohne Lage, z. B. aus einer genehmigten Korrektur, die nur die Dauer der Pause ändert. Zählt wie eine erfasste Pause, solange keine Pause mit Beginn und Ende erfasst ist; null = keine.

  • auto_breakboolean

    Eine Pause wurde automatisch hinzugefügt.

  • force_no_breakboolean

    Für diesen Eintrag wird keine Pause hinzugefügt.

  • durationinteger

    Dauer in Sekunden

  • auto_closedboolean

    Der Eintrag wurde automatisch abgeschlossen.

  • has_warningboolean

    Der Eintrag hat eine Warnung, zum Beispiel ein fehlendes Ende.

  • has_scanner_startboolean

    Der Beginn wurde mit dem Scanner erfasst.

  • has_scanner_endboolean

    Das Ende wurde mit dem Scanner erfasst.

  • closed_editingboolean

    Die Bearbeitung des Eintrags ist gesperrt.

  • closed_editing_hrboolean

    Die Bearbeitung des Eintrags ist für HR gesperrt.

  • confirmedboolean

    Der Eintrag ist bestätigt.

  • shift_plan_entryShiftPlanEntry3

    L38: die Schicht, für die dieser Eintrag eingestempelt wurde. Der Eintrag behält die realen Uhrzeiten; die Verknüpfung gibt nur an, zu welcher geplanten Schicht sie gehören.

    Felder anzeigen (29)
    • opened_absence_typestring

      Die Abwesenheitsart als einfache Bezeichnung, damit die Planung „Krank“ anzeigen kann, ohne die ganze Anfrage in jede Schicht zu übernehmen.

    • idinteger

      Primärschlüssel des Schichtplan-Eintrags. Interne ID.

    • userUser14

      Der Schicht zugewiesener Benutzer.

    • personCRMPerson10

      Person, die der Schicht zugewiesen ist.

    • contractEmploymentContract5

      Vertrag, auf dem die Schicht geplant ist.

    • employment_contract_groupEmploymentContractGroup

      Planungscontainer - Pflichtangabe, auch wenn eine Person einer anderen Gruppe aushilft.

    • shift_typeShiftType5

      Ursprungstyp - Zeiten wurden kopiert, der Verweis dient nur der Information.

    • startstring (date-time)

      Beginn des Dienstes.

    • endstring (date-time)

      Ende der Schicht.

    • start_datestring

      Startdatum des Dienstes als Text.

    • start_monthinteger

      Monat der Schicht.

    • start_yearinteger

      Jahr der Schicht.

    • break_duration_secondsinteger

      Pausendauer der Schicht in Sekunden.

    • durationinteger

      Zielsekunden: (Ende - Start) - Pause, wird von recalculate() gepflegt.

    • required_qualificationEmploymentQualification5

      Für die Schicht erforderliche Qualifikation.

    • qualification_match_modestring

      L18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.

    • statusstring

      Status des Dienstes, zum Beispiel geplant oder veröffentlicht.

    • published_atstring (date-time)

      Zeitpunkt, zu dem die Schicht veröffentlicht wurde.

    • descriptionstring

      Beschreibung der Schicht.

    • has_warningboolean

      Gespeichertes Konfliktkennzeichen für Listen-Badges - die konkreten Warnungen werden bei Bedarf berechnet (ShiftPlanHelper) und nur vorübergehend zurückgegeben.

    • availability_bookingBaseBooking13

      L35: die Verfügbarkeit, für die die veröffentlichte Schicht im Buchungsbereich steht (wird vom ShiftBookingSyncHelper synchron gehalten, solange die Synchronisation für den Vertrag aktiviert ist).

    • bookingBaseBooking13

      L35: der aus dieser Schicht erstellte Termin, falls vorhanden.

    • opened_reasonstring

      Grund, warum die Schicht für andere Mitarbeitende freigegeben wurde.

    • opened_atstring (date-time)

      Zeitpunkt, zu dem die Schicht geöffnet wurde.

    • opened_from_personCRMPerson10

      Wer die Schicht vor der Freigabe bearbeitet hat – die Zuweisung selbst ist entfallen, und die Planung muss wissen, wen sie fragen kann.

    • opened_absence_requestNonWorkTimeRequest5

      Die Abwesenheit, die ihn freigegeben hat, für OPENED_REASON_ABSENCE. Enthält Art und Tage, sodass die Planung „krank“ statt nur „jemand ist abwesend“ anzeigen kann.

    • lock_versioninteger

      Optimistische Sperre. Zwei Planer, die dieselbe Schicht bearbeiten, oder eine Wochenveröffentlichung, während jemand eine Schicht darin verschiebt, würden sonst stillschweigend einander überschreiben - der Unterlegene erhält jetzt einen 409. Nur lesend: Doctrine verwaltet den Wert, der Client sendet den zuletzt gesehenen Wert als Query-Parameter lock_version zurück.

    • createdstring (date-time)

      Zeitpunkt, zu dem der Datensatz angelegt wurde.

    • updatedstring (date-time)

      Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

  • shift_start_deviation_minutesinteger

    L38: Minuten, um die der reale Beginn vor (negativ) oder nach (positiv) dem geplanten Schichtbeginn liegt; null ohne Schicht.

  • shift_end_deviation_minutesinteger

    L38: Minuten, um die das reale Ende vor (negativ) oder nach (positiv) dem geplanten Schichtende liegt.

  • content_typestring

    Art der Tätigkeit, zum Beispiel Arbeit oder Training.

  • search_stringstring

    Text, unter dem die Entität gesucht werden kann.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/current_own_workentry \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "description": "Text",
  "user": {
    "id": 42,
    "name": "Beispiel",
    "username": "lena.hartmann@example.org",
    "email": "lena.hartmann@example.org",
    "profile_picture_url": "https://vynst.de",
    "positioningeneral": "string",
    "crm_person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "language": "de",
      "support_description": "Text",
      "profile_picture_url": "https://vynst.de",
      "address_street": "Jakobistr. 39",
      "address_city": "Hannover",
      "address_zip": "30163"
    },
    "archived": true,
    "require2fa": true,
    "search_string": "string"
  },
  "start": "2026-10-15T09:30:00+02:00",
  "start_date": "2026-10-15T09:30:00+02:00",
  "start_month": 1,
  "start_year": 1,
  "end": "2026-10-15T09:30:00+02:00",
  "break_start": "2026-10-15T09:30:00+02:00",
  "break_end": "2026-10-15T09:30:00+02:00"
}

WorkTimeEntries nach Monat gruppiert für Benutzer oder Person abrufen

GET/api/time/work_entry_grouped/months

Antworten

200WorkTimeEntries nach Monat gruppiert für Benutzer oder Person abrufenarray<WorkTimeEntryGroupedMonth>

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/work_entry_grouped/months \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {}
]

Eigene WorkTimeEntries nach Monat gruppiert abrufen

GET/api/time/work_entry_grouped/own_months

Antworten

200Eigene WorkTimeEntries nach Monat gruppiert abrufenarray<WorkTimeEntryGroupedMonth>

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/work_entry_grouped/own_months \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {}
]

WorkTimeEntries nach Datum gruppiert für Benutzer oder Person abrufen

GET/api/time/work_entry_grouped/dates

Antworten

200WorkTimeEntries nach Datum gruppiert für Benutzer oder Person abrufenarray<WorkTimeEntryGroupedDate>

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/work_entry_grouped/dates \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {}
]

Eigene WorkTimeEntries nach Datum gruppiert abrufen

GET/api/time/work_entry_grouped/own_dates

Antworten

200Eigene WorkTimeEntries nach Datum gruppiert abrufenarray<WorkTimeEntryGroupedDate>

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/time/work_entry_grouped/own_dates \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {}
]