Skip to content
Developer

WorkTimeEntry

Staff11 EndpointsTimeTracking / WorkTimeEntry

Get all WorkTimeEntry

GET/api/time/workentries

Query parameters

searchStringstringtext to search for in the list
orderFieldNamestringname of the order field
orderFieldSortstringsorting modeAllowed: DESCASC
pageintegerpage of the list
pageSizeintegernumber of entries for each page
withMaxPageNumberstringreturns the number of pages available as a header if this is set

Responses

200Get all WorkTimeEntryarray<WorkTimeEntry>

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/time/workentries \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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"
  }
]

Create a single WorkTimeEntry

POST/api/time/workentries

Request body application/json

  • work_time_entryWorkTimeEntry2
    Show fields (9)
    • personCRMPerson36

      Person who worked.

    • contractEmploymentContract7

      Contract the work time is booked on.

    • descriptionstring

      Description of the work.

    • startstring (date-time)

      Start of the work time.

    • endstring (date-time)

      End of the work time.

    • break_startstring (date-time)

      Start of the break.

    • break_endstring (date-time)

      End of the break.

    • force_no_breakboolean

      No break is added for this entry.

    • content_typestring

      Type of the work, for example work or training.

Responses

200Create a single WorkTimeEntryWorkTimeEntry

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request POST \
  --url https://your-instance.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
  }
}
'
Response 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"
}

Get a single WorkTimeEntry

GET/api/time/workentries/{id}

Path parameters

idrequiredstring

Responses

200Get a single WorkTimeEntryWorkTimeEntry

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/time/workentries/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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"
}

Update a single WorkTimeEntry

PUT/api/time/workentries/{id}

Path parameters

idrequiredstring

Request body application/json

  • work_time_entryWorkTimeEntry2
    Show fields (9)
    • personCRMPerson36

      Person who worked.

    • contractEmploymentContract7

      Contract the work time is booked on.

    • descriptionstring

      Description of the work.

    • startstring (date-time)

      Start of the work time.

    • endstring (date-time)

      End of the work time.

    • break_startstring (date-time)

      Start of the break.

    • break_endstring (date-time)

      End of the break.

    • force_no_breakboolean

      No break is added for this entry.

    • content_typestring

      Type of the work, for example work or training.

Responses

200Update a single WorkTimeEntryWorkTimeEntry

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request PUT \
  --url https://your-instance.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
  }
}
'
Response 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"
}

Update a single WorkTimeEntry

PATCH/api/time/workentries/{id}

Path parameters

idrequiredstring

Request body application/json

  • work_time_entryWorkTimeEntry2
    Show fields (9)
    • personCRMPerson36

      Person who worked.

    • contractEmploymentContract7

      Contract the work time is booked on.

    • descriptionstring

      Description of the work.

    • startstring (date-time)

      Start of the work time.

    • endstring (date-time)

      End of the work time.

    • break_startstring (date-time)

      Start of the break.

    • break_endstring (date-time)

      End of the break.

    • force_no_breakboolean

      No break is added for this entry.

    • content_typestring

      Type of the work, for example work or training.

Responses

200Update a single WorkTimeEntryWorkTimeEntry

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request PATCH \
  --url https://your-instance.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
  }
}
'
Response 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"
}

Delete a single WorkTimeEntry

DELETE/api/time/workentries/{id}

Path parameters

idrequiredstring

Responses

200Delete a single WorkTimeEntryWorkTimeEntry

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/time/workentries/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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"
}

Get the current own WorkTimeEntry

GET/api/time/current_own_workentry

Responses

200Get the current own WorkTimeEntryWorkTimeEntry

Show fields (27)
  • idinteger

    Primary key of the work time entry. Internal ID.

  • userUser14

    Login user who worked.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • descriptionstring

    Description of the work.

  • startstring (date-time)

    Start of the work time.

  • start_datestring

    Start date of the work time as text.

  • start_monthinteger

    Month of the start.

  • start_yearinteger

    Year of the start.

  • endstring (date-time)

    End of the work time.

  • break_startstring (date-time)

    Start of the break.

  • break_endstring (date-time)

    End of the break.

  • break_durationinteger

    duration of break in seconds

  • 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

    A break was added automatically.

  • force_no_breakboolean

    No break is added for this entry.

  • durationinteger

    duration in seconds

  • auto_closedboolean

    The entry was closed automatically.

  • has_warningboolean

    The entry has a warning, for example a missing end.

  • has_scanner_startboolean

    The start was recorded with the scanner.

  • has_scanner_endboolean

    The end was recorded with the scanner.

  • closed_editingboolean

    Editing of the entry is closed.

  • closed_editing_hrboolean

    Editing of the entry is closed for HR.

  • confirmedboolean

    The entry is confirmed.

  • shift_plan_entryShiftPlanEntry3

    L38: the shift this entry was clocked for. The entry keeps the real clock times; the link only says which planned shift they belong to.

    Show fields (29)
    • opened_absence_typestring

      The absence type as a plain label, so the planning can show "Krank" without pulling the whole request into every shift.

    • idinteger

      Primary key of the shift plan entry. Internal ID.

    • userUser14

      Login user assigned to the shift.

    • personCRMPerson10

      Person assigned to the shift.

    • contractEmploymentContract5

      Contract the shift is planned on.

    • employment_contract_groupEmploymentContractGroup

      Planning container - mandatory even when a person of another group helps out.

    • shift_typeShiftType5

      Origin type - times were copied, the reference is informational.

    • startstring (date-time)

      Start of the shift.

    • endstring (date-time)

      End of the shift.

    • start_datestring

      Start date of the shift as text.

    • start_monthinteger

      Month of the shift.

    • start_yearinteger

      Year of the shift.

    • break_duration_secondsinteger

      Break duration of the shift in seconds.

    • durationinteger

      Target seconds: (end - start) - break, maintained by recalculate().

    • required_qualificationEmploymentQualification5

      Qualification required for the shift.

    • qualification_match_modestring

      L18: EXACT demands the required qualification itself; EQUIVALENT (default, previous behaviour) also accepts linked or same-group qualifications with sufficient ranking.

    • statusstring

      Status of the shift, for example planned or published.

    • published_atstring (date-time)

      Time the shift was published.

    • descriptionstring

      Description of the shift.

    • has_warningboolean

      Persisted conflict flag for list badges - the concrete warnings are computed on demand (ShiftPlanHelper) and returned transiently.

    • availability_bookingBaseBooking13

      L35: the availability the published shift stands for in the booking area (kept in step by ShiftBookingSyncHelper while the sync is switched on for the contract).

    • bookingBaseBooking13

      L35: the appointment created from this shift, if any.

    • opened_reasonstring

      Reason the shift was opened for other staff.

    • opened_atstring (date-time)

      Time the shift was opened.

    • opened_from_personCRMPerson10

      Who worked the shift before it became open - the assignment itself is gone, and the planning has to know whom to ask.

    • opened_absence_requestNonWorkTimeRequest5

      The absence that freed it, for OPENED_REASON_ABSENCE. Carries the type and the days, so the planning sees "sick" instead of only "somebody is away".

    • lock_versioninteger

      Optimistic lock. Two planners editing the same shift, or publishing a week while someone else moves a shift inside it, would otherwise silently overwrite each other - the loser now gets a 409 instead. Read only: Doctrine owns the value, the client echoes the one it last saw back as the lock_version query parameter.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

  • shift_start_deviation_minutesinteger

    L38: minutes the real start lies before (negative) or after (positive) the planned shift start; null without a shift.

  • shift_end_deviation_minutesinteger

    L38: minutes the real end lies before (negative) or after (positive) the planned shift end.

  • content_typestring

    Type of the work, for example work or training.

  • search_stringstring

    Text that the entity can be searched by.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/time/current_own_workentry \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 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"
}

Get WorkTimeEntries grouped by month for user or person

GET/api/time/work_entry_grouped/months

Responses

200Get WorkTimeEntries grouped by month for user or personarray<WorkTimeEntryGroupedMonth>

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

Get own WorkTimeEntries grouped by month

GET/api/time/work_entry_grouped/own_months

Responses

200Get own WorkTimeEntries grouped by montharray<WorkTimeEntryGroupedMonth>

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

Get WorkTimeEntries grouped by date for user or person

GET/api/time/work_entry_grouped/dates

Responses

200Get WorkTimeEntries grouped by date for user or personarray<WorkTimeEntryGroupedDate>

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

Get own WorkTimeEntries grouped by date

GET/api/time/work_entry_grouped/own_dates

Responses

200Get own WorkTimeEntries grouped by datearray<WorkTimeEntryGroupedDate>

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