EventType
This method will get all BaseEventDataType Objects
GET/api/event/event_type
Query parameters
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of BaseEventDataType objectsarray<BaseEventDataType>
Show fields (49)
idstringIdentifier of the event data type. For example course or trip.
namestringName of the event data type.
menu_namestringName of the menu entry for the event data type.
show_admin_menubooleanShow the event data type in the admin menu.
show_customer_menubooleanShow the event data type in the customer app menu.
show_customer_descriptionbooleancontrols whether the customer event list shows the description below the headline
customer_order_field_namestringField the events are sorted by in the customer app.
customer_order_field_sortstringSort direction of the events in the customer app.
show_customer_home_modestringcan be BOTH, ALL, OWN, NONE
customer_home_show_more_button_textstringgeneral text for show more button
customer_home_own_more_button_textstringtext for show more button of own events
customer_home_headline_textstringtext for headline of all events
customer_home_own_headline_textstringtext for headline of own events
customer_home_only_same_daybooleanShow only events of the same day on the customer home screen.
customer_home_order_field_namestringField the events are sorted by on the customer home screen.
customer_home_order_field_sortstringSort direction of the events on the customer home screen.
customer_detail_ctastringCall-to-action text on the event detail page in the customer app.
customer_legal_hintstringLegal hint shown in the customer app.
customer_legal_cancellation_policystringCancellation policy text shown in the customer app.
customer_legal_privacy_policystringPrivacy policy text shown in the customer app.
customer_legal_disclaimerstringDisclaimer text shown in the customer app.
additional_filter_idsstringIDs of the additional filters for this event data type.
allow_parallel_signupbooleanParticipants may sign up for several events at the same time.
has_defined_ui_settingsbooleanSpecific UI settings are defined for this event data type.
trainer_can_add_participantbooleanTrainers can add participants.
trainer_can_delete_participantbooleanTrainers can remove participants.
trainer_can_delete_future_participantbooleanTrainers can remove participants from future bookings.
trainer_can_cancel_bookingbooleanTrainers can cancel a booking.
trainer_can_send_messagebooleanTrainers can send messages to participants.
trainer_can_view_next_bookingbooleanTrainers can see their next booking.
trainer_can_create_chatroombooleanDuerfen Trainer*innen fuer eine Veranstaltung dieser Art selbst einen Chatroom anlegen? Der Chat wird danach automatisch mit den Anmeldungen synchronisiert - siehe chatroomWeeksBeforeEvent / chatroomWeeksAfterEvent und die beiden Rauswurf-Fristen.
enable_bib_numbersbooleanEvents dieses Typs koennen Startnummern vergeben (siehe docs/event/STARTNUMMERN_ZEITMESSUNG.md).
enable_timingbooleanEvents dieses Typs haben Zeitmessung, Live-Tracking und Ergebnislisten.
trainer_can_edit_scoreboardbooleanDuerfen Trainer*innen bei Events dieses Typs mit Scoreboard den Spielstand und den Spielbericht (Tore, Karten, Strafen, ...) in der Kunden-App eintragen?
trainer_can_claim_substitutionbooleanDuerfen Trainer*innen offene Termine dieses Typs, fuer die eine Vertretung gesucht wird, in der Kunden-App selbst uebernehmen? Greift nur, wenn event_substitution_enabled an ist.
trainer_can_release_for_substitutionbooleanDuerfen Trainer*innen bei Terminen dieses Typs selbst eine Vertretung suchen ("ich kann nicht"): sie werden ausgetragen, der Termin wird anderen Trainer*innen angeboten.
kiosk_visiblebooleanErscheinen Termine dieses Typs in der Kiosk-App fuer Mitglieder? Greift nur, wenn kiosk_enabled an ist.
kiosk_self_check_in_allowedbooleanDuerfen sich Mitglieder am Kiosk selbst fuer Termine dieses Typs einchecken? Greift nur, wenn kiosk_self_check_in_enabled an ist.
kiosk_follow_up_allowedbooleanDuerfen sich Mitglieder am Kiosk fuer den Folgetermin eines Kurses dieses Typs anmelden? Greift nur, wenn kiosk_follow_up_signup_enabled an ist.
chatroom_weeks_before_eventintegerWie viele Wochen vor Beginn des Event-Zeitraums der Chatroom bereits existiert. Leer heisst: keine untere Grenze, der Chatroom kann jederzeit vorab angelegt werden.
chatroom_weeks_after_eventintegerWie viele Wochen nach Ende des Event-Zeitraums der Chatroom noch existiert. Danach wird er als geloescht markiert. Leer heisst: der Chatroom bleibt unbefristet bestehen.
chatroom_remove_days_after_continuousintegerFrist in Tagen, nach der eine Person mit fortlaufender Teilnahme (Anmeldung am Haupt-Event) aus dem Chat entfernt wird - gerechnet ab dem Ende ihrer Teilnahme. Leer heisst: kein automatischer Rauswurf.
chatroom_remove_days_after_singleintegerFrist in Tagen, nach der eine Person mit einmaliger Teilnahme (Anmeldung an einem einzelnen Termin) aus dem Chat entfernt wird - gerechnet ab dem Ende dieses Termins. Leer heisst: kein automatischer Rauswurf.
chatroom_participants_can_writebooleanBekommen Teilnehmende im Event-Chat automatisch Schreibrechte? Gilt nur beim Anlegen bzw. Wiederaufnehmen durch die Synchronisation - was Trainer*innen danach von Hand je Person umstellen, bleibt bestehen. Trainer*innen selbst duerfen unabhaengig davon immer schreiben.
chatroom_chatbot_profileChatbotProfile3KI-Assistent, den der Event-Sync beim Anlegen des Event-Chats hinzufuegt. Leer heisst: kein Bot im Event-Chat. Der Modus des Profils muss zur Vertrauensstufe des Raums passen (member oder public).
Show fields (17)
idintegerPrimary key of the chatbot profile. Internal ID.
preferred_color_hexstringPreferred color of the chatbot as hex value.
modestringadmin | member | public - siehe MODE_* Konstanten. Der Modus bestimmt, in welchen Raeumen das Profil ueberhaupt eingesetzt werden darf (Bot-Modus <= Vertrauensstufe des Raums).
system_promptstringSystem-Prompt mit Platzhaltern ([[PERSON_INFO]], [[BASIC_PRINCIPLES]], [[ROOM_INFO]], [[TODAY]], [[TOOL_HINTS]], ...).
modelstringModell-ID in LiteLLM-Notation. Leer heisst: Setting chatbot_default_model.
max_tokensintegerMaximum number of tokens per answer.
max_tool_iterationsintegerObergrenze Tool-Aufrufe pro Turn. Leer heisst: Setting chatbot_tool_max_iterations.
max_context_messagesintegerWie viele abgeschlossene Nachrichten als Kontext an das Modell gehen.
reply_modestringalways | mention | question - siehe REPLY_MODE_* Konstanten.
requires_opt_inbooleanMuss die Person vor der Nutzung einwilligen? Bei mode=member erzwungen true.
disclaimer_textstringWird beim Beitritt als erste internal_system-Nachricht im Raum gepostet.
activebooleanWhether the chatbot profile is active.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
trainer_order_field_namestringSortierung der Teilnehmerliste, die Trainer*innen zu sehen bekommen. Ohne Angabe bleibt es bei der Reihenfolge der Anmeldung (id), alternativ wird die Liste alphabetisch nach Vor- oder Nachname sortiert.
default_expense_categoryExpenseCategory10EÜR-Kategorie für Rechnungen aus Veranstaltungen dieser Art. Beim gemeinnützigen Verein hängt an der Veranstaltungsart, in welche Sphäre die Teilnehmergebühren gehören: ein satzungsgemäßer Kurs ist Zweckbetrieb und damit körperschaft- und gewerbesteuerfrei, ein Angebot in Konkurrenz zu gewerblichen Anbietern ein steuerpflichtiger wirtschaftlicher Geschäftsbetrieb. Das lässt sich nur je Art entscheiden, nicht global. Bleibt das Feld leer, greift wie bisher die Vorbelegung der Buchungsart.
Show fields (19)
idintegerPrimary key of the expense category. Internal ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z.B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z.B. "Waren, Rohstoffe und Hilfsstoffe")
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/event/event_type \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/event_type', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/event_type"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/event/event_type', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/event/event_type"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/event_type")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/event/event_type"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_event_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseEventTypeController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": "42",
"name": "Beispiel",
"menu_name": "Beispiel",
"show_customer_description": true,
"customer_order_field_name": "Beispiel",
"customer_home_show_more_button_text": "Text",
"customer_home_own_more_button_text": "Text",
"customer_home_headline_text": "Text",
"customer_home_own_headline_text": "Text",
"customer_home_order_field_name": "Beispiel"
}
]Add a new BaseEventDataType
POST/api/event/event_type
Responses
200Add a new BaseEventDataTypeBaseEventDataType
Show fields (49)
idstringIdentifier of the event data type. For example course or trip.
namestringName of the event data type.
menu_namestringName of the menu entry for the event data type.
show_admin_menubooleanShow the event data type in the admin menu.
show_customer_menubooleanShow the event data type in the customer app menu.
show_customer_descriptionbooleancontrols whether the customer event list shows the description below the headline
customer_order_field_namestringField the events are sorted by in the customer app.
customer_order_field_sortstringSort direction of the events in the customer app.
show_customer_home_modestringcan be BOTH, ALL, OWN, NONE
customer_home_show_more_button_textstringgeneral text for show more button
customer_home_own_more_button_textstringtext for show more button of own events
customer_home_headline_textstringtext for headline of all events
customer_home_own_headline_textstringtext for headline of own events
customer_home_only_same_daybooleanShow only events of the same day on the customer home screen.
customer_home_order_field_namestringField the events are sorted by on the customer home screen.
customer_home_order_field_sortstringSort direction of the events on the customer home screen.
customer_detail_ctastringCall-to-action text on the event detail page in the customer app.
customer_legal_hintstringLegal hint shown in the customer app.
customer_legal_cancellation_policystringCancellation policy text shown in the customer app.
customer_legal_privacy_policystringPrivacy policy text shown in the customer app.
customer_legal_disclaimerstringDisclaimer text shown in the customer app.
additional_filter_idsstringIDs of the additional filters for this event data type.
allow_parallel_signupbooleanParticipants may sign up for several events at the same time.
has_defined_ui_settingsbooleanSpecific UI settings are defined for this event data type.
trainer_can_add_participantbooleanTrainers can add participants.
trainer_can_delete_participantbooleanTrainers can remove participants.
trainer_can_delete_future_participantbooleanTrainers can remove participants from future bookings.
trainer_can_cancel_bookingbooleanTrainers can cancel a booking.
trainer_can_send_messagebooleanTrainers can send messages to participants.
trainer_can_view_next_bookingbooleanTrainers can see their next booking.
trainer_can_create_chatroombooleanDuerfen Trainer*innen fuer eine Veranstaltung dieser Art selbst einen Chatroom anlegen? Der Chat wird danach automatisch mit den Anmeldungen synchronisiert - siehe chatroomWeeksBeforeEvent / chatroomWeeksAfterEvent und die beiden Rauswurf-Fristen.
enable_bib_numbersbooleanEvents dieses Typs koennen Startnummern vergeben (siehe docs/event/STARTNUMMERN_ZEITMESSUNG.md).
enable_timingbooleanEvents dieses Typs haben Zeitmessung, Live-Tracking und Ergebnislisten.
trainer_can_edit_scoreboardbooleanDuerfen Trainer*innen bei Events dieses Typs mit Scoreboard den Spielstand und den Spielbericht (Tore, Karten, Strafen, ...) in der Kunden-App eintragen?
trainer_can_claim_substitutionbooleanDuerfen Trainer*innen offene Termine dieses Typs, fuer die eine Vertretung gesucht wird, in der Kunden-App selbst uebernehmen? Greift nur, wenn event_substitution_enabled an ist.
trainer_can_release_for_substitutionbooleanDuerfen Trainer*innen bei Terminen dieses Typs selbst eine Vertretung suchen ("ich kann nicht"): sie werden ausgetragen, der Termin wird anderen Trainer*innen angeboten.
kiosk_visiblebooleanErscheinen Termine dieses Typs in der Kiosk-App fuer Mitglieder? Greift nur, wenn kiosk_enabled an ist.
kiosk_self_check_in_allowedbooleanDuerfen sich Mitglieder am Kiosk selbst fuer Termine dieses Typs einchecken? Greift nur, wenn kiosk_self_check_in_enabled an ist.
kiosk_follow_up_allowedbooleanDuerfen sich Mitglieder am Kiosk fuer den Folgetermin eines Kurses dieses Typs anmelden? Greift nur, wenn kiosk_follow_up_signup_enabled an ist.
chatroom_weeks_before_eventintegerWie viele Wochen vor Beginn des Event-Zeitraums der Chatroom bereits existiert. Leer heisst: keine untere Grenze, der Chatroom kann jederzeit vorab angelegt werden.
chatroom_weeks_after_eventintegerWie viele Wochen nach Ende des Event-Zeitraums der Chatroom noch existiert. Danach wird er als geloescht markiert. Leer heisst: der Chatroom bleibt unbefristet bestehen.
chatroom_remove_days_after_continuousintegerFrist in Tagen, nach der eine Person mit fortlaufender Teilnahme (Anmeldung am Haupt-Event) aus dem Chat entfernt wird - gerechnet ab dem Ende ihrer Teilnahme. Leer heisst: kein automatischer Rauswurf.
chatroom_remove_days_after_singleintegerFrist in Tagen, nach der eine Person mit einmaliger Teilnahme (Anmeldung an einem einzelnen Termin) aus dem Chat entfernt wird - gerechnet ab dem Ende dieses Termins. Leer heisst: kein automatischer Rauswurf.
chatroom_participants_can_writebooleanBekommen Teilnehmende im Event-Chat automatisch Schreibrechte? Gilt nur beim Anlegen bzw. Wiederaufnehmen durch die Synchronisation - was Trainer*innen danach von Hand je Person umstellen, bleibt bestehen. Trainer*innen selbst duerfen unabhaengig davon immer schreiben.
chatroom_chatbot_profileChatbotProfile3KI-Assistent, den der Event-Sync beim Anlegen des Event-Chats hinzufuegt. Leer heisst: kein Bot im Event-Chat. Der Modus des Profils muss zur Vertrauensstufe des Raums passen (member oder public).
Show fields (17)
idintegerPrimary key of the chatbot profile. Internal ID.
preferred_color_hexstringPreferred color of the chatbot as hex value.
modestringadmin | member | public - siehe MODE_* Konstanten. Der Modus bestimmt, in welchen Raeumen das Profil ueberhaupt eingesetzt werden darf (Bot-Modus <= Vertrauensstufe des Raums).
system_promptstringSystem-Prompt mit Platzhaltern ([[PERSON_INFO]], [[BASIC_PRINCIPLES]], [[ROOM_INFO]], [[TODAY]], [[TOOL_HINTS]], ...).
modelstringModell-ID in LiteLLM-Notation. Leer heisst: Setting chatbot_default_model.
max_tokensintegerMaximum number of tokens per answer.
max_tool_iterationsintegerObergrenze Tool-Aufrufe pro Turn. Leer heisst: Setting chatbot_tool_max_iterations.
max_context_messagesintegerWie viele abgeschlossene Nachrichten als Kontext an das Modell gehen.
reply_modestringalways | mention | question - siehe REPLY_MODE_* Konstanten.
requires_opt_inbooleanMuss die Person vor der Nutzung einwilligen? Bei mode=member erzwungen true.
disclaimer_textstringWird beim Beitritt als erste internal_system-Nachricht im Raum gepostet.
activebooleanWhether the chatbot profile is active.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
trainer_order_field_namestringSortierung der Teilnehmerliste, die Trainer*innen zu sehen bekommen. Ohne Angabe bleibt es bei der Reihenfolge der Anmeldung (id), alternativ wird die Liste alphabetisch nach Vor- oder Nachname sortiert.
default_expense_categoryExpenseCategory10EÜR-Kategorie für Rechnungen aus Veranstaltungen dieser Art. Beim gemeinnützigen Verein hängt an der Veranstaltungsart, in welche Sphäre die Teilnehmergebühren gehören: ein satzungsgemäßer Kurs ist Zweckbetrieb und damit körperschaft- und gewerbesteuerfrei, ein Angebot in Konkurrenz zu gewerblichen Anbietern ein steuerpflichtiger wirtschaftlicher Geschäftsbetrieb. Das lässt sich nur je Art entscheiden, nicht global. Bleibt das Feld leer, greift wie bisher die Vorbelegung der Buchungsart.
Show fields (19)
idintegerPrimary key of the expense category. Internal ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z.B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z.B. "Waren, Rohstoffe und Hilfsstoffe")
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request POST \
--url https://your-instance.iw-erp.de/api/event/event_type \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/event_type', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/event_type"
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://your-instance.iw-erp.de/api/event/event_type', [
'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://your-instance.iw-erp.de/api/event/event_type"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/event_type")
.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://your-instance.iw-erp.de/api/event/event_type"
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_event_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/event_base_event_type.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseEventTypeController.post(EventBaseEventType.fromJson({}));
if (result.success) {
print(result.data);
}{
"id": "42",
"name": "Beispiel",
"menu_name": "Beispiel",
"show_customer_description": true,
"customer_order_field_name": "Beispiel",
"customer_home_show_more_button_text": "Text",
"customer_home_own_more_button_text": "Text",
"customer_home_headline_text": "Text",
"customer_home_own_headline_text": "Text",
"customer_home_order_field_name": "Beispiel"
}This method will get a single BaseEventDataType with the given id
GET/api/event/event_type/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single BaseEventDataTypeBaseEventDataType
Show fields (49)
idstringIdentifier of the event data type. For example course or trip.
namestringName of the event data type.
menu_namestringName of the menu entry for the event data type.
show_admin_menubooleanShow the event data type in the admin menu.
show_customer_menubooleanShow the event data type in the customer app menu.
show_customer_descriptionbooleancontrols whether the customer event list shows the description below the headline
customer_order_field_namestringField the events are sorted by in the customer app.
customer_order_field_sortstringSort direction of the events in the customer app.
show_customer_home_modestringcan be BOTH, ALL, OWN, NONE
customer_home_show_more_button_textstringgeneral text for show more button
customer_home_own_more_button_textstringtext for show more button of own events
customer_home_headline_textstringtext for headline of all events
customer_home_own_headline_textstringtext for headline of own events
customer_home_only_same_daybooleanShow only events of the same day on the customer home screen.
customer_home_order_field_namestringField the events are sorted by on the customer home screen.
customer_home_order_field_sortstringSort direction of the events on the customer home screen.
customer_detail_ctastringCall-to-action text on the event detail page in the customer app.
customer_legal_hintstringLegal hint shown in the customer app.
customer_legal_cancellation_policystringCancellation policy text shown in the customer app.
customer_legal_privacy_policystringPrivacy policy text shown in the customer app.
customer_legal_disclaimerstringDisclaimer text shown in the customer app.
additional_filter_idsstringIDs of the additional filters for this event data type.
allow_parallel_signupbooleanParticipants may sign up for several events at the same time.
has_defined_ui_settingsbooleanSpecific UI settings are defined for this event data type.
trainer_can_add_participantbooleanTrainers can add participants.
trainer_can_delete_participantbooleanTrainers can remove participants.
trainer_can_delete_future_participantbooleanTrainers can remove participants from future bookings.
trainer_can_cancel_bookingbooleanTrainers can cancel a booking.
trainer_can_send_messagebooleanTrainers can send messages to participants.
trainer_can_view_next_bookingbooleanTrainers can see their next booking.
trainer_can_create_chatroombooleanDuerfen Trainer*innen fuer eine Veranstaltung dieser Art selbst einen Chatroom anlegen? Der Chat wird danach automatisch mit den Anmeldungen synchronisiert - siehe chatroomWeeksBeforeEvent / chatroomWeeksAfterEvent und die beiden Rauswurf-Fristen.
enable_bib_numbersbooleanEvents dieses Typs koennen Startnummern vergeben (siehe docs/event/STARTNUMMERN_ZEITMESSUNG.md).
enable_timingbooleanEvents dieses Typs haben Zeitmessung, Live-Tracking und Ergebnislisten.
trainer_can_edit_scoreboardbooleanDuerfen Trainer*innen bei Events dieses Typs mit Scoreboard den Spielstand und den Spielbericht (Tore, Karten, Strafen, ...) in der Kunden-App eintragen?
trainer_can_claim_substitutionbooleanDuerfen Trainer*innen offene Termine dieses Typs, fuer die eine Vertretung gesucht wird, in der Kunden-App selbst uebernehmen? Greift nur, wenn event_substitution_enabled an ist.
trainer_can_release_for_substitutionbooleanDuerfen Trainer*innen bei Terminen dieses Typs selbst eine Vertretung suchen ("ich kann nicht"): sie werden ausgetragen, der Termin wird anderen Trainer*innen angeboten.
kiosk_visiblebooleanErscheinen Termine dieses Typs in der Kiosk-App fuer Mitglieder? Greift nur, wenn kiosk_enabled an ist.
kiosk_self_check_in_allowedbooleanDuerfen sich Mitglieder am Kiosk selbst fuer Termine dieses Typs einchecken? Greift nur, wenn kiosk_self_check_in_enabled an ist.
kiosk_follow_up_allowedbooleanDuerfen sich Mitglieder am Kiosk fuer den Folgetermin eines Kurses dieses Typs anmelden? Greift nur, wenn kiosk_follow_up_signup_enabled an ist.
chatroom_weeks_before_eventintegerWie viele Wochen vor Beginn des Event-Zeitraums der Chatroom bereits existiert. Leer heisst: keine untere Grenze, der Chatroom kann jederzeit vorab angelegt werden.
chatroom_weeks_after_eventintegerWie viele Wochen nach Ende des Event-Zeitraums der Chatroom noch existiert. Danach wird er als geloescht markiert. Leer heisst: der Chatroom bleibt unbefristet bestehen.
chatroom_remove_days_after_continuousintegerFrist in Tagen, nach der eine Person mit fortlaufender Teilnahme (Anmeldung am Haupt-Event) aus dem Chat entfernt wird - gerechnet ab dem Ende ihrer Teilnahme. Leer heisst: kein automatischer Rauswurf.
chatroom_remove_days_after_singleintegerFrist in Tagen, nach der eine Person mit einmaliger Teilnahme (Anmeldung an einem einzelnen Termin) aus dem Chat entfernt wird - gerechnet ab dem Ende dieses Termins. Leer heisst: kein automatischer Rauswurf.
chatroom_participants_can_writebooleanBekommen Teilnehmende im Event-Chat automatisch Schreibrechte? Gilt nur beim Anlegen bzw. Wiederaufnehmen durch die Synchronisation - was Trainer*innen danach von Hand je Person umstellen, bleibt bestehen. Trainer*innen selbst duerfen unabhaengig davon immer schreiben.
chatroom_chatbot_profileChatbotProfile3KI-Assistent, den der Event-Sync beim Anlegen des Event-Chats hinzufuegt. Leer heisst: kein Bot im Event-Chat. Der Modus des Profils muss zur Vertrauensstufe des Raums passen (member oder public).
Show fields (17)
idintegerPrimary key of the chatbot profile. Internal ID.
preferred_color_hexstringPreferred color of the chatbot as hex value.
modestringadmin | member | public - siehe MODE_* Konstanten. Der Modus bestimmt, in welchen Raeumen das Profil ueberhaupt eingesetzt werden darf (Bot-Modus <= Vertrauensstufe des Raums).
system_promptstringSystem-Prompt mit Platzhaltern ([[PERSON_INFO]], [[BASIC_PRINCIPLES]], [[ROOM_INFO]], [[TODAY]], [[TOOL_HINTS]], ...).
modelstringModell-ID in LiteLLM-Notation. Leer heisst: Setting chatbot_default_model.
max_tokensintegerMaximum number of tokens per answer.
max_tool_iterationsintegerObergrenze Tool-Aufrufe pro Turn. Leer heisst: Setting chatbot_tool_max_iterations.
max_context_messagesintegerWie viele abgeschlossene Nachrichten als Kontext an das Modell gehen.
reply_modestringalways | mention | question - siehe REPLY_MODE_* Konstanten.
requires_opt_inbooleanMuss die Person vor der Nutzung einwilligen? Bei mode=member erzwungen true.
disclaimer_textstringWird beim Beitritt als erste internal_system-Nachricht im Raum gepostet.
activebooleanWhether the chatbot profile is active.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
trainer_order_field_namestringSortierung der Teilnehmerliste, die Trainer*innen zu sehen bekommen. Ohne Angabe bleibt es bei der Reihenfolge der Anmeldung (id), alternativ wird die Liste alphabetisch nach Vor- oder Nachname sortiert.
default_expense_categoryExpenseCategory10EÜR-Kategorie für Rechnungen aus Veranstaltungen dieser Art. Beim gemeinnützigen Verein hängt an der Veranstaltungsart, in welche Sphäre die Teilnehmergebühren gehören: ein satzungsgemäßer Kurs ist Zweckbetrieb und damit körperschaft- und gewerbesteuerfrei, ein Angebot in Konkurrenz zu gewerblichen Anbietern ein steuerpflichtiger wirtschaftlicher Geschäftsbetrieb. Das lässt sich nur je Art entscheiden, nicht global. Bleibt das Feld leer, greift wie bisher die Vorbelegung der Buchungsart.
Show fields (19)
idintegerPrimary key of the expense category. Internal ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z.B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z.B. "Waren, Rohstoffe und Hilfsstoffe")
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/event/event_type/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/event_type/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/event_type/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/event/event_type/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/event/event_type/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/event_type/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/event/event_type/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_event_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseEventTypeController.get('42');
if (result.success) {
print(result.data);
}{
"id": "42",
"name": "Beispiel",
"menu_name": "Beispiel",
"show_customer_description": true,
"customer_order_field_name": "Beispiel",
"customer_home_show_more_button_text": "Text",
"customer_home_own_more_button_text": "Text",
"customer_home_headline_text": "Text",
"customer_home_own_headline_text": "Text",
"customer_home_order_field_name": "Beispiel"
}Update a BaseEventDataType
PUT/api/event/event_type/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Update a BaseEventDataTypeBaseEventDataType
Show fields (49)
idstringIdentifier of the event data type. For example course or trip.
namestringName of the event data type.
menu_namestringName of the menu entry for the event data type.
show_admin_menubooleanShow the event data type in the admin menu.
show_customer_menubooleanShow the event data type in the customer app menu.
show_customer_descriptionbooleancontrols whether the customer event list shows the description below the headline
customer_order_field_namestringField the events are sorted by in the customer app.
customer_order_field_sortstringSort direction of the events in the customer app.
show_customer_home_modestringcan be BOTH, ALL, OWN, NONE
customer_home_show_more_button_textstringgeneral text for show more button
customer_home_own_more_button_textstringtext for show more button of own events
customer_home_headline_textstringtext for headline of all events
customer_home_own_headline_textstringtext for headline of own events
customer_home_only_same_daybooleanShow only events of the same day on the customer home screen.
customer_home_order_field_namestringField the events are sorted by on the customer home screen.
customer_home_order_field_sortstringSort direction of the events on the customer home screen.
customer_detail_ctastringCall-to-action text on the event detail page in the customer app.
customer_legal_hintstringLegal hint shown in the customer app.
customer_legal_cancellation_policystringCancellation policy text shown in the customer app.
customer_legal_privacy_policystringPrivacy policy text shown in the customer app.
customer_legal_disclaimerstringDisclaimer text shown in the customer app.
additional_filter_idsstringIDs of the additional filters for this event data type.
allow_parallel_signupbooleanParticipants may sign up for several events at the same time.
has_defined_ui_settingsbooleanSpecific UI settings are defined for this event data type.
trainer_can_add_participantbooleanTrainers can add participants.
trainer_can_delete_participantbooleanTrainers can remove participants.
trainer_can_delete_future_participantbooleanTrainers can remove participants from future bookings.
trainer_can_cancel_bookingbooleanTrainers can cancel a booking.
trainer_can_send_messagebooleanTrainers can send messages to participants.
trainer_can_view_next_bookingbooleanTrainers can see their next booking.
trainer_can_create_chatroombooleanDuerfen Trainer*innen fuer eine Veranstaltung dieser Art selbst einen Chatroom anlegen? Der Chat wird danach automatisch mit den Anmeldungen synchronisiert - siehe chatroomWeeksBeforeEvent / chatroomWeeksAfterEvent und die beiden Rauswurf-Fristen.
enable_bib_numbersbooleanEvents dieses Typs koennen Startnummern vergeben (siehe docs/event/STARTNUMMERN_ZEITMESSUNG.md).
enable_timingbooleanEvents dieses Typs haben Zeitmessung, Live-Tracking und Ergebnislisten.
trainer_can_edit_scoreboardbooleanDuerfen Trainer*innen bei Events dieses Typs mit Scoreboard den Spielstand und den Spielbericht (Tore, Karten, Strafen, ...) in der Kunden-App eintragen?
trainer_can_claim_substitutionbooleanDuerfen Trainer*innen offene Termine dieses Typs, fuer die eine Vertretung gesucht wird, in der Kunden-App selbst uebernehmen? Greift nur, wenn event_substitution_enabled an ist.
trainer_can_release_for_substitutionbooleanDuerfen Trainer*innen bei Terminen dieses Typs selbst eine Vertretung suchen ("ich kann nicht"): sie werden ausgetragen, der Termin wird anderen Trainer*innen angeboten.
kiosk_visiblebooleanErscheinen Termine dieses Typs in der Kiosk-App fuer Mitglieder? Greift nur, wenn kiosk_enabled an ist.
kiosk_self_check_in_allowedbooleanDuerfen sich Mitglieder am Kiosk selbst fuer Termine dieses Typs einchecken? Greift nur, wenn kiosk_self_check_in_enabled an ist.
kiosk_follow_up_allowedbooleanDuerfen sich Mitglieder am Kiosk fuer den Folgetermin eines Kurses dieses Typs anmelden? Greift nur, wenn kiosk_follow_up_signup_enabled an ist.
chatroom_weeks_before_eventintegerWie viele Wochen vor Beginn des Event-Zeitraums der Chatroom bereits existiert. Leer heisst: keine untere Grenze, der Chatroom kann jederzeit vorab angelegt werden.
chatroom_weeks_after_eventintegerWie viele Wochen nach Ende des Event-Zeitraums der Chatroom noch existiert. Danach wird er als geloescht markiert. Leer heisst: der Chatroom bleibt unbefristet bestehen.
chatroom_remove_days_after_continuousintegerFrist in Tagen, nach der eine Person mit fortlaufender Teilnahme (Anmeldung am Haupt-Event) aus dem Chat entfernt wird - gerechnet ab dem Ende ihrer Teilnahme. Leer heisst: kein automatischer Rauswurf.
chatroom_remove_days_after_singleintegerFrist in Tagen, nach der eine Person mit einmaliger Teilnahme (Anmeldung an einem einzelnen Termin) aus dem Chat entfernt wird - gerechnet ab dem Ende dieses Termins. Leer heisst: kein automatischer Rauswurf.
chatroom_participants_can_writebooleanBekommen Teilnehmende im Event-Chat automatisch Schreibrechte? Gilt nur beim Anlegen bzw. Wiederaufnehmen durch die Synchronisation - was Trainer*innen danach von Hand je Person umstellen, bleibt bestehen. Trainer*innen selbst duerfen unabhaengig davon immer schreiben.
chatroom_chatbot_profileChatbotProfile3KI-Assistent, den der Event-Sync beim Anlegen des Event-Chats hinzufuegt. Leer heisst: kein Bot im Event-Chat. Der Modus des Profils muss zur Vertrauensstufe des Raums passen (member oder public).
Show fields (17)
idintegerPrimary key of the chatbot profile. Internal ID.
preferred_color_hexstringPreferred color of the chatbot as hex value.
modestringadmin | member | public - siehe MODE_* Konstanten. Der Modus bestimmt, in welchen Raeumen das Profil ueberhaupt eingesetzt werden darf (Bot-Modus <= Vertrauensstufe des Raums).
system_promptstringSystem-Prompt mit Platzhaltern ([[PERSON_INFO]], [[BASIC_PRINCIPLES]], [[ROOM_INFO]], [[TODAY]], [[TOOL_HINTS]], ...).
modelstringModell-ID in LiteLLM-Notation. Leer heisst: Setting chatbot_default_model.
max_tokensintegerMaximum number of tokens per answer.
max_tool_iterationsintegerObergrenze Tool-Aufrufe pro Turn. Leer heisst: Setting chatbot_tool_max_iterations.
max_context_messagesintegerWie viele abgeschlossene Nachrichten als Kontext an das Modell gehen.
reply_modestringalways | mention | question - siehe REPLY_MODE_* Konstanten.
requires_opt_inbooleanMuss die Person vor der Nutzung einwilligen? Bei mode=member erzwungen true.
disclaimer_textstringWird beim Beitritt als erste internal_system-Nachricht im Raum gepostet.
activebooleanWhether the chatbot profile is active.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
trainer_order_field_namestringSortierung der Teilnehmerliste, die Trainer*innen zu sehen bekommen. Ohne Angabe bleibt es bei der Reihenfolge der Anmeldung (id), alternativ wird die Liste alphabetisch nach Vor- oder Nachname sortiert.
default_expense_categoryExpenseCategory10EÜR-Kategorie für Rechnungen aus Veranstaltungen dieser Art. Beim gemeinnützigen Verein hängt an der Veranstaltungsart, in welche Sphäre die Teilnehmergebühren gehören: ein satzungsgemäßer Kurs ist Zweckbetrieb und damit körperschaft- und gewerbesteuerfrei, ein Angebot in Konkurrenz zu gewerblichen Anbietern ein steuerpflichtiger wirtschaftlicher Geschäftsbetrieb. Das lässt sich nur je Art entscheiden, nicht global. Bleibt das Feld leer, greift wie bisher die Vorbelegung der Buchungsart.
Show fields (19)
idintegerPrimary key of the expense category. Internal ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z.B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z.B. "Waren, Rohstoffe und Hilfsstoffe")
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/event/event_type/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'PUT', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/event_type/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/event_type/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.put(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/event/event_type/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.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/event/event_type/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/event_type/42")
.put(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://your-instance.iw-erp.de/api/event/event_type/42"
req, _ := http.NewRequest("PUT", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/event_base_event_type_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/event_base_event_type.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await EventBaseEventTypeController.put(EventBaseEventType.fromJson({}));
if (result.success) {
print(result.data);
}{
"id": "42",
"name": "Beispiel",
"menu_name": "Beispiel",
"show_customer_description": true,
"customer_order_field_name": "Beispiel",
"customer_home_show_more_button_text": "Text",
"customer_home_own_more_button_text": "Text",
"customer_home_headline_text": "Text",
"customer_home_own_headline_text": "Text",
"customer_home_order_field_name": "Beispiel"
}Update a BaseEventDataType
PATCH/api/event/event_type/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Update a BaseEventDataTypeBaseEventDataType
Show fields (49)
idstringIdentifier of the event data type. For example course or trip.
namestringName of the event data type.
menu_namestringName of the menu entry for the event data type.
show_admin_menubooleanShow the event data type in the admin menu.
show_customer_menubooleanShow the event data type in the customer app menu.
show_customer_descriptionbooleancontrols whether the customer event list shows the description below the headline
customer_order_field_namestringField the events are sorted by in the customer app.
customer_order_field_sortstringSort direction of the events in the customer app.
show_customer_home_modestringcan be BOTH, ALL, OWN, NONE
customer_home_show_more_button_textstringgeneral text for show more button
customer_home_own_more_button_textstringtext for show more button of own events
customer_home_headline_textstringtext for headline of all events
customer_home_own_headline_textstringtext for headline of own events
customer_home_only_same_daybooleanShow only events of the same day on the customer home screen.
customer_home_order_field_namestringField the events are sorted by on the customer home screen.
customer_home_order_field_sortstringSort direction of the events on the customer home screen.
customer_detail_ctastringCall-to-action text on the event detail page in the customer app.
customer_legal_hintstringLegal hint shown in the customer app.
customer_legal_cancellation_policystringCancellation policy text shown in the customer app.
customer_legal_privacy_policystringPrivacy policy text shown in the customer app.
customer_legal_disclaimerstringDisclaimer text shown in the customer app.
additional_filter_idsstringIDs of the additional filters for this event data type.
allow_parallel_signupbooleanParticipants may sign up for several events at the same time.
has_defined_ui_settingsbooleanSpecific UI settings are defined for this event data type.
trainer_can_add_participantbooleanTrainers can add participants.
trainer_can_delete_participantbooleanTrainers can remove participants.
trainer_can_delete_future_participantbooleanTrainers can remove participants from future bookings.
trainer_can_cancel_bookingbooleanTrainers can cancel a booking.
trainer_can_send_messagebooleanTrainers can send messages to participants.
trainer_can_view_next_bookingbooleanTrainers can see their next booking.
trainer_can_create_chatroombooleanDuerfen Trainer*innen fuer eine Veranstaltung dieser Art selbst einen Chatroom anlegen? Der Chat wird danach automatisch mit den Anmeldungen synchronisiert - siehe chatroomWeeksBeforeEvent / chatroomWeeksAfterEvent und die beiden Rauswurf-Fristen.
enable_bib_numbersbooleanEvents dieses Typs koennen Startnummern vergeben (siehe docs/event/STARTNUMMERN_ZEITMESSUNG.md).
enable_timingbooleanEvents dieses Typs haben Zeitmessung, Live-Tracking und Ergebnislisten.
trainer_can_edit_scoreboardbooleanDuerfen Trainer*innen bei Events dieses Typs mit Scoreboard den Spielstand und den Spielbericht (Tore, Karten, Strafen, ...) in der Kunden-App eintragen?
trainer_can_claim_substitutionbooleanDuerfen Trainer*innen offene Termine dieses Typs, fuer die eine Vertretung gesucht wird, in der Kunden-App selbst uebernehmen? Greift nur, wenn event_substitution_enabled an ist.
trainer_can_release_for_substitutionbooleanDuerfen Trainer*innen bei Terminen dieses Typs selbst eine Vertretung suchen ("ich kann nicht"): sie werden ausgetragen, der Termin wird anderen Trainer*innen angeboten.
kiosk_visiblebooleanErscheinen Termine dieses Typs in der Kiosk-App fuer Mitglieder? Greift nur, wenn kiosk_enabled an ist.
kiosk_self_check_in_allowedbooleanDuerfen sich Mitglieder am Kiosk selbst fuer Termine dieses Typs einchecken? Greift nur, wenn kiosk_self_check_in_enabled an ist.
kiosk_follow_up_allowedbooleanDuerfen sich Mitglieder am Kiosk fuer den Folgetermin eines Kurses dieses Typs anmelden? Greift nur, wenn kiosk_follow_up_signup_enabled an ist.
chatroom_weeks_before_eventintegerWie viele Wochen vor Beginn des Event-Zeitraums der Chatroom bereits existiert. Leer heisst: keine untere Grenze, der Chatroom kann jederzeit vorab angelegt werden.
chatroom_weeks_after_eventintegerWie viele Wochen nach Ende des Event-Zeitraums der Chatroom noch existiert. Danach wird er als geloescht markiert. Leer heisst: der Chatroom bleibt unbefristet bestehen.
chatroom_remove_days_after_continuousintegerFrist in Tagen, nach der eine Person mit fortlaufender Teilnahme (Anmeldung am Haupt-Event) aus dem Chat entfernt wird - gerechnet ab dem Ende ihrer Teilnahme. Leer heisst: kein automatischer Rauswurf.
chatroom_remove_days_after_singleintegerFrist in Tagen, nach der eine Person mit einmaliger Teilnahme (Anmeldung an einem einzelnen Termin) aus dem Chat entfernt wird - gerechnet ab dem Ende dieses Termins. Leer heisst: kein automatischer Rauswurf.
chatroom_participants_can_writebooleanBekommen Teilnehmende im Event-Chat automatisch Schreibrechte? Gilt nur beim Anlegen bzw. Wiederaufnehmen durch die Synchronisation - was Trainer*innen danach von Hand je Person umstellen, bleibt bestehen. Trainer*innen selbst duerfen unabhaengig davon immer schreiben.
chatroom_chatbot_profileChatbotProfile3KI-Assistent, den der Event-Sync beim Anlegen des Event-Chats hinzufuegt. Leer heisst: kein Bot im Event-Chat. Der Modus des Profils muss zur Vertrauensstufe des Raums passen (member oder public).
Show fields (17)
idintegerPrimary key of the chatbot profile. Internal ID.
preferred_color_hexstringPreferred color of the chatbot as hex value.
modestringadmin | member | public - siehe MODE_* Konstanten. Der Modus bestimmt, in welchen Raeumen das Profil ueberhaupt eingesetzt werden darf (Bot-Modus <= Vertrauensstufe des Raums).
system_promptstringSystem-Prompt mit Platzhaltern ([[PERSON_INFO]], [[BASIC_PRINCIPLES]], [[ROOM_INFO]], [[TODAY]], [[TOOL_HINTS]], ...).
modelstringModell-ID in LiteLLM-Notation. Leer heisst: Setting chatbot_default_model.
max_tokensintegerMaximum number of tokens per answer.
max_tool_iterationsintegerObergrenze Tool-Aufrufe pro Turn. Leer heisst: Setting chatbot_tool_max_iterations.
max_context_messagesintegerWie viele abgeschlossene Nachrichten als Kontext an das Modell gehen.
reply_modestringalways | mention | question - siehe REPLY_MODE_* Konstanten.
requires_opt_inbooleanMuss die Person vor der Nutzung einwilligen? Bei mode=member erzwungen true.
disclaimer_textstringWird beim Beitritt als erste internal_system-Nachricht im Raum gepostet.
activebooleanWhether the chatbot profile is active.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
trainer_order_field_namestringSortierung der Teilnehmerliste, die Trainer*innen zu sehen bekommen. Ohne Angabe bleibt es bei der Reihenfolge der Anmeldung (id), alternativ wird die Liste alphabetisch nach Vor- oder Nachname sortiert.
default_expense_categoryExpenseCategory10EÜR-Kategorie für Rechnungen aus Veranstaltungen dieser Art. Beim gemeinnützigen Verein hängt an der Veranstaltungsart, in welche Sphäre die Teilnehmergebühren gehören: ein satzungsgemäßer Kurs ist Zweckbetrieb und damit körperschaft- und gewerbesteuerfrei, ein Angebot in Konkurrenz zu gewerblichen Anbietern ein steuerpflichtiger wirtschaftlicher Geschäftsbetrieb. Das lässt sich nur je Art entscheiden, nicht global. Bleibt das Feld leer, greift wie bisher die Vorbelegung der Buchungsart.
Show fields (19)
idintegerPrimary key of the expense category. Internal ID.
codestringKurzbezeichnung/Code (z.B. "WAREN", "PERSONAL", "MIETE")
eur_line_numberintegerZeile in der Anlage EÜR (z.B. 23 für Wareneinkauf)
eur_line_namestringBezeichnung der EÜR-Zeile (z.B. "Waren, Rohstoffe und Hilfsstoffe")
category_typestringTyp der Kategorie (expense, income, neutral, asset, private)
default_taxTaxStandard-Steuersatz für diese Kategorie
cost_centerCostCenterKostenstelle der Kategorie - bei Vereinen die steuerliche Sphäre. Ein Beleg trägt keine eigene Sphäre; über seine Kategorie bekommt er eine. Die EÜR des wirtschaftlichen Geschäftsbetriebs liest sie (billing_euer_commercial_sphere_only), die automatische Buchung setzt sie auf die Buchungszeilen (billing_accounting_cost_center_from_category).
is_vat_deductiblebooleanIst Vorsteuerabzug möglich?
is_immediate_deductionbooleanIst die Kategorie sofort abzugsfähig? (vs. Abschreibung über mehrere Jahre)
depreciation_yearsintegerAbschreibungsdauer in Jahren (für Anlagevermögen)
sort_orderintegerSortierreihenfolge
is_activebooleanIst die Kategorie aktiv/sichtbar?
colorstringFarbe für UI-Darstellung (Hex-Code)
iconstringIcon-Name für UI-Darstellung
is_systembooleanIst dies eine System-Kategorie? (nicht löschbar)
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
orderintegerPosition of the entity in the order.
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/event/event_type/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'PATCH', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/event/event_type/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/event/event_type/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.patch(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/event/event_type/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.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/event/event_type/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/event/event_type/42")
.patch(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://your-instance.iw-erp.de/api/event/event_type/42"
req, _ := http.NewRequest("PATCH", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/event/event_type/42'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": "42",
"name": "Beispiel",
"menu_name": "Beispiel",
"show_customer_description": true,
"customer_order_field_name": "Beispiel",
"customer_home_show_more_button_text": "Text",
"customer_home_own_more_button_text": "Text",
"customer_home_headline_text": "Text",
"customer_home_own_headline_text": "Text",
"customer_home_order_field_name": "Beispiel"
}