Skip to content
Developer

VolunteerHourEntry

Volunteering8 EndpointsTimeTracking / VolunteerHourEntry

List volunteer hour entries

GET/api/time/volunteer_hour_entry

Query parameters

idinteger
personstring
statusstring
workDatestringDay the work was done.
eventstring
settlementstringThe settlement that consumed this entry. A settled entry can no longer be changed.
createdstring
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

200Returns a list of VolunteerHourEntry objectsarray<VolunteerHourEntry>

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
[
  {
    "approved_by_name": "Beispiel",
    "id": 42,
    "description": "Text",
    "shift_assignment_id": 42,
    "settlement_id": 42,
    "is_settled": true,
    "person": {
      "id": 42,
      "first_name": "Lena",
      "last_name": "Hartmann",
      "title": "Beispiel",
      "number": 1,
      "manual_number": 1,
      "number_string": "string",
      "gender": "string",
      "nickname": "string",
      "preferred_color_hex": "string"
    },
    "work_date": "2026-10-15T09:30:00+02:00",
    "duration_minutes": 1,
    "status": "string"
  }
]

Record volunteer hours for a member. Entries of the administration are approved at once.

POST/api/time/volunteer_hour_entry

Request body application/json

  • dataVolunteerHourEntry2
    Show fields (5)
    • personCRMPerson33

      Volunteer who worked the hours.

    • work_datestring (date-time)

      Day the work was done.

    • duration_minutesinteger

      Duration of the work in minutes.

    • descriptionstring

      Description of the work.

    • eventBaseEvent11

      Event the hours were worked for.

Responses

200Add a new VolunteerHourEntryVolunteerHourEntry

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "description": "Text",
    "work_date": "2026-10-15T09:30:00+02:00",
    "duration_minutes": 1
  }
}
'
Response 200 application/json
{
  "approved_by_name": "Beispiel",
  "id": 42,
  "description": "Text",
  "shift_assignment_id": 42,
  "settlement_id": 42,
  "is_settled": true,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "number": 1,
    "manual_number": 1,
    "number_string": "string",
    "gender": "string",
    "nickname": "string",
    "preferred_color_hex": "string"
  },
  "work_date": "2026-10-15T09:30:00+02:00",
  "duration_minutes": 1,
  "status": "string"
}

Get a single volunteer hour entry

GET/api/time/volunteer_hour_entry/{id}

Path parameters

idrequiredstring

Responses

200Returns a single VolunteerHourEntryVolunteerHourEntry

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "approved_by_name": "Beispiel",
  "id": 42,
  "description": "Text",
  "shift_assignment_id": 42,
  "settlement_id": 42,
  "is_settled": true,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "number": 1,
    "manual_number": 1,
    "number_string": "string",
    "gender": "string",
    "nickname": "string",
    "preferred_color_hex": "string"
  },
  "work_date": "2026-10-15T09:30:00+02:00",
  "duration_minutes": 1,
  "status": "string"
}

Update a volunteer hour entry that is not settled yet

PUT/api/time/volunteer_hour_entry/{id}

Path parameters

idrequiredstring

Request body application/json

  • dataVolunteerHourEntry2
    Show fields (5)
    • personCRMPerson33

      Volunteer who worked the hours.

    • work_datestring (date-time)

      Day the work was done.

    • duration_minutesinteger

      Duration of the work in minutes.

    • descriptionstring

      Description of the work.

    • eventBaseEvent11

      Event the hours were worked for.

Responses

200Update a VolunteerHourEntryVolunteerHourEntry

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request PUT \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "description": "Text",
    "work_date": "2026-10-15T09:30:00+02:00",
    "duration_minutes": 1
  }
}
'
Response 200 application/json
{
  "approved_by_name": "Beispiel",
  "id": 42,
  "description": "Text",
  "shift_assignment_id": 42,
  "settlement_id": 42,
  "is_settled": true,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "number": 1,
    "manual_number": 1,
    "number_string": "string",
    "gender": "string",
    "nickname": "string",
    "preferred_color_hex": "string"
  },
  "work_date": "2026-10-15T09:30:00+02:00",
  "duration_minutes": 1,
  "status": "string"
}

Update a volunteer hour entry that is not settled yet

PATCH/api/time/volunteer_hour_entry/{id}

Path parameters

idrequiredstring

Request body application/json

  • dataVolunteerHourEntry2
    Show fields (5)
    • personCRMPerson33

      Volunteer who worked the hours.

    • work_datestring (date-time)

      Day the work was done.

    • duration_minutesinteger

      Duration of the work in minutes.

    • descriptionstring

      Description of the work.

    • eventBaseEvent11

      Event the hours were worked for.

Responses

200Update a VolunteerHourEntryVolunteerHourEntry

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request PATCH \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "description": "Text",
    "work_date": "2026-10-15T09:30:00+02:00",
    "duration_minutes": 1
  }
}
'
Response 200 application/json
{
  "approved_by_name": "Beispiel",
  "id": 42,
  "description": "Text",
  "shift_assignment_id": 42,
  "settlement_id": 42,
  "is_settled": true,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "number": 1,
    "manual_number": 1,
    "number_string": "string",
    "gender": "string",
    "nickname": "string",
    "preferred_color_hex": "string"
  },
  "work_date": "2026-10-15T09:30:00+02:00",
  "duration_minutes": 1,
  "status": "string"
}

Delete a volunteer hour entry that is not settled yet

DELETE/api/time/volunteer_hour_entry/{id}

Path parameters

idrequiredstring

Responses

default

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

Approve a volunteer hour entry - only approved entries count towards the required hours

POST/api/time/volunteer_hour_entry/{id}/approve

Path parameters

idrequiredstring

Responses

200Approve a VolunteerHourEntryVolunteerHourEntry

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry/42/approve \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "approved_by_name": "Beispiel",
  "id": 42,
  "description": "Text",
  "shift_assignment_id": 42,
  "settlement_id": 42,
  "is_settled": true,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "number": 1,
    "manual_number": 1,
    "number_string": "string",
    "gender": "string",
    "nickname": "string",
    "preferred_color_hex": "string"
  },
  "work_date": "2026-10-15T09:30:00+02:00",
  "duration_minutes": 1,
  "status": "string"
}

Reject a volunteer hour entry, optionally with a reason (`reason`) shown to the member

POST/api/time/volunteer_hour_entry/{id}/reject

Path parameters

idrequiredstring

Responses

200Reject a VolunteerHourEntryVolunteerHourEntry

Show fields (15)
  • shift_assignment_idinteger
  • settlement_idinteger
  • is_settledboolean
  • approved_by_namestring
  • idinteger

    Primary key of the volunteer hour entry. Internal ID.

  • personCRMPerson27

    Volunteer who worked the hours.

    Show fields (11)
    • idinteger

      Primary key of the person. Internal ID.

    • first_namestring

      First name of the person.

    • last_namestring

      Last name of the person.

    • numberinteger

      Member or customer number of the person.

    • manual_numberinteger

      Number set manually instead of the automatic number.

    • number_stringstring

      Member or customer number as text, including prefix.

    • genderstring

      Gender of the person.

    • titlestring

      Academic or other title of the person.

    • nicknamestring

      Nickname of the person.

    • preferred_color_hexstring

      Preferred color of the person as hex value.

    • avatar_tokenstring

      Token of the avatar image.

  • work_datestring (date-time)

    Day the work was done.

  • duration_minutesinteger

    Duration of the work in minutes.

  • descriptionstring

    Description of the work.

  • statusstring

    Status of the entry, for example pending, approved or rejected.

  • rejection_reasonstring

    Reason the entry was rejected.

  • eventBaseEvent10

    Event the hours were worked for.

    Show fields (45)
    • ticketSeatingPlanIdinteger

      Id of the seating plan, also for the public and the customer serialization.

    • bib_numbers_enabledboolean
    • timing_enabledboolean
    • idinteger

      Primary key of the event. Internal ID.

    • public_subtitlestring

      Subtitle shown in the public event listing.

    • event_typestring

      Type of the event, for example course, trip or tournament.

    • event_people_limitinteger

      maximum number of people that can attend the event

    • event_people_min_limitinteger

      minimum number of people that must attend the event

    • hide_event_people_limitboolean

      a setting to hide the event people limit in the frontend ui

    • has_wait_listboolean

      The event has a waiting list once it is full.

    • wait_list_confirmation_requiredboolean

      Participants from the waiting list must confirm their place.

    • trial_enabledboolean

      Trial sessions (Schnuppern) are offered for this event. Off by default: the event has to opt in, the rule comes from trialPolicy, the event's category or the default rule.

    • can_sign_up_for_main_eventboolean

      Participants may sign up for the main event.

    • only_sign_up_for_main_eventboolean

      Participants may only sign up for the main event, not for sub-events.

    • start_timestring (date-time)

      Start of the event.

    • end_timestring (date-time)

      End of the event.

    • require_addressboolean

      Participants must enter an address when signing up.

    • require_contactboolean

      Participants must enter contact details when signing up.

    • require_billingboolean

      Participants must enter billing details when signing up.

    • allow_direct_billingboolean
    • require_direct_billingboolean
    • allow_budget_sign_upboolean
    • require_ageboolean

      Participants must enter their age when signing up.

    • require_grade_levelboolean

      Participants must enter their school grade level when signing up.

    • require_free_note_field_idsstring

      IDs of the free note fields that participants must fill in.

    • generate_new_bookingsboolean

      Bookings are generated automatically for the event schedule.

    • generate_new_bookings_v2boolean

      Bookings are generated with the second version of the schedule generator.

    • generate_ignore_sys_calendarboolean

      Generated bookings ignore the holidays of the system calendar.

    • generate_hour_startstring (date-time)

      Start time of the day for generated bookings.

    • generate_hour_endstring (date-time)

      End time of the day for generated bookings.

    • generate_day_of_weekinteger

      Weekday for generated bookings.

    • bitmask_days_of_weekinteger

      This is a bitmask value of the days of the week the event occurs on

    • bitmask_hours_startinteger

      This is a bitmask value of the hours an event starts on

    • summarized_date_timesstring

      This is a string with the days and hours an event starts on

    • customer_detail_ctastring

      Call-to-action text shown in the customer app on the event detail page.

    • customer_badgestring

      Badge text shown on the event in the customer app.

    • bib_number_modestring

      Vergabeart der Startnummern: OFF, MANUAL, AUTOMATIC oder BATCH. Greift nur, wenn der Event-Typ Startnummern hat (enableBibNumbers).

    • timing_gun_startstring (date-time)

      Startschuss; ohne Wert gilt startTime.

    • timing_public_liveboolean

      Live timing results are public.

    • timing_gps_trackingboolean

      GPS tracking of participants is enabled for timing.

    • timing_self_check_inboolean

      Participants can check in themselves for timing.

    • ticket_sales_enabledboolean

      Ticketverkauf statt Anmeldung: Teilnehmer kaufen Tickets (Ticketarten = Event-Preise mit Kontingent und Verkaufszeitraum), jedes Ticket bekommt einen Code für den Check-in. Greift nur mit der Einstellung event_ticket_sales_enabled.

    • ticket_max_per_orderinteger

      Höchstzahl Tickets je Bestellung; ohne Wert gilt event_ticket_max_per_order_default.

    • ticket_personalizedboolean

      Personalisierte Tickets: jedes Ticket braucht den Namen des Teilnehmers. Sonst laufen alle Tickets einer Bestellung auf den Namen des Käufers.

    • ticket_seatingboolean

      Platzwahl beim Ticketverkauf: jedes Ticket bekommt einen freien Platz aus dem Saalplan des Raums (BaseBookable::ticketSeatingPlan); die Ticketart kann auf eine Zone (ticketSeatZone) beschränkt sein. Greift nur mit der Einstellung event_ticket_seating_enabled.

  • approved_atstring (date-time)

    Time the entry was approved.

  • createdstring (date-time)

    Time the entry was created.

  • updatedstring (date-time)

    Time the entry was last changed.

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/time/volunteer_hour_entry/42/reject \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "approved_by_name": "Beispiel",
  "id": 42,
  "description": "Text",
  "shift_assignment_id": 42,
  "settlement_id": 42,
  "is_settled": true,
  "person": {
    "id": 42,
    "first_name": "Lena",
    "last_name": "Hartmann",
    "title": "Beispiel",
    "number": 1,
    "manual_number": 1,
    "number_string": "string",
    "gender": "string",
    "nickname": "string",
    "preferred_color_hex": "string"
  },
  "work_date": "2026-10-15T09:30:00+02:00",
  "duration_minutes": 1,
  "status": "string"
}