SmartLock
Liefert eine Liste der SmartLock-Einträge.
GET/api/event/smart_lock
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE |
namestring | |
typestring | |
baseBookablestring | |
employmentContractsstring | Verknüpfte Arbeitsverträge | Benötigt Zugriffs-Tag: SCOPE |
employmentContractGroupsstring | Verknüpfte Arbeitsvertragsgruppen | Benötigt Zugriffs-Tag: SCOPE |
connectionstring | |
providerDeviceIdstring | |
providerDeviceTypestring | |
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 von SmartLocks.array<SmartLock>
Felder anzeigen (14)
idintegerPrimärschlüssel des Smart Locks. Interne ID.
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable4Buchbares Objekt, das das Smart Lock öffnet.
Felder anzeigen (51)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
employment_contractsarray<EmploymentContract16>Verknüpfte Arbeitsverträge
Felder anzeigen (43)
staged_absence_approvalbooleannull übernimmt zuerst die Gruppen- und dann die Organisationsrichtlinie; bestehende Installationen bleiben aus.
idintegerPrimärschlüssel des Arbeitsvertrags. Interne ID.
tokenstringÖffentlicher Token des Vertrags. Anstelle der ID verwendet.
userUser14Benutzer des Mitarbeiters.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Gesamte Arbeitstage pro Woche.
reserved_hours_preparationnumber (float)L03: wöchentliche Stunden, die für Vorbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_follow_upnumber (float)L03: wöchentliche Stunden, die für Nachbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_travelnumber (float)L03: wöchentliche Stunden, die für Fahrt reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_flexiblenumber (float)L03: wöchentliche Stunden, die für freie Einteilung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
week_full_time_total_daysnumber (float)Gesamte Arbeitstage pro Woche bei einem Vollzeitvertrag.
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.
startstring (date-time)Startdatum des Vertrags.
endstring (date-time)Enddatum des Vertrags.
fixed_term_statusstringBefristung: PERMANENT (unbefristet, Standard), FIXED_TERM oder 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; wird aus den probationMonths der Vorlage gefüllt, wenn ein Vertrag ohne diese Angabe angelegt wird.
numberstringVertragsnummer.
descriptionstringBeschreibung des Vertrags.
archivedbooleanDer Vertrag ist archiviert.
allow_app_time_trackingbooleanDer Mitarbeitende darf Zeiten in der App erfassen.
allow_scanner_time_trackingbooleanDer Mitarbeitende darf Zeiten mit dem Scanner erfassen.
allow_app_non_work_time_managementbooleanDer Mitarbeitende darf Abwesenheiten in der App verwalten.
force_no_auto_breakbooleanFür diesen Vertrag werden keine automatischen Pausen hinzugefügt.
work_time_modestringWie die Sollarbeitszeit definiert ist - null verhält sich wie WEEKDAY_HOURS, damit bestehende Verträge ihr bisheriges Verhalten unverändert beibehalten.
holiday_credit_modestringFeiertagsguthaben für WEEK_TOTAL-Verträge - null verhält sich wie WEEKDAY_TARGET (bisheriges Verhalten, nur bei WEEKDAY_HOURS-Verträgen sinnvoll).
holiday_credit_fixed_secondsintegerFester Feiertagsguthaben in Sekunden.
planning_weekdays_bitmaskintegerISO-Wochentagsbitmaske (Mo=1 ... So=64) der Tage, an denen dieser WEEK_TOTAL-Vertrag eingeplant werden bzw. Urlaub nehmen kann - null verhält sich wie Mo-Fr.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag vor seinem ersten Tag eingereicht werden muss ("Bearbeitungs- frist"). null greift zunächst auf die Vertragsgruppe und von dort auf die Einstellung der Installation zurück, damit ein bestehender Vertrag genau wie bisher funktioniert.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Gruppe (die wiederum die Organisation übernimmt).
search_stringstringText, unter dem die Entität gesucht werden kann.
employment_contract_groupsarray<EmploymentContractGroup>Verknüpfte Arbeitsvertragsgruppen
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.
connectionSmartLockConnection3Verbindung zur Steuerung des Smart Locks.
Felder anzeigen (13)
idintegerPrimärschlüssel der Smart-Lock-Verbindung. Interne ID.
providerstringAnbieter des Smart Locks, zum Beispiel LOQED oder eine Bridge.
modestringArt der Verbindung, zum Beispiel bridge oder web.
bridge_hoststringHostname der Bridge, die mit dem Schloss kommuniziert.
bridge_portintegerPort der Bridge.
loqed_lock_idstringID des LOQED-Schlosses beim Anbieter.
ha_instance_idstringInstanz, die ihre Schlösser über diese Verbindung anbietet: die UUID des Home-Assistant-Cores oder die ID einer Node-RED-Schloss-Bridge bzw. eines n8n-Schloss-Triggers. Die ha_*-Felder werden von diesen Anbietern gemeinsam genutzt.
ha_webhook_urlstringWebhook der Home-Assistant-Integration (oder einer Node-RED-Instanz im Push-Modus), die die signierten Schloss-Befehle empfängt.
scan_device_idsstringIDs der Scanner einer Scan-Webhook-Verbindung (Comydo: je 12 Hex-Ziffern), getrennt durch Komma, Leerzeichen oder Zeilenumbruch. Jede ID wird beim Synchronisieren der Verbindung zu einem Smart Lock.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
Felder anzeigen (12)
idintegerPrimärschlüssel des Zugriffsrechte-Eintrags. Interne ID.
userUser14Benutzer, der die Berechtigung erhält. Nur gesetzt bei benutzerbezogenen Rechten.
access_tagAccessTagZugriffs-Tag, für das die Berechtigung gilt. Nur gesetzt bei Rechten auf ein Tag.
create_mainbooleanAnlegen-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
edit_mainbooleanBearbeiten-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
read_mainbooleanLeseberechtigung für Hauptdatensätze des Zugriffs-Tags.
create_childbooleanAnlegen-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
edit_childbooleanBearbeiten-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
read_childbooleanLeseberechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
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/event/smart_lock \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock', 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/event/smart_lock"
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/event/smart_lock', [
'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/event/smart_lock"),
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/event/smart_lock")
.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/event/smart_lock"
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/smart_lock_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 SmartLockController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"type": "string",
"base_bookable": {
"id": 42,
"require_booking_title": true,
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456",
"main_email": "lena.hartmann@example.org",
"name": "Beispiel"
},
"connection": {
"id": 42,
"ha_webhook_url": "https://vynst.de",
"name": "Beispiel",
"provider": "string",
"mode": "string",
"bridge_host": "string",
"bridge_port": 1,
"loqed_lock_id": "42",
"ha_instance_id": "42",
"scan_device_ids": "string"
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true,
"self_service_type": "string",
"created": "2026-10-15T09:30:00+02:00"
}
]Legt einen neuen Smart-Lock-Eintrag an.
POST/api/event/smart_lock
Request-Body application/json
dataSmartLock2Felder anzeigen (8)
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable17Buchbares Objekt, das das Smart Lock öffnet.
employment_contractsarray<EmploymentContract17>Verknüpfte Arbeitsverträge
employment_contract_groupsarray<EmploymentContractGroup8>Verknüpfte Arbeitsvertragsgruppen
connectionSmartLockConnection4Verbindung zur Steuerung des Smart Locks.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200SmartLock neu anlegenSmartLock
Felder anzeigen (14)
idintegerPrimärschlüssel des Smart Locks. Interne ID.
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable4Buchbares Objekt, das das Smart Lock öffnet.
Felder anzeigen (51)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
employment_contractsarray<EmploymentContract16>Verknüpfte Arbeitsverträge
Felder anzeigen (43)
staged_absence_approvalbooleannull übernimmt zuerst die Gruppen- und dann die Organisationsrichtlinie; bestehende Installationen bleiben aus.
idintegerPrimärschlüssel des Arbeitsvertrags. Interne ID.
tokenstringÖffentlicher Token des Vertrags. Anstelle der ID verwendet.
userUser14Benutzer des Mitarbeiters.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Gesamte Arbeitstage pro Woche.
reserved_hours_preparationnumber (float)L03: wöchentliche Stunden, die für Vorbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_follow_upnumber (float)L03: wöchentliche Stunden, die für Nachbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_travelnumber (float)L03: wöchentliche Stunden, die für Fahrt reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_flexiblenumber (float)L03: wöchentliche Stunden, die für freie Einteilung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
week_full_time_total_daysnumber (float)Gesamte Arbeitstage pro Woche bei einem Vollzeitvertrag.
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.
startstring (date-time)Startdatum des Vertrags.
endstring (date-time)Enddatum des Vertrags.
fixed_term_statusstringBefristung: PERMANENT (unbefristet, Standard), FIXED_TERM oder 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; wird aus den probationMonths der Vorlage gefüllt, wenn ein Vertrag ohne diese Angabe angelegt wird.
numberstringVertragsnummer.
descriptionstringBeschreibung des Vertrags.
archivedbooleanDer Vertrag ist archiviert.
allow_app_time_trackingbooleanDer Mitarbeitende darf Zeiten in der App erfassen.
allow_scanner_time_trackingbooleanDer Mitarbeitende darf Zeiten mit dem Scanner erfassen.
allow_app_non_work_time_managementbooleanDer Mitarbeitende darf Abwesenheiten in der App verwalten.
force_no_auto_breakbooleanFür diesen Vertrag werden keine automatischen Pausen hinzugefügt.
work_time_modestringWie die Sollarbeitszeit definiert ist - null verhält sich wie WEEKDAY_HOURS, damit bestehende Verträge ihr bisheriges Verhalten unverändert beibehalten.
holiday_credit_modestringFeiertagsguthaben für WEEK_TOTAL-Verträge - null verhält sich wie WEEKDAY_TARGET (bisheriges Verhalten, nur bei WEEKDAY_HOURS-Verträgen sinnvoll).
holiday_credit_fixed_secondsintegerFester Feiertagsguthaben in Sekunden.
planning_weekdays_bitmaskintegerISO-Wochentagsbitmaske (Mo=1 ... So=64) der Tage, an denen dieser WEEK_TOTAL-Vertrag eingeplant werden bzw. Urlaub nehmen kann - null verhält sich wie Mo-Fr.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag vor seinem ersten Tag eingereicht werden muss ("Bearbeitungs- frist"). null greift zunächst auf die Vertragsgruppe und von dort auf die Einstellung der Installation zurück, damit ein bestehender Vertrag genau wie bisher funktioniert.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Gruppe (die wiederum die Organisation übernimmt).
search_stringstringText, unter dem die Entität gesucht werden kann.
employment_contract_groupsarray<EmploymentContractGroup>Verknüpfte Arbeitsvertragsgruppen
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.
connectionSmartLockConnection3Verbindung zur Steuerung des Smart Locks.
Felder anzeigen (13)
idintegerPrimärschlüssel der Smart-Lock-Verbindung. Interne ID.
providerstringAnbieter des Smart Locks, zum Beispiel LOQED oder eine Bridge.
modestringArt der Verbindung, zum Beispiel bridge oder web.
bridge_hoststringHostname der Bridge, die mit dem Schloss kommuniziert.
bridge_portintegerPort der Bridge.
loqed_lock_idstringID des LOQED-Schlosses beim Anbieter.
ha_instance_idstringInstanz, die ihre Schlösser über diese Verbindung anbietet: die UUID des Home-Assistant-Cores oder die ID einer Node-RED-Schloss-Bridge bzw. eines n8n-Schloss-Triggers. Die ha_*-Felder werden von diesen Anbietern gemeinsam genutzt.
ha_webhook_urlstringWebhook der Home-Assistant-Integration (oder einer Node-RED-Instanz im Push-Modus), die die signierten Schloss-Befehle empfängt.
scan_device_idsstringIDs der Scanner einer Scan-Webhook-Verbindung (Comydo: je 12 Hex-Ziffern), getrennt durch Komma, Leerzeichen oder Zeilenumbruch. Jede ID wird beim Synchronisieren der Verbindung zu einem Smart Lock.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
Felder anzeigen (12)
idintegerPrimärschlüssel des Zugriffsrechte-Eintrags. Interne ID.
userUser14Benutzer, der die Berechtigung erhält. Nur gesetzt bei benutzerbezogenen Rechten.
access_tagAccessTagZugriffs-Tag, für das die Berechtigung gilt. Nur gesetzt bei Rechten auf ein Tag.
create_mainbooleanAnlegen-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
edit_mainbooleanBearbeiten-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
read_mainbooleanLeseberechtigung für Hauptdatensätze des Zugriffs-Tags.
create_childbooleanAnlegen-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
edit_childbooleanBearbeiten-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
read_childbooleanLeseberechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
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/event/smart_lock \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": {
"deleted": true
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
type: 'string',
base_bookable: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
connection: {deleted: true},
provider_device_id: '42',
provider_device_type: 'string',
deleted: true
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock', 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/event/smart_lock"
payload = { "data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": { "deleted": True },
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": True
} }
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/event/smart_lock', [
'body' => '{"data":{"type":"string","base_bookable":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"connection":{"deleted":true},"provider_device_id":"42","provider_device_type":"string","deleted":true}}',
'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/event/smart_lock"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}")
{
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\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/event/smart_lock")
.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/event/smart_lock"
payload := strings.NewReader("{\"data\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}")
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/smart_lock_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/smart_lock.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SmartLockController.post(SmartLock.fromJson({
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": {
"deleted": true
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"type": "string",
"base_bookable": {
"id": 42,
"require_booking_title": true,
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456",
"main_email": "lena.hartmann@example.org",
"name": "Beispiel"
},
"employment_contracts": [
{
"id": 42,
"description": "Text",
"staged_absence_approval": true,
"token": "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,
"reserved_hours_flexible": 1.5
}
],
"employment_contract_groups": [
{
"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
}
],
"connection": {
"id": 42,
"ha_webhook_url": "https://vynst.de",
"name": "Beispiel",
"provider": "string",
"mode": "string",
"bridge_host": "string",
"bridge_port": 1,
"loqed_lock_id": "42",
"ha_instance_id": "42",
"scan_device_ids": "string"
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}GET /api/event/smart_lock/my_accessible
GET/api/event/smart_lock/my_accessible
Antworten
200Liefert die SmartLocks, die für den aktuellen Benutzer zugänglich sind.array<object>
Felder anzeigen (5)
idintegernamestringdescriptionstringtypestringnuki, loqed, homeassistant, comydo oder qrlock
unlock_methodstringremote: unlock öffnet die Tür, qr_code: Zugangscode abfragen und als QR-Code anzeigen
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/event/smart_lock/my_accessible \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/my_accessible', 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/event/smart_lock/my_accessible"
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/event/smart_lock/my_accessible', [
'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/event/smart_lock/my_accessible"),
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/event/smart_lock/my_accessible")
.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/event/smart_lock/my_accessible"
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/smart_lock_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 SmartLockController.getMyAccessible();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"description": "Text",
"type": "string",
"unlock_method": "string"
}
]Liefert einen einzelnen SmartLock-Eintrag.
GET/api/event/smart_lock/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes SmartLock-Objekt.SmartLock
Felder anzeigen (14)
idintegerPrimärschlüssel des Smart Locks. Interne ID.
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable4Buchbares Objekt, das das Smart Lock öffnet.
Felder anzeigen (51)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
employment_contractsarray<EmploymentContract16>Verknüpfte Arbeitsverträge
Felder anzeigen (43)
staged_absence_approvalbooleannull übernimmt zuerst die Gruppen- und dann die Organisationsrichtlinie; bestehende Installationen bleiben aus.
idintegerPrimärschlüssel des Arbeitsvertrags. Interne ID.
tokenstringÖffentlicher Token des Vertrags. Anstelle der ID verwendet.
userUser14Benutzer des Mitarbeiters.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Gesamte Arbeitstage pro Woche.
reserved_hours_preparationnumber (float)L03: wöchentliche Stunden, die für Vorbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_follow_upnumber (float)L03: wöchentliche Stunden, die für Nachbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_travelnumber (float)L03: wöchentliche Stunden, die für Fahrt reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_flexiblenumber (float)L03: wöchentliche Stunden, die für freie Einteilung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
week_full_time_total_daysnumber (float)Gesamte Arbeitstage pro Woche bei einem Vollzeitvertrag.
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.
startstring (date-time)Startdatum des Vertrags.
endstring (date-time)Enddatum des Vertrags.
fixed_term_statusstringBefristung: PERMANENT (unbefristet, Standard), FIXED_TERM oder 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; wird aus den probationMonths der Vorlage gefüllt, wenn ein Vertrag ohne diese Angabe angelegt wird.
numberstringVertragsnummer.
descriptionstringBeschreibung des Vertrags.
archivedbooleanDer Vertrag ist archiviert.
allow_app_time_trackingbooleanDer Mitarbeitende darf Zeiten in der App erfassen.
allow_scanner_time_trackingbooleanDer Mitarbeitende darf Zeiten mit dem Scanner erfassen.
allow_app_non_work_time_managementbooleanDer Mitarbeitende darf Abwesenheiten in der App verwalten.
force_no_auto_breakbooleanFür diesen Vertrag werden keine automatischen Pausen hinzugefügt.
work_time_modestringWie die Sollarbeitszeit definiert ist - null verhält sich wie WEEKDAY_HOURS, damit bestehende Verträge ihr bisheriges Verhalten unverändert beibehalten.
holiday_credit_modestringFeiertagsguthaben für WEEK_TOTAL-Verträge - null verhält sich wie WEEKDAY_TARGET (bisheriges Verhalten, nur bei WEEKDAY_HOURS-Verträgen sinnvoll).
holiday_credit_fixed_secondsintegerFester Feiertagsguthaben in Sekunden.
planning_weekdays_bitmaskintegerISO-Wochentagsbitmaske (Mo=1 ... So=64) der Tage, an denen dieser WEEK_TOTAL-Vertrag eingeplant werden bzw. Urlaub nehmen kann - null verhält sich wie Mo-Fr.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag vor seinem ersten Tag eingereicht werden muss ("Bearbeitungs- frist"). null greift zunächst auf die Vertragsgruppe und von dort auf die Einstellung der Installation zurück, damit ein bestehender Vertrag genau wie bisher funktioniert.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Gruppe (die wiederum die Organisation übernimmt).
search_stringstringText, unter dem die Entität gesucht werden kann.
employment_contract_groupsarray<EmploymentContractGroup>Verknüpfte Arbeitsvertragsgruppen
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.
connectionSmartLockConnection3Verbindung zur Steuerung des Smart Locks.
Felder anzeigen (13)
idintegerPrimärschlüssel der Smart-Lock-Verbindung. Interne ID.
providerstringAnbieter des Smart Locks, zum Beispiel LOQED oder eine Bridge.
modestringArt der Verbindung, zum Beispiel bridge oder web.
bridge_hoststringHostname der Bridge, die mit dem Schloss kommuniziert.
bridge_portintegerPort der Bridge.
loqed_lock_idstringID des LOQED-Schlosses beim Anbieter.
ha_instance_idstringInstanz, die ihre Schlösser über diese Verbindung anbietet: die UUID des Home-Assistant-Cores oder die ID einer Node-RED-Schloss-Bridge bzw. eines n8n-Schloss-Triggers. Die ha_*-Felder werden von diesen Anbietern gemeinsam genutzt.
ha_webhook_urlstringWebhook der Home-Assistant-Integration (oder einer Node-RED-Instanz im Push-Modus), die die signierten Schloss-Befehle empfängt.
scan_device_idsstringIDs der Scanner einer Scan-Webhook-Verbindung (Comydo: je 12 Hex-Ziffern), getrennt durch Komma, Leerzeichen oder Zeilenumbruch. Jede ID wird beim Synchronisieren der Verbindung zu einem Smart Lock.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
Felder anzeigen (12)
idintegerPrimärschlüssel des Zugriffsrechte-Eintrags. Interne ID.
userUser14Benutzer, der die Berechtigung erhält. Nur gesetzt bei benutzerbezogenen Rechten.
access_tagAccessTagZugriffs-Tag, für das die Berechtigung gilt. Nur gesetzt bei Rechten auf ein Tag.
create_mainbooleanAnlegen-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
edit_mainbooleanBearbeiten-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
read_mainbooleanLeseberechtigung für Hauptdatensätze des Zugriffs-Tags.
create_childbooleanAnlegen-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
edit_childbooleanBearbeiten-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
read_childbooleanLeseberechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
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/event/smart_lock/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/event/smart_lock/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/event/smart_lock/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/event/smart_lock/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/event/smart_lock/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/event/smart_lock/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/event/smart_lock/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/smart_lock_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 SmartLockController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"type": "string",
"base_bookable": {
"id": 42,
"require_booking_title": true,
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456",
"main_email": "lena.hartmann@example.org",
"name": "Beispiel"
},
"employment_contracts": [
{
"id": 42,
"description": "Text",
"staged_absence_approval": true,
"token": "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,
"reserved_hours_flexible": 1.5
}
],
"employment_contract_groups": [
{
"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
}
],
"connection": {
"id": 42,
"ha_webhook_url": "https://vynst.de",
"name": "Beispiel",
"provider": "string",
"mode": "string",
"bridge_host": "string",
"bridge_port": 1,
"loqed_lock_id": "42",
"ha_instance_id": "42",
"scan_device_ids": "string"
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}Aktualisiert einen vorhandenen Smart-Lock-Eintrag.
PUT/api/event/smart_lock/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataSmartLock2Felder anzeigen (8)
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable17Buchbares Objekt, das das Smart Lock öffnet.
employment_contractsarray<EmploymentContract17>Verknüpfte Arbeitsverträge
employment_contract_groupsarray<EmploymentContractGroup8>Verknüpfte Arbeitsvertragsgruppen
connectionSmartLockConnection4Verbindung zur Steuerung des Smart Locks.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200SmartLock aktualisierenSmartLock
Felder anzeigen (14)
idintegerPrimärschlüssel des Smart Locks. Interne ID.
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable4Buchbares Objekt, das das Smart Lock öffnet.
Felder anzeigen (51)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
employment_contractsarray<EmploymentContract16>Verknüpfte Arbeitsverträge
Felder anzeigen (43)
staged_absence_approvalbooleannull übernimmt zuerst die Gruppen- und dann die Organisationsrichtlinie; bestehende Installationen bleiben aus.
idintegerPrimärschlüssel des Arbeitsvertrags. Interne ID.
tokenstringÖffentlicher Token des Vertrags. Anstelle der ID verwendet.
userUser14Benutzer des Mitarbeiters.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Gesamte Arbeitstage pro Woche.
reserved_hours_preparationnumber (float)L03: wöchentliche Stunden, die für Vorbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_follow_upnumber (float)L03: wöchentliche Stunden, die für Nachbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_travelnumber (float)L03: wöchentliche Stunden, die für Fahrt reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_flexiblenumber (float)L03: wöchentliche Stunden, die für freie Einteilung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
week_full_time_total_daysnumber (float)Gesamte Arbeitstage pro Woche bei einem Vollzeitvertrag.
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.
startstring (date-time)Startdatum des Vertrags.
endstring (date-time)Enddatum des Vertrags.
fixed_term_statusstringBefristung: PERMANENT (unbefristet, Standard), FIXED_TERM oder 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; wird aus den probationMonths der Vorlage gefüllt, wenn ein Vertrag ohne diese Angabe angelegt wird.
numberstringVertragsnummer.
descriptionstringBeschreibung des Vertrags.
archivedbooleanDer Vertrag ist archiviert.
allow_app_time_trackingbooleanDer Mitarbeitende darf Zeiten in der App erfassen.
allow_scanner_time_trackingbooleanDer Mitarbeitende darf Zeiten mit dem Scanner erfassen.
allow_app_non_work_time_managementbooleanDer Mitarbeitende darf Abwesenheiten in der App verwalten.
force_no_auto_breakbooleanFür diesen Vertrag werden keine automatischen Pausen hinzugefügt.
work_time_modestringWie die Sollarbeitszeit definiert ist - null verhält sich wie WEEKDAY_HOURS, damit bestehende Verträge ihr bisheriges Verhalten unverändert beibehalten.
holiday_credit_modestringFeiertagsguthaben für WEEK_TOTAL-Verträge - null verhält sich wie WEEKDAY_TARGET (bisheriges Verhalten, nur bei WEEKDAY_HOURS-Verträgen sinnvoll).
holiday_credit_fixed_secondsintegerFester Feiertagsguthaben in Sekunden.
planning_weekdays_bitmaskintegerISO-Wochentagsbitmaske (Mo=1 ... So=64) der Tage, an denen dieser WEEK_TOTAL-Vertrag eingeplant werden bzw. Urlaub nehmen kann - null verhält sich wie Mo-Fr.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag vor seinem ersten Tag eingereicht werden muss ("Bearbeitungs- frist"). null greift zunächst auf die Vertragsgruppe und von dort auf die Einstellung der Installation zurück, damit ein bestehender Vertrag genau wie bisher funktioniert.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Gruppe (die wiederum die Organisation übernimmt).
search_stringstringText, unter dem die Entität gesucht werden kann.
employment_contract_groupsarray<EmploymentContractGroup>Verknüpfte Arbeitsvertragsgruppen
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.
connectionSmartLockConnection3Verbindung zur Steuerung des Smart Locks.
Felder anzeigen (13)
idintegerPrimärschlüssel der Smart-Lock-Verbindung. Interne ID.
providerstringAnbieter des Smart Locks, zum Beispiel LOQED oder eine Bridge.
modestringArt der Verbindung, zum Beispiel bridge oder web.
bridge_hoststringHostname der Bridge, die mit dem Schloss kommuniziert.
bridge_portintegerPort der Bridge.
loqed_lock_idstringID des LOQED-Schlosses beim Anbieter.
ha_instance_idstringInstanz, die ihre Schlösser über diese Verbindung anbietet: die UUID des Home-Assistant-Cores oder die ID einer Node-RED-Schloss-Bridge bzw. eines n8n-Schloss-Triggers. Die ha_*-Felder werden von diesen Anbietern gemeinsam genutzt.
ha_webhook_urlstringWebhook der Home-Assistant-Integration (oder einer Node-RED-Instanz im Push-Modus), die die signierten Schloss-Befehle empfängt.
scan_device_idsstringIDs der Scanner einer Scan-Webhook-Verbindung (Comydo: je 12 Hex-Ziffern), getrennt durch Komma, Leerzeichen oder Zeilenumbruch. Jede ID wird beim Synchronisieren der Verbindung zu einem Smart Lock.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
Felder anzeigen (12)
idintegerPrimärschlüssel des Zugriffsrechte-Eintrags. Interne ID.
userUser14Benutzer, der die Berechtigung erhält. Nur gesetzt bei benutzerbezogenen Rechten.
access_tagAccessTagZugriffs-Tag, für das die Berechtigung gilt. Nur gesetzt bei Rechten auf ein Tag.
create_mainbooleanAnlegen-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
edit_mainbooleanBearbeiten-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
read_mainbooleanLeseberechtigung für Hauptdatensätze des Zugriffs-Tags.
create_childbooleanAnlegen-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
edit_childbooleanBearbeiten-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
read_childbooleanLeseberechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
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/event/smart_lock/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": {
"deleted": true
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
type: 'string',
base_bookable: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
connection: {deleted: true},
provider_device_id: '42',
provider_device_type: 'string',
deleted: true
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/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/event/smart_lock/42"
payload = { "data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": { "deleted": True },
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": True
} }
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/event/smart_lock/42', [
'body' => '{"data":{"type":"string","base_bookable":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"connection":{"deleted":true},"provider_device_id":"42","provider_device_type":"string","deleted":true}}',
'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/event/smart_lock/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}")
{
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\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/event/smart_lock/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/event/smart_lock/42"
payload := strings.NewReader("{\"data\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}")
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/smart_lock_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/smart_lock.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SmartLockController.put(SmartLock.fromJson({
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": {
"deleted": true
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"type": "string",
"base_bookable": {
"id": 42,
"require_booking_title": true,
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456",
"main_email": "lena.hartmann@example.org",
"name": "Beispiel"
},
"employment_contracts": [
{
"id": 42,
"description": "Text",
"staged_absence_approval": true,
"token": "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,
"reserved_hours_flexible": 1.5
}
],
"employment_contract_groups": [
{
"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
}
],
"connection": {
"id": 42,
"ha_webhook_url": "https://vynst.de",
"name": "Beispiel",
"provider": "string",
"mode": "string",
"bridge_host": "string",
"bridge_port": 1,
"loqed_lock_id": "42",
"ha_instance_id": "42",
"scan_device_ids": "string"
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}Aktualisiert einen vorhandenen Smart-Lock-Eintrag.
PATCH/api/event/smart_lock/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataSmartLock2Felder anzeigen (8)
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable17Buchbares Objekt, das das Smart Lock öffnet.
employment_contractsarray<EmploymentContract17>Verknüpfte Arbeitsverträge
employment_contract_groupsarray<EmploymentContractGroup8>Verknüpfte Arbeitsvertragsgruppen
connectionSmartLockConnection4Verbindung zur Steuerung des Smart Locks.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200SmartLock aktualisierenSmartLock
Felder anzeigen (14)
idintegerPrimärschlüssel des Smart Locks. Interne ID.
typestringArt des Smart Locks, zum Beispiel Tür oder Tor.
base_bookableBaseBookable4Buchbares Objekt, das das Smart Lock öffnet.
Felder anzeigen (51)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
employment_contractsarray<EmploymentContract16>Verknüpfte Arbeitsverträge
Felder anzeigen (43)
staged_absence_approvalbooleannull übernimmt zuerst die Gruppen- und dann die Organisationsrichtlinie; bestehende Installationen bleiben aus.
idintegerPrimärschlüssel des Arbeitsvertrags. Interne ID.
tokenstringÖffentlicher Token des Vertrags. Anstelle der ID verwendet.
userUser14Benutzer des Mitarbeiters.
week_total_hoursnumber (float)Gesamte Arbeitsstunden pro Woche.
week_total_daysnumber (float)Gesamte Arbeitstage pro Woche.
reserved_hours_preparationnumber (float)L03: wöchentliche Stunden, die für Vorbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_follow_upnumber (float)L03: wöchentliche Stunden, die für Nachbereitung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_travelnumber (float)L03: wöchentliche Stunden, die für Fahrt reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
reserved_hours_flexiblenumber (float)L03: wöchentliche Stunden, die für freie Einteilung reserviert sind - Teil der Vertragsstunden, aber nicht planbar im Schichtplan. null = keine.
week_full_time_total_daysnumber (float)Gesamte Arbeitstage pro Woche bei einem Vollzeitvertrag.
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.
startstring (date-time)Startdatum des Vertrags.
endstring (date-time)Enddatum des Vertrags.
fixed_term_statusstringBefristung: PERMANENT (unbefristet, Standard), FIXED_TERM oder 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; wird aus den probationMonths der Vorlage gefüllt, wenn ein Vertrag ohne diese Angabe angelegt wird.
numberstringVertragsnummer.
descriptionstringBeschreibung des Vertrags.
archivedbooleanDer Vertrag ist archiviert.
allow_app_time_trackingbooleanDer Mitarbeitende darf Zeiten in der App erfassen.
allow_scanner_time_trackingbooleanDer Mitarbeitende darf Zeiten mit dem Scanner erfassen.
allow_app_non_work_time_managementbooleanDer Mitarbeitende darf Abwesenheiten in der App verwalten.
force_no_auto_breakbooleanFür diesen Vertrag werden keine automatischen Pausen hinzugefügt.
work_time_modestringWie die Sollarbeitszeit definiert ist - null verhält sich wie WEEKDAY_HOURS, damit bestehende Verträge ihr bisheriges Verhalten unverändert beibehalten.
holiday_credit_modestringFeiertagsguthaben für WEEK_TOTAL-Verträge - null verhält sich wie WEEKDAY_TARGET (bisheriges Verhalten, nur bei WEEKDAY_HOURS-Verträgen sinnvoll).
holiday_credit_fixed_secondsintegerFester Feiertagsguthaben in Sekunden.
planning_weekdays_bitmaskintegerISO-Wochentagsbitmaske (Mo=1 ... So=64) der Tage, an denen dieser WEEK_TOTAL-Vertrag eingeplant werden bzw. Urlaub nehmen kann - null verhält sich wie Mo-Fr.
request_lead_time_daysintegerTage, die ein Abwesenheitsantrag vor seinem ersten Tag eingereicht werden muss ("Bearbeitungs- frist"). null greift zunächst auf die Vertragsgruppe und von dort auf die Einstellung der Installation zurück, damit ein bestehender Vertrag genau wie bisher funktioniert.
shift_booking_syncbooleanL35: Schichten als Verfügbarkeiten / Termine im Buchungsbereich; null übernimmt die Gruppe (die wiederum die Organisation übernimmt).
search_stringstringText, unter dem die Entität gesucht werden kann.
employment_contract_groupsarray<EmploymentContractGroup>Verknüpfte Arbeitsvertragsgruppen
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.
connectionSmartLockConnection3Verbindung zur Steuerung des Smart Locks.
Felder anzeigen (13)
idintegerPrimärschlüssel der Smart-Lock-Verbindung. Interne ID.
providerstringAnbieter des Smart Locks, zum Beispiel LOQED oder eine Bridge.
modestringArt der Verbindung, zum Beispiel bridge oder web.
bridge_hoststringHostname der Bridge, die mit dem Schloss kommuniziert.
bridge_portintegerPort der Bridge.
loqed_lock_idstringID des LOQED-Schlosses beim Anbieter.
ha_instance_idstringInstanz, die ihre Schlösser über diese Verbindung anbietet: die UUID des Home-Assistant-Cores oder die ID einer Node-RED-Schloss-Bridge bzw. eines n8n-Schloss-Triggers. Die ha_*-Felder werden von diesen Anbietern gemeinsam genutzt.
ha_webhook_urlstringWebhook der Home-Assistant-Integration (oder einer Node-RED-Instanz im Push-Modus), die die signierten Schloss-Befehle empfängt.
scan_device_idsstringIDs der Scanner einer Scan-Webhook-Verbindung (Comydo: je 12 Hex-Ziffern), getrennt durch Komma, Leerzeichen oder Zeilenumbruch. Jede ID wird beim Synchronisieren der Verbindung zu einem Smart Lock.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
provider_device_idstringID des Geräts beim Anbieter.
provider_device_typestringArt des Geräts beim Anbieter.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
self_service_typestringArt der Self-Service-Option.
arslist_self_servicearray<AccessRightStorage2>Zugriffsrechteliste, die die Selbstbedienungsoption steuert.
Felder anzeigen (12)
idintegerPrimärschlüssel des Zugriffsrechte-Eintrags. Interne ID.
userUser14Benutzer, der die Berechtigung erhält. Nur gesetzt bei benutzerbezogenen Rechten.
access_tagAccessTagZugriffs-Tag, für das die Berechtigung gilt. Nur gesetzt bei Rechten auf ein Tag.
create_mainbooleanAnlegen-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
edit_mainbooleanBearbeiten-Berechtigung für Hauptdatensätze des Zugriffs-Tags.
read_mainbooleanLeseberechtigung für Hauptdatensätze des Zugriffs-Tags.
create_childbooleanAnlegen-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
edit_childbooleanBearbeiten-Berechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
read_childbooleanLeseberechtigung für untergeordnete Datensätze (zum Beispiel Positionen innerhalb eines Hauptdatensatzes).
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
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/event/smart_lock/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": {
"deleted": true
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
type: 'string',
base_bookable: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
connection: {deleted: true},
provider_device_id: '42',
provider_device_type: 'string',
deleted: true
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/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/event/smart_lock/42"
payload = { "data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": { "deleted": True },
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": True
} }
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/event/smart_lock/42', [
'body' => '{"data":{"type":"string","base_bookable":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"connection":{"deleted":true},"provider_device_id":"42","provider_device_type":"string","deleted":true}}',
'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/event/smart_lock/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}")
{
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\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/event/smart_lock/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/event/smart_lock/42"
payload := strings.NewReader("{\"data\":{\"type\":\"string\",\"base_bookable\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"connection\":{\"deleted\":true},\"provider_device_id\":\"42\",\"provider_device_type\":\"string\",\"deleted\":true}}")
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/event/smart_lock/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"type": "string",
"base_bookable": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"connection": {
"deleted": true
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"type": "string",
"base_bookable": {
"id": 42,
"require_booking_title": true,
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456",
"main_email": "lena.hartmann@example.org",
"name": "Beispiel"
},
"employment_contracts": [
{
"id": 42,
"description": "Text",
"staged_absence_approval": true,
"token": "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,
"reserved_hours_flexible": 1.5
}
],
"employment_contract_groups": [
{
"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
}
],
"connection": {
"id": 42,
"ha_webhook_url": "https://vynst.de",
"name": "Beispiel",
"provider": "string",
"mode": "string",
"bridge_host": "string",
"bridge_port": 1,
"loqed_lock_id": "42",
"ha_instance_id": "42",
"scan_device_ids": "string"
},
"provider_device_id": "42",
"provider_device_type": "string",
"deleted": true
}Sperrt den Eintrag.
POST/api/event/smart_lock/{identifier}/lock
Pfad-Parameter
identifierPflichtstring |
Antworten
default
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/event/smart_lock/42/lock \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/42/lock', 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/event/smart_lock/42/lock"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, 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/event/smart_lock/42/lock', [
'headers' => [
'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/event/smart_lock/42/lock"),
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/event/smart_lock/42/lock")
.post(null)
.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/event/smart_lock/42/lock"
req, _ := http.NewRequest("POST", 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/smart_lock_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 SmartLockController.lock('42');
if (result.success) {
print(result.data);
}Entsperrt den Eintrag.
POST/api/event/smart_lock/{identifier}/unlock
Pfad-Parameter
identifierPflichtstring |
Antworten
default
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/event/smart_lock/42/unlock \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/42/unlock', 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/event/smart_lock/42/unlock"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, 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/event/smart_lock/42/unlock', [
'headers' => [
'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/event/smart_lock/42/unlock"),
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/event/smart_lock/42/unlock")
.post(null)
.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/event/smart_lock/42/unlock"
req, _ := http.NewRequest("POST", 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/smart_lock_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 SmartLockController.unlock('42');
if (result.success) {
print(result.data);
}Liefert den aktuellen Status.
GET/api/event/smart_lock/{identifier}/status
Pfad-Parameter
identifierPflichtstring |
Antworten
default
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/event/smart_lock/42/status \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/42/status', 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/event/smart_lock/42/status"
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/event/smart_lock/42/status', [
'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/event/smart_lock/42/status"),
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/event/smart_lock/42/status")
.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/event/smart_lock/42/status"
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/smart_lock_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 SmartLockController.status('42');
if (result.success) {
print(result.data);
}Stellt einen Code aus, der ein Comydo- oder QRLock-Smart-Lock für {@see SmartLockAccessCodeService::VALID_SECONDS} Sekunden öffnet; die App zeigt ihn als QR-Code am Scanner an.
POST/api/event/smart_lock/{identifier}/access_code
Pfad-Parameter
identifierPflichtstring |
Antworten
200Der Zugangscodeobject
Felder anzeigen (3)
codestringvalid_untilstring (date-time)valid_secondsinteger
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/event/smart_lock/42/access_code \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/event/smart_lock/42/access_code', 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/event/smart_lock/42/access_code"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, 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/event/smart_lock/42/access_code', [
'headers' => [
'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/event/smart_lock/42/access_code"),
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/event/smart_lock/42/access_code")
.post(null)
.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/event/smart_lock/42/access_code"
req, _ := http.NewRequest("POST", 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/smart_lock_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 SmartLockController.accessCode('42');
if (result.success) {
print(result.data);
}{
"code": "string",
"valid_until": "2026-10-15T09:30:00+02:00",
"valid_seconds": 1
}