NonWorkTimeAnnualRequest
List annual requests
GET/api/time/non_work_time_annual_request
Query parameters
idinteger | |
userstring | |
personstring | |
contractstring | |
yearstring | The vacation year the periods belong to. |
contentTypestring | Absence type of every period (NonWorkTimePlanSelectionType value). |
statusstring | Derived from the periods, see class comment. |
createdByUserstring | |
createdstring | |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200List NonWorkTimeAnnualRequest objectsarray<NonWorkTimeAnnualRequest>
Show fields (9)
idintegerPrimary key of the annual request. Internal ID.
userUser14User the annual request belongs to.
Show fields (10)
idintegerPrimary key of the user. Internal ID of the login user.
namestringDisplay name of the user. Shown in the UI and in audit entries.
usernamestringLogin name of the user. Must be unique across all users.
emailstringE-mail address of the user. Used for login notifications, password resets and as a login alias.
positioningeneralstringFree text describing the position or role of the user.
crm_personCRMPerson10CRM person linked to this login user. Connects the login account with the person record.
profile_picture_urlstringURL of the profile picture of the user.
archivedbooleanMarks the user as archived. Archived users are kept for history and are not active.
require2fabooleanTwo-factor authentication is required for this user.
search_stringstringText that the entity can be searched by.
personCRMPerson10Person the annual request belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
yearintegerThe vacation year the periods belong to.
content_typeintegerAbsence type of every period (NonWorkTimePlanSelectionType value).
descriptionstringDescription of the annual request.
statusstringDerived from the periods, see class comment.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/time/non_work_time_annual_request \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/time/non_work_time_annual_request', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/time/non_work_time_annual_request"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/time/non_work_time_annual_request', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/time/non_work_time_annual_request"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/time/non_work_time_annual_request")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/time/non_work_time_annual_request"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/non_work_time_annual_request_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await NonWorkTimeAnnualRequestController.getAll();
if (result.success) {
print(result.data);
}[
{
"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"
},
"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"
},
"year": 1,
"content_type": 1,
"status": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}
]Get a single annual request with its periods
GET/api/time/non_work_time_annual_request/{id}
Path parameters
idrequiredstring |
Responses
200Get a single NonWorkTimeAnnualRequestNonWorkTimeAnnualRequest3
Show fields (12)
idintegerPrimary key of the annual request. Internal ID.
userUser14User the annual request belongs to.
Show fields (10)
idintegerPrimary key of the user. Internal ID of the login user.
namestringDisplay name of the user. Shown in the UI and in audit entries.
usernamestringLogin name of the user. Must be unique across all users.
emailstringE-mail address of the user. Used for login notifications, password resets and as a login alias.
positioningeneralstringFree text describing the position or role of the user.
crm_personCRMPerson10CRM person linked to this login user. Connects the login account with the person record.
profile_picture_urlstringURL of the profile picture of the user.
archivedbooleanMarks the user as archived. Archived users are kept for history and are not active.
require2fabooleanTwo-factor authentication is required for this user.
search_stringstringText that the entity can be searched by.
personCRMPerson10Person the annual request belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
contractEmploymentContract11Employment contract the annual request belongs to.
Show fields (43)
staged_absence_approvalbooleannull inherits group then organization policy; existing installations stay off.
idintegerPrimary key of the employment contract. Internal ID.
tokenstringPublic token of the contract. Used instead of the ID.
userUser14Login user of the employee.
week_total_hoursnumber (float)Total working hours per week.
week_total_daysnumber (float)Total working days per week.
reserved_hours_preparationnumber (float)L03: weekly hours reserved for Vorbereitung - part of the contract hours but not plannable in the shift plan. null = none.
reserved_hours_follow_upnumber (float)L03: weekly hours reserved for Nachbereitung - part of the contract hours but not plannable in the shift plan. null = none.
reserved_hours_travelnumber (float)L03: weekly hours reserved for Fahrt - part of the contract hours but not plannable in the shift plan. null = none.
reserved_hours_flexiblenumber (float)L03: weekly hours reserved for freie Einteilung - part of the contract hours but not plannable in the shift plan. null = none.
week_full_time_total_daysnumber (float)Total working days per week for a full-time contract.
year_vacation_daysnumber (float)Vacation days per year.
month_vacation_daysnumber (float)Vacation days per month.
year_vacation_weeksnumber (float)Vacation weeks per year.
monday_hoursnumber (float)Working hours on Monday.
tuesday_hoursnumber (float)Working hours on Tuesday.
wednesday_hoursnumber (float)Working hours on Wednesday.
thursday_hoursnumber (float)Working hours on Thursday.
friday_hoursnumber (float)Working hours on Friday.
saturday_hoursnumber (float)Working hours on Saturday.
sunday_hoursnumber (float)Working hours on Sunday.
netto_hour_costnumber (float)Net cost per hour.
brutto_hour_costnumber (float)Gross cost per hour.
startstring (date-time)Start date of the contract.
endstring (date-time)End date of the contract.
fixed_term_statusstringBefristung: PERMANENT (unbefristet, default), FIXED_TERM or EXTENDED (FIXED_TERM_STATUS_*).
fixed_term_endstring (date-time)Befristet bis (erster Zeitraum).
fixed_term_extension_endstring (date-time)Befristet bis nach Verlängerung.
probation_endstring (date-time)Probezeit bis; filled from the template's probationMonths when a contract is created without it.
numberstringContract number.
descriptionstringDescription of the contract.
archivedbooleanThe contract is archived.
allow_app_time_trackingbooleanThe employee may track time in the app.
allow_scanner_time_trackingbooleanThe employee may track time with the scanner.
allow_app_non_work_time_managementbooleanThe employee may manage absences in the app.
force_no_auto_breakbooleanAutomatic breaks are not added for this contract.
work_time_modestringHow the target working time is defined - null behaves as WEEKDAY_HOURS so existing contracts keep their previous behaviour unchanged.
holiday_credit_modestringHoliday credit for WEEK_TOTAL contracts - null behaves as WEEKDAY_TARGET (previous behaviour, only meaningful for WEEKDAY_HOURS contracts).
holiday_credit_fixed_secondsintegerFixed holiday credit in seconds.
planning_weekdays_bitmaskintegerISO weekday bitmask (Mo=1 ... So=64) of the days this WEEK_TOTAL contract can be planned / takes vacation on - null behaves as Mo-Fr.
request_lead_time_daysintegerDays an absence request has to be handed in ahead of its first day ("Bearbeitungs- frist"). null falls back to the contract group and from there to the installation wide setting, so an existing contract keeps behaving exactly as before.
shift_booking_syncbooleanL35: shifts as availabilities / appointments in the booking area; null inherits the group (which inherits the organisation).
search_stringstringText that the entity can be searched by.
created_by_userUser14User who created the annual request.
Show fields (10)
idintegerPrimary key of the user. Internal ID of the login user.
namestringDisplay name of the user. Shown in the UI and in audit entries.
usernamestringLogin name of the user. Must be unique across all users.
emailstringE-mail address of the user. Used for login notifications, password resets and as a login alias.
positioningeneralstringFree text describing the position or role of the user.
crm_personCRMPerson10CRM person linked to this login user. Connects the login account with the person record.
profile_picture_urlstringURL of the profile picture of the user.
archivedbooleanMarks the user as archived. Archived users are kept for history and are not active.
require2fabooleanTwo-factor authentication is required for this user.
search_stringstringText that the entity can be searched by.
yearintegerThe vacation year the periods belong to.
content_typeintegerAbsence type of every period (NonWorkTimePlanSelectionType value).
descriptionstringDescription of the annual request.
statusstringDerived from the periods, see class comment.
requestsarray<NonWorkTimeRequest6>Non-work time requests created from the annual request.
Show fields (39)
overduebooleanU04: still waiting after the processing deadline.
approval_versionintegerVersion of the approval process.
change_modestringMode of a change to the request.
balance_override_reasonstringL11: why a planner approved this request although the projected vacation balance was negative.
coverage_override_reasonstringL54: why the approver accepted a day below the minimum staffing.
coverage_hintbooleanL53: handed in although it eats into the staffing buffer - the approvers see the hint.
sick_during_vacationbooleanU13: a sick report inside approved vacation - set by the server, shown as "während Urlaub".
consultation_notestringWho was consulted before requesting days a blocking period marks as consultation-only (U14).
daily_absence_start_timestringLocal daily absence window for half-day types; null preserves legacy planning.
daily_absence_end_timestringEnd time of daily absence.
idintegerPrimary key of the request. Internal ID.
userUser14User the request belongs to.
contractEmploymentContract11Employment contract the request belongs to.
descriptionstringDescription of the request.
startstring (date-time)Start of the requested period.
start_datestringStart date of the requested period.
start_monthintegerStart month of the requested period.
start_yearintegerStart year of the requested period.
endstring (date-time)End of the requested period.
end_datestringEnd date of the requested period.
end_monthintegerEnd month of the requested period.
end_yearintegerEnd year of the requested period.
durationnumber (float)duration in days linked to NonWorkTimePlan - a half day type counts 0.5 (Z6)
statusstringStatus of the request.
content_typestringType of the request, e.g. vacation or absence.
secondary_content_typestringSecondary type of the request.
linked_content_typeNonWorkTimePlanSelectionType3Plan selection type linked to the request.
attachmentsarray<Attachment10>Attachments of the request.
commentsarray<NonWorkTimeRequestComment5>Comments on the request.
plan_entriesarray<NonWorkTimePlan2>Plan entries generated for the request.
parent_requestNonWorkTimeRequest6The request this one changes ("Änderungsantrag zum Jahresurlaub"). A change request is an ordinary request in every other respect; the reference is what turns a second, unrelated looking request into a visible correction of the first - and what lets the days it withdraws be marked as withdrawn instead of merely refused.
annual_requestNonWorkTimeAnnualRequest3L47/L48: the annual plan ("Jahresurlaubsantrag") this period belongs to. The bundle is decided as a whole; the period stays an ordinary request in every other respect.
request_kindstringU02/U18: ANNUAL = period of the annual plan, SUPPLEMENT = Ergänzungsantrag for the held back flexible days. null = ordinary request.
processing_due_datestring (date-time)U04/U20: the day by which the request has to be decided, counted from its receipt.
escalated_atstring (date-time)U04: when the overdue escalation was sent; null = not (yet) escalated.
written_approval_reasonstringU21: why the management step with a written comment was added to this request (e.g. SUMMER_CANCELLATION); null = no extra written approval needed.
search_stringstringText that the entity can be searched by.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/time/non_work_time_annual_request/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/non_work_time_annual_request_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await NonWorkTimeAnnualRequestController.get('42');
if (result.success) {
print(result.data);
}{
"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"
},
"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"
},
"contract": {
"id": 42,
"description": "Text",
"staged_absence_approval": true,
"token": "string",
"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"
},
"week_total_hours": 1.5,
"week_total_days": 1.5,
"reserved_hours_preparation": 1.5,
"reserved_hours_follow_up": 1.5,
"reserved_hours_travel": 1.5
},
"created_by_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"
},
"year": 1,
"content_type": 1,
"status": "string",
"requests": [
{
"id": 42,
"description": "Text",
"overdue": true,
"approval_version": 1,
"change_mode": "string",
"balance_override_reason": "string",
"coverage_override_reason": "string",
"coverage_hint": true,
"sick_during_vacation": true,
"consultation_note": "string"
}
]
}