StaffingRequirement
Diese Methode liefert alle StaffingRequirement-Objekte
GET/api/time/staffing_requirement
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
namestring | |
modestring | |
bufferModestring | L53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde. | Benötigt Zugriffs-Tag: SCOPE |
employmentContractGroupstring | |
employmentOrganizationstring | |
organizationUnitstring | R7: eine Regel für einen ganzen Bereich (OrganizationUnit) - jede Gruppe jeder Organisation darin oder darunter. Nur ohne Gruppe und Organisation, mit staffing_organization_unit_enabled. | Benötigt Zugriffsrecht: SCOPE |
requiredQualificationstring | Optionale Qualifikation, die die gezählten Personen erfüllen müssen (Gleichwertigkeiten und Rangfolge werden vom QualificationMatchHelper berücksichtigt). |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der StaffingRequirement-Objekte.array<StaffingRequirement>
Felder anzeigen (21)
idintegerPrimärschlüssel des Besetzungsbedarfs. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Anforderung gilt.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
employment_organizationEmploymentOrganizationOrganisation, auf die sich die Anforderung bezieht.
Felder anzeigen (12)
staged_absence_approvalbooleannull übernimmt die Organisationsrichtlinie (Verträge); bestehende Installationen bleiben aus.
idintegerPrimärschlüssel der Beschäftigungsorganisation. Interne ID.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender (Bundesland) dieser Organisation; Gruppen dürfen ihn überschreiben.
organization_unitOrganizationUnit4L01: der Knoten des Organisationsbaums, an dem diese Organisation hängt (Einrichtung, Bereich, Geschäftsstelle ...). Leitende dieses Knotens und der darüberliegenden Knoten leiten auch diese Organisation.
shift_booking_syncbooleanL35: veröffentlichte Schichten der Personen dieser Organisation erscheinen als Verfügbarkeiten im Event-/Buchungsbereich, und eine Schicht kann in einen Termin umgewandelt werden. null = aus.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
include_in_auto_exportbooleanOb die Organisation in den automatischen Export einbezogen wird.
search_stringstringText, unter dem die Entität gesucht werden kann.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
organization_unitOrganizationUnit4R7: eine Regel für einen ganzen Bereich (OrganizationUnit) - jede Gruppe jeder Organisation darin oder darunter. Nur ohne Gruppe und Organisation, mit staffing_organization_unit_enabled.
Felder anzeigen (11)
pathstringDie Pfadbezeichnung für Auswahlfelder und Listen: „Geschäftsstelle / Bereich Sport / Halle Nord“.
depthintegeridintegerPrimärschlüssel der Organisationseinheit. Interne ID.
levelstringDie Ebene, die dieser Knoten darstellt, Freitext (Geschäftsstelle, Bereich, Einrichtung, ...).
parentOrganizationUnit4Übergeordnete Organisation der Einheit.
sort_orderintegerReihenfolge unter Geschwistern.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
required_qualificationEmploymentQualification4Optionale Qualifikation, die die gezählten Personen erfüllen müssen (Gleichwertigkeiten und Rangfolge werden vom QualificationMatchHelper berücksichtigt).
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification4>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/time/staffing_requirement \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/staffing_requirement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/staffing_requirement"
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://eure-instanz.iw-erp.de/api/time/staffing_requirement', [
'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://eure-instanz.iw-erp.de/api/time/staffing_requirement"),
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://eure-instanz.iw-erp.de/api/time/staffing_requirement")
.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://eure-instanz.iw-erp.de/api/time/staffing_requirement"
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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/staffing_requirement_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StaffingRequirementController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"employment_organization": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"allow_app_time_tracking": true,
"shift_booking_sync": true,
"allow_scanner_time_tracking": true,
"allow_app_non_work_time_management": true,
"include_in_auto_export": true,
"search_string": "string",
"deleted": true
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}
]StaffingRequirement neu anlegen
POST/api/time/staffing_requirement
Request-Body application/json
dataStaffingRequirement2Felder anzeigen (13)
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
Antworten
200StaffingRequirement neu anlegenStaffingRequirement3
Felder anzeigen (21)
idintegerPrimärschlüssel des Besetzungsbedarfs. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Anforderung gilt.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
employment_organizationEmploymentOrganization2Organisation, auf die sich die Anforderung bezieht.
Felder anzeigen (12)
staged_absence_approvalbooleannull übernimmt die Organisationsrichtlinie (Verträge); bestehende Installationen bleiben aus.
idintegerPrimärschlüssel der Beschäftigungsorganisation. Interne ID.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender (Bundesland) dieser Organisation; Gruppen dürfen ihn überschreiben.
organization_unitOrganizationUnit5L01: der Knoten des Organisationsbaums, an dem diese Organisation hängt (Einrichtung, Bereich, Geschäftsstelle ...). Leitende dieses Knotens und der darüberliegenden Knoten leiten auch diese Organisation.
shift_booking_syncbooleanL35: veröffentlichte Schichten der Personen dieser Organisation erscheinen als Verfügbarkeiten im Event-/Buchungsbereich, und eine Schicht kann in einen Termin umgewandelt werden. null = aus.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
include_in_auto_exportbooleanOb die Organisation in den automatischen Export einbezogen wird.
search_stringstringText, unter dem die Entität gesucht werden kann.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
organization_unitOrganizationUnit5R7: eine Regel für einen ganzen Bereich (OrganizationUnit) - jede Gruppe jeder Organisation darin oder darunter. Nur ohne Gruppe und Organisation, mit staffing_organization_unit_enabled.
Felder anzeigen (13)
pathstringDie Pfadbezeichnung für Auswahlfelder und Listen: „Geschäftsstelle / Bereich Sport / Halle Nord“.
depthintegeridintegerPrimärschlüssel der Organisationseinheit. Interne ID.
levelstringDie Ebene, die dieser Knoten darstellt, Freitext (Geschäftsstelle, Bereich, Einrichtung, ...).
parentOrganizationUnit5Übergeordnete Organisation der Einheit.
leadershiparray<CRMPerson10>Leitende dieses Knotens; sie leiten alles darunter.
staffing_alarm_recipientsarray<CRMPerson10>R7: wer benachrichtigt wird, wenn eine Besetzungsregel in diesem Bereich unter ihr Minimum fällt; leer = der nächsthöhere Bereich, am Ende staffing_alarm_recipient_persons.
sort_orderintegerReihenfolge unter Geschwistern.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
required_qualificationEmploymentQualificationOptionale Qualifikation, die die gezählten Personen erfüllen müssen (Gleichwertigkeiten und Rangfolge werden vom QualificationMatchHelper berücksichtigt).
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/time/staffing_requirement \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
name: 'Beispiel',
mode: 'string',
weekdays_bitmask: 1,
start_time: 'string',
end_time: 'string',
min_staff_count: 1
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/time/staffing_requirement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/staffing_requirement"
payload = { "data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/time/staffing_requirement', [
'body' => '{"data":{"name":"Beispiel","mode":"string","weekdays_bitmask":1,"start_time":"string","end_time":"string","min_staff_count":1}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/staffing_requirement"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/staffing_requirement")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/staffing_requirement"
payload := strings.NewReader("{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/staffing_requirement_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/staffing_requirement.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StaffingRequirementController.post(StaffingRequirement.fromJson({
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"employment_organization": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"allow_app_time_tracking": true,
"school_holiday_region": {
"id": 42,
"name": "Beispiel",
"region_code": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"shift_booking_sync": true,
"allow_scanner_time_tracking": true,
"allow_app_non_work_time_management": true,
"include_in_auto_export": true
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}Diese Methode liefert eine einzelne StaffingRequirement mit der angegebenen ID
GET/api/time/staffing_requirement/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Liefert ein einzelnes StaffingRequirement-Objekt.StaffingRequirement3
Felder anzeigen (21)
idintegerPrimärschlüssel des Besetzungsbedarfs. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Anforderung gilt.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
employment_organizationEmploymentOrganization2Organisation, auf die sich die Anforderung bezieht.
Felder anzeigen (12)
staged_absence_approvalbooleannull übernimmt die Organisationsrichtlinie (Verträge); bestehende Installationen bleiben aus.
idintegerPrimärschlüssel der Beschäftigungsorganisation. Interne ID.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender (Bundesland) dieser Organisation; Gruppen dürfen ihn überschreiben.
organization_unitOrganizationUnit5L01: der Knoten des Organisationsbaums, an dem diese Organisation hängt (Einrichtung, Bereich, Geschäftsstelle ...). Leitende dieses Knotens und der darüberliegenden Knoten leiten auch diese Organisation.
shift_booking_syncbooleanL35: veröffentlichte Schichten der Personen dieser Organisation erscheinen als Verfügbarkeiten im Event-/Buchungsbereich, und eine Schicht kann in einen Termin umgewandelt werden. null = aus.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
include_in_auto_exportbooleanOb die Organisation in den automatischen Export einbezogen wird.
search_stringstringText, unter dem die Entität gesucht werden kann.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
organization_unitOrganizationUnit5R7: eine Regel für einen ganzen Bereich (OrganizationUnit) - jede Gruppe jeder Organisation darin oder darunter. Nur ohne Gruppe und Organisation, mit staffing_organization_unit_enabled.
Felder anzeigen (13)
pathstringDie Pfadbezeichnung für Auswahlfelder und Listen: „Geschäftsstelle / Bereich Sport / Halle Nord“.
depthintegeridintegerPrimärschlüssel der Organisationseinheit. Interne ID.
levelstringDie Ebene, die dieser Knoten darstellt, Freitext (Geschäftsstelle, Bereich, Einrichtung, ...).
parentOrganizationUnit5Übergeordnete Organisation der Einheit.
leadershiparray<CRMPerson10>Leitende dieses Knotens; sie leiten alles darunter.
staffing_alarm_recipientsarray<CRMPerson10>R7: wer benachrichtigt wird, wenn eine Besetzungsregel in diesem Bereich unter ihr Minimum fällt; leer = der nächsthöhere Bereich, am Ende staffing_alarm_recipient_persons.
sort_orderintegerReihenfolge unter Geschwistern.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
required_qualificationEmploymentQualificationOptionale Qualifikation, die die gezählten Personen erfüllen müssen (Gleichwertigkeiten und Rangfolge werden vom QualificationMatchHelper berücksichtigt).
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/staffing_requirement/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://eure-instanz.iw-erp.de/api/time/staffing_requirement/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://eure-instanz.iw-erp.de/api/time/staffing_requirement/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://eure-instanz.iw-erp.de/api/time/staffing_requirement/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://eure-instanz.iw-erp.de/api/time/staffing_requirement/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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/staffing_requirement_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StaffingRequirementController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"employment_organization": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"allow_app_time_tracking": true,
"school_holiday_region": {
"id": 42,
"name": "Beispiel",
"region_code": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"shift_booking_sync": true,
"allow_scanner_time_tracking": true,
"allow_app_non_work_time_management": true,
"include_in_auto_export": true
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}StaffingRequirement aktualisieren
PUT/api/time/staffing_requirement/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
dataStaffingRequirement2Felder anzeigen (13)
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
Antworten
200StaffingRequirement aktualisierenStaffingRequirement3
Felder anzeigen (21)
idintegerPrimärschlüssel des Besetzungsbedarfs. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Anforderung gilt.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
employment_organizationEmploymentOrganization2Organisation, auf die sich die Anforderung bezieht.
Felder anzeigen (12)
staged_absence_approvalbooleannull übernimmt die Organisationsrichtlinie (Verträge); bestehende Installationen bleiben aus.
idintegerPrimärschlüssel der Beschäftigungsorganisation. Interne ID.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender (Bundesland) dieser Organisation; Gruppen dürfen ihn überschreiben.
organization_unitOrganizationUnit5L01: der Knoten des Organisationsbaums, an dem diese Organisation hängt (Einrichtung, Bereich, Geschäftsstelle ...). Leitende dieses Knotens und der darüberliegenden Knoten leiten auch diese Organisation.
shift_booking_syncbooleanL35: veröffentlichte Schichten der Personen dieser Organisation erscheinen als Verfügbarkeiten im Event-/Buchungsbereich, und eine Schicht kann in einen Termin umgewandelt werden. null = aus.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
include_in_auto_exportbooleanOb die Organisation in den automatischen Export einbezogen wird.
search_stringstringText, unter dem die Entität gesucht werden kann.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
organization_unitOrganizationUnit5R7: eine Regel für einen ganzen Bereich (OrganizationUnit) - jede Gruppe jeder Organisation darin oder darunter. Nur ohne Gruppe und Organisation, mit staffing_organization_unit_enabled.
Felder anzeigen (13)
pathstringDie Pfadbezeichnung für Auswahlfelder und Listen: „Geschäftsstelle / Bereich Sport / Halle Nord“.
depthintegeridintegerPrimärschlüssel der Organisationseinheit. Interne ID.
levelstringDie Ebene, die dieser Knoten darstellt, Freitext (Geschäftsstelle, Bereich, Einrichtung, ...).
parentOrganizationUnit5Übergeordnete Organisation der Einheit.
leadershiparray<CRMPerson10>Leitende dieses Knotens; sie leiten alles darunter.
staffing_alarm_recipientsarray<CRMPerson10>R7: wer benachrichtigt wird, wenn eine Besetzungsregel in diesem Bereich unter ihr Minimum fällt; leer = der nächsthöhere Bereich, am Ende staffing_alarm_recipient_persons.
sort_orderintegerReihenfolge unter Geschwistern.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
required_qualificationEmploymentQualificationOptionale Qualifikation, die die gezählten Personen erfüllen müssen (Gleichwertigkeiten und Rangfolge werden vom QualificationMatchHelper berücksichtigt).
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
name: 'Beispiel',
mode: 'string',
weekdays_bitmask: 1,
start_time: 'string',
end_time: 'string',
min_staff_count: 1
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42"
payload = { "data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42', [
'body' => '{"data":{"name":"Beispiel","mode":"string","weekdays_bitmask":1,"start_time":"string","end_time":"string","min_staff_count":1}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42"
payload := strings.NewReader("{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/staffing_requirement_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/staffing_requirement.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await StaffingRequirementController.put(StaffingRequirement.fromJson({
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"employment_organization": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"allow_app_time_tracking": true,
"school_holiday_region": {
"id": 42,
"name": "Beispiel",
"region_code": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"shift_booking_sync": true,
"allow_scanner_time_tracking": true,
"allow_app_non_work_time_management": true,
"include_in_auto_export": true
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}StaffingRequirement aktualisieren
PATCH/api/time/staffing_requirement/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
dataStaffingRequirement2Felder anzeigen (13)
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
Antworten
200StaffingRequirement aktualisierenStaffingRequirement3
Felder anzeigen (21)
idintegerPrimärschlüssel des Besetzungsbedarfs. Interne ID.
employment_contract_groupEmploymentContractGroupVertragsgruppe, für die die Anforderung gilt.
Felder anzeigen (25)
staged_absence_approvalbooleannull übernimmt die Organisation; false deaktiviert die gestufte Freigabe ausdrücklich.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Organisation, false schaltet es für diese Gruppe aus.
idintegerPrimärschlüssel der Vertragsgruppe. Interne ID.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Arbeitstage pro Woche.
year_vacation_daysnumber (float)Urlaubstage pro Jahr.
month_vacation_daysnumber (float)Urlaubstage pro Monat.
year_vacation_weeksnumber (float)Urlaubswochen pro Jahr.
monday_hoursnumber (float)Arbeitsstunden am Montag.
tuesday_hoursnumber (float)Arbeitsstunden am Dienstag.
wednesday_hoursnumber (float)Arbeitsstunden am Mittwoch.
thursday_hoursnumber (float)Arbeitsstunden am Donnerstag.
friday_hoursnumber (float)Arbeitsstunden am Freitag.
saturday_hoursnumber (float)Arbeitsstunden am Samstag.
sunday_hoursnumber (float)Arbeitsstunden am Sonntag.
netto_hour_costnumber (float)Nettokosten je Stunde.
brutto_hour_costnumber (float)Bruttokosten pro Stunde.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag dieser Gruppe vor seinem ersten Tag eingereicht werden muss. null greift auf die installationsweite Einstellung zurück – eine bestehende Gruppe verhält sich daher weiterhin genauso wie bisher.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender dieser Gruppe, wenn er vom Kalender der Organisation abweicht (Auszubildende, die in einem anderen Bundesland zur Schule gehen). null = der der Organisation.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
employment_organizationEmploymentOrganization2Organisation, auf die sich die Anforderung bezieht.
Felder anzeigen (12)
staged_absence_approvalbooleannull übernimmt die Organisationsrichtlinie (Verträge); bestehende Installationen bleiben aus.
idintegerPrimärschlüssel der Beschäftigungsorganisation. Interne ID.
allow_app_time_trackingbooleanOb die Zeiterfassung in der App erlaubt ist.
school_holiday_regionSchoolHolidayRegionU09: der Schulkalender (Bundesland) dieser Organisation; Gruppen dürfen ihn überschreiben.
organization_unitOrganizationUnit5L01: der Knoten des Organisationsbaums, an dem diese Organisation hängt (Einrichtung, Bereich, Geschäftsstelle ...). Leitende dieses Knotens und der darüberliegenden Knoten leiten auch diese Organisation.
shift_booking_syncbooleanL35: veröffentlichte Schichten der Personen dieser Organisation erscheinen als Verfügbarkeiten im Event-/Buchungsbereich, und eine Schicht kann in einen Termin umgewandelt werden. null = aus.
allow_scanner_time_trackingbooleanOb die Zeiterfassung per Scanner erlaubt ist.
allow_app_non_work_time_managementbooleanOb arbeitsfreie Zeit in der App verwaltet werden kann.
include_in_auto_exportbooleanOb die Organisation in den automatischen Export einbezogen wird.
search_stringstringText, unter dem die Entität gesucht werden kann.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
organization_unitOrganizationUnit5R7: eine Regel für einen ganzen Bereich (OrganizationUnit) - jede Gruppe jeder Organisation darin oder darunter. Nur ohne Gruppe und Organisation, mit staffing_organization_unit_enabled.
Felder anzeigen (13)
pathstringDie Pfadbezeichnung für Auswahlfelder und Listen: „Geschäftsstelle / Bereich Sport / Halle Nord“.
depthintegeridintegerPrimärschlüssel der Organisationseinheit. Interne ID.
levelstringDie Ebene, die dieser Knoten darstellt, Freitext (Geschäftsstelle, Bereich, Einrichtung, ...).
parentOrganizationUnit5Übergeordnete Organisation der Einheit.
leadershiparray<CRMPerson10>Leitende dieses Knotens; sie leiten alles darunter.
staffing_alarm_recipientsarray<CRMPerson10>R7: wer benachrichtigt wird, wenn eine Besetzungsregel in diesem Bereich unter ihr Minimum fällt; leer = der nächsthöhere Bereich, am Ende staffing_alarm_recipient_persons.
sort_orderintegerReihenfolge unter Geschwistern.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
modestringArt der Anforderung, zum Beispiel minimum staff oder exact staff.
weekdays_bitmaskintegerISO-Wochentagsbitmaske, an der die Regel gilt (Mo=1 ... So=64).
start_timestringStartzeit des Bedarfs in HH:MM.
end_timestringEndzeit der Anforderung als HH:MM.
min_staff_countintegerMindestanzahl benötigter Mitarbeitender.
buffer_staff_countintegerL51: zusätzlich gewünschte Personen über dem Minimum. Zwischen Minimum und Minimum + Puffer wird ein Selbstbedienungsantrag je nach bufferMode (L53) mit einem Hinweis für die Genehmiger eingereicht oder abgelehnt. 0 = kein Puffer.
buffer_modestringL53: HINT (Standard) reicht mit einem Hinweis ein, BLOCK lehnt einen Selbstbedienungsantrag ab, der den Tag unter Minimum + Puffer bringen würde.
required_qualificationEmploymentQualificationOptionale Qualifikation, die die gezählten Personen erfüllen müssen (Gleichwertigkeiten und Rangfolge werden vom QualificationMatchHelper berücksichtigt).
Felder anzeigen (7)
idintegerPrimärschlüssel der Beschäftigungsqualifikation. Interne ID.
rankingintegerRangfolge innerhalb eines Äquivalenznetzwerks - eine verknüpfte Qualifikation mit gleichem oder höherem Rang erfüllt auch Anforderungen an diese Qualifikation.
equivalent_qualificationsarray<EmploymentQualification>Verknüpfte ("gleichwertige") Qualifikationen. Vom Controller symmetrisch gehalten: jede Verknüpfung A->B wird als B->A gespiegelt; der Rang entscheidet, welche Richtung tatsächlich welche abdeckt.
qualification_groupEmploymentQualificationGroupL17/A06: die "Schublade", zu der diese Qualifikation gehört. Mitglieder einer Gruppe decken sich gegenseitig die Anforderungen innerhalb ihres Rangs ab, wie es eine direkte Verknüpfung täte.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
qualification_match_modestringL18: EXACT verlangt die geforderte Qualifikation selbst; EQUIVALENT (Standard, bisheriges Verhalten) akzeptiert auch verknüpfte oder gleichgruppierte Qualifikationen mit ausreichendem Rang.
valid_fromstring (date-time)Regel gilt erst ab diesem Datum (null = immer).
valid_untilstring (date-time)Datum, bis zu dem die Anforderung gültig ist.
applies_on_holidaysbooleanOb die Regel auch an gesetzlichen Feiertagen des Kalenders ihres Geltungsbereichs gilt (Gruppenkalender, Organisationskalender, Hauptkalender). Standardmäßig aus: Eine geschlossene Kita oder ein geschlossenes Büro würde sonst an jedem Feiertag als unterbesetzt gemeldet; ein Verein oder eine Pflegeeinrichtung mit Feiertagsbetrieb schaltet sie ein.
search_stringstringText, unter dem die Entität gesucht werden kann.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
namestringName der Einheit.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
name: 'Beispiel',
mode: 'string',
weekdays_bitmask: 1,
start_time: 'string',
end_time: 'string',
min_staff_count: 1
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42"
payload = { "data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42', [
'body' => '{"data":{"name":"Beispiel","mode":"string","weekdays_bitmask":1,"start_time":"string","end_time":"string","min_staff_count":1}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42")
.patch(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42"
payload := strings.NewReader("{\"data\":{\"name\":\"Beispiel\",\"mode\":\"string\",\"weekdays_bitmask\":1,\"start_time\":\"string\",\"end_time\":\"string\",\"min_staff_count\":1}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.iw-erp.de/api/time/staffing_requirement/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"name": "Beispiel",
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"employment_contract_group": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"shift_booking_sync": true,
"week_total_hours": 1.5,
"week_total_days": 1.5,
"year_vacation_days": 1.5,
"month_vacation_days": 1.5,
"year_vacation_weeks": 1.5,
"monday_hours": 1.5
},
"employment_organization": {
"id": 42,
"name": "Beispiel",
"staged_absence_approval": true,
"allow_app_time_tracking": true,
"school_holiday_region": {
"id": 42,
"name": "Beispiel",
"region_code": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"shift_booking_sync": true,
"allow_scanner_time_tracking": true,
"allow_app_non_work_time_management": true,
"include_in_auto_export": true
},
"organization_unit": {
"id": 42,
"name": "Beispiel",
"path": "string",
"depth": 1,
"level": "string",
"sort_order": 1,
"search_string": "string",
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"mode": "string",
"weekdays_bitmask": 1,
"start_time": "string",
"end_time": "string",
"min_staff_count": 1
}