General meeting
CRM / Generalversammlung
Alle Mitgliederversammlungen, neueste Beginn zuerst.
GET/api/crm/general_meeting
Query-Parameter
idstring | |
namestring | |
statestring | |
meetingTypestring | |
startstring | |
endstring | |
invitedAtstring | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
createdstring | |
updatedstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der GeneralMeeting-Objekte.array<GeneralMeeting>
Felder anzeigen (18)
idintegerPrimärschlüssel der Mitgliederversammlung. Interne ID.
namestringName der Hauptversammlung.
agendastringTagesordnung als Klartext, ein Punkt pro Zeile.
meeting_typestringArt der Versammlung, zum Beispiel ordentlich oder außerordentlich.
statestringStatus der Sitzung, zum Beispiel geplant, laufend oder geschlossen.
startstring (date-time)Beginn der Sitzung.
endstring (date-time)Ende der Besprechung.
locationstringOrt des Meetings.
online_urlstringLink zur Videokonferenz für Online- und Hybrid-Meetings.
invited_atstring (date-time)Zeitpunkt, zu dem die Einladungen versendet wurden.
invitation_latebooleanWahr, wenn die Einladung nach Ablauf der Frist versendet und vom Büro bestätigt wurde.
started_atstring (date-time)Zeitpunkt, zu dem die Besprechung begonnen hat.
closed_atstring (date-time)Zeitpunkt, zu dem die Besprechung geschlossen wurde.
minutesstringProtokoll der Versammlung.
minutes_finalized_atstring (date-time)Zeitpunkt, zu dem das Protokoll abgeschlossen wurde.
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
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting', 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/crm/general_meeting"
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/crm/general_meeting', [
'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/crm/general_meeting"),
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/crm/general_meeting")
.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/crm/general_meeting"
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/crm_general_meeting_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 CrmGeneralMeetingController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"state": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"location": "string",
"invited_at": "2026-10-15T09:30:00+02:00"
}
]Legt einen neuen Generalversammlungs-Eintrag im CRM an.
POST/api/crm/general_meeting
Request-Body application/json
namestringagendastringmeeting_typestringPRESENCE, ONLINE, HYBRID
startstring (date-time)endstring (date-time)locationstringonline_urlstring
Antworten
200Die neue GeneralMeetingGeneralMeeting
Felder anzeigen (18)
idintegerPrimärschlüssel der Mitgliederversammlung. Interne ID.
namestringName der Hauptversammlung.
agendastringTagesordnung als Klartext, ein Punkt pro Zeile.
meeting_typestringArt der Versammlung, zum Beispiel ordentlich oder außerordentlich.
statestringStatus der Sitzung, zum Beispiel geplant, laufend oder geschlossen.
startstring (date-time)Beginn der Sitzung.
endstring (date-time)Ende der Besprechung.
locationstringOrt des Meetings.
online_urlstringLink zur Videokonferenz für Online- und Hybrid-Meetings.
invited_atstring (date-time)Zeitpunkt, zu dem die Einladungen versendet wurden.
invitation_latebooleanWahr, wenn die Einladung nach Ablauf der Frist versendet und vom Büro bestätigt wurde.
started_atstring (date-time)Zeitpunkt, zu dem die Besprechung begonnen hat.
closed_atstring (date-time)Zeitpunkt, zu dem die Besprechung geschlossen wurde.
minutesstringProtokoll der Versammlung.
minutes_finalized_atstring (date-time)Zeitpunkt, zu dem das Protokoll abgeschlossen wurde.
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
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
name: 'Beispiel',
online_url: 'https://vynst.de',
agenda: 'string',
meeting_type: 'string',
start: '2026-10-15T09:30:00+02:00',
end: '2026-10-15T09:30:00+02:00'
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting', 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/crm/general_meeting"
payload = {
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}
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/crm/general_meeting', [
'body' => '{"name":"Beispiel","online_url":"https://vynst.de","agenda":"string","meeting_type":"string","start":"2026-10-15T09:30:00+02:00","end":"2026-10-15T09:30:00+02:00"}',
'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/crm/general_meeting"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}")
{
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, "{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting")
.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/crm/general_meeting"
payload := strings.NewReader("{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}")
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/crm_general_meeting_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/general_meeting.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await CrmGeneralMeetingController.post(GeneralMeeting.fromJson({
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"state": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"location": "string",
"invited_at": "2026-10-15T09:30:00+02:00"
}Liefert einen einzelnen Eintrag für CRM-Generalversammlungen.
GET/api/crm/general_meeting/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Liefert ein einzelnes GeneralMeeting-Objekt mit Statistiken.GeneralMeeting
Felder anzeigen (18)
idintegerPrimärschlüssel der Mitgliederversammlung. Interne ID.
namestringName der Hauptversammlung.
agendastringTagesordnung als Klartext, ein Punkt pro Zeile.
meeting_typestringArt der Versammlung, zum Beispiel ordentlich oder außerordentlich.
statestringStatus der Sitzung, zum Beispiel geplant, laufend oder geschlossen.
startstring (date-time)Beginn der Sitzung.
endstring (date-time)Ende der Besprechung.
locationstringOrt des Meetings.
online_urlstringLink zur Videokonferenz für Online- und Hybrid-Meetings.
invited_atstring (date-time)Zeitpunkt, zu dem die Einladungen versendet wurden.
invitation_latebooleanWahr, wenn die Einladung nach Ablauf der Frist versendet und vom Büro bestätigt wurde.
started_atstring (date-time)Zeitpunkt, zu dem die Besprechung begonnen hat.
closed_atstring (date-time)Zeitpunkt, zu dem die Besprechung geschlossen wurde.
minutesstringProtokoll der Versammlung.
minutes_finalized_atstring (date-time)Zeitpunkt, zu dem das Protokoll abgeschlossen wurde.
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
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/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/crm/general_meeting/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/crm/general_meeting/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/crm/general_meeting/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/crm/general_meeting/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/crm/general_meeting/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/crm_general_meeting_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 CrmGeneralMeetingController.get(42);
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"state": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"location": "string",
"invited_at": "2026-10-15T09:30:00+02:00"
}Meeting-Daten, solange es offen ist; das Protokoll bis zur Finalisierung.
PUT/api/crm/general_meeting/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
namestringagendastringmeeting_typestringstartstring (date-time)endstring (date-time)locationstringonline_urlstringminutesstring
Antworten
200Die geänderte GeneralMeetingGeneralMeeting
Felder anzeigen (18)
idintegerPrimärschlüssel der Mitgliederversammlung. Interne ID.
namestringName der Hauptversammlung.
agendastringTagesordnung als Klartext, ein Punkt pro Zeile.
meeting_typestringArt der Versammlung, zum Beispiel ordentlich oder außerordentlich.
statestringStatus der Sitzung, zum Beispiel geplant, laufend oder geschlossen.
startstring (date-time)Beginn der Sitzung.
endstring (date-time)Ende der Besprechung.
locationstringOrt des Meetings.
online_urlstringLink zur Videokonferenz für Online- und Hybrid-Meetings.
invited_atstring (date-time)Zeitpunkt, zu dem die Einladungen versendet wurden.
invitation_latebooleanWahr, wenn die Einladung nach Ablauf der Frist versendet und vom Büro bestätigt wurde.
started_atstring (date-time)Zeitpunkt, zu dem die Besprechung begonnen hat.
closed_atstring (date-time)Zeitpunkt, zu dem die Besprechung geschlossen wurde.
minutesstringProtokoll der Versammlung.
minutes_finalized_atstring (date-time)Zeitpunkt, zu dem das Protokoll abgeschlossen wurde.
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
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
name: 'Beispiel',
online_url: 'https://vynst.de',
agenda: 'string',
meeting_type: 'string',
start: '2026-10-15T09:30:00+02:00',
end: '2026-10-15T09:30:00+02:00'
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/42"
payload = {
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}
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/crm/general_meeting/42', [
'body' => '{"name":"Beispiel","online_url":"https://vynst.de","agenda":"string","meeting_type":"string","start":"2026-10-15T09:30:00+02:00","end":"2026-10-15T09:30:00+02:00"}',
'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/crm/general_meeting/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}")
{
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, "{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/42"
payload := strings.NewReader("{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}")
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/crm_general_meeting_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/general_meeting.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await CrmGeneralMeetingController.put(GeneralMeeting.fromJson({
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"state": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"location": "string",
"invited_at": "2026-10-15T09:30:00+02:00"
}Meeting-Daten, solange es offen ist; das Protokoll bis zur Finalisierung.
PATCH/api/crm/general_meeting/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
namestringagendastringmeeting_typestringstartstring (date-time)endstring (date-time)locationstringonline_urlstringminutesstring
Antworten
200Die geänderte GeneralMeetingGeneralMeeting
Felder anzeigen (18)
idintegerPrimärschlüssel der Mitgliederversammlung. Interne ID.
namestringName der Hauptversammlung.
agendastringTagesordnung als Klartext, ein Punkt pro Zeile.
meeting_typestringArt der Versammlung, zum Beispiel ordentlich oder außerordentlich.
statestringStatus der Sitzung, zum Beispiel geplant, laufend oder geschlossen.
startstring (date-time)Beginn der Sitzung.
endstring (date-time)Ende der Besprechung.
locationstringOrt des Meetings.
online_urlstringLink zur Videokonferenz für Online- und Hybrid-Meetings.
invited_atstring (date-time)Zeitpunkt, zu dem die Einladungen versendet wurden.
invitation_latebooleanWahr, wenn die Einladung nach Ablauf der Frist versendet und vom Büro bestätigt wurde.
started_atstring (date-time)Zeitpunkt, zu dem die Besprechung begonnen hat.
closed_atstring (date-time)Zeitpunkt, zu dem die Besprechung geschlossen wurde.
minutesstringProtokoll der Versammlung.
minutes_finalized_atstring (date-time)Zeitpunkt, zu dem das Protokoll abgeschlossen wurde.
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
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
name: 'Beispiel',
online_url: 'https://vynst.de',
agenda: 'string',
meeting_type: 'string',
start: '2026-10-15T09:30:00+02:00',
end: '2026-10-15T09:30:00+02:00'
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/42"
payload = {
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}
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/crm/general_meeting/42', [
'body' => '{"name":"Beispiel","online_url":"https://vynst.de","agenda":"string","meeting_type":"string","start":"2026-10-15T09:30:00+02:00","end":"2026-10-15T09:30:00+02:00"}',
'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/crm/general_meeting/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}")
{
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, "{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/42"
payload := strings.NewReader("{\"name\":\"Beispiel\",\"online_url\":\"https://vynst.de\",\"agenda\":\"string\",\"meeting_type\":\"string\",\"start\":\"2026-10-15T09:30:00+02:00\",\"end\":\"2026-10-15T09:30:00+02:00\"}")
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/crm/general_meeting/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00"
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"online_url": "https://vynst.de",
"agenda": "string",
"meeting_type": "string",
"state": "string",
"start": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"location": "string",
"invited_at": "2026-10-15T09:30:00+02:00"
}Markiert das Meeting als gelöscht. Ein laufendes Meeting muss zuerst geschlossen oder abgesagt werden.
DELETE/api/crm/general_meeting/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Die gelöschte GeneralMeeting
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting/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.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting/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/crm/general_meeting/42")
.delete(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/crm/general_meeting/42"
req, _ := http.NewRequest("DELETE", 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/crm_general_meeting_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 CrmGeneralMeetingController.delete(42);
if (result.success) {
print(result.data);
}invite (Body force=true bestätigt eine Einladung nach der Einladungsfrist), start, close, cancel, generate_participants (Mitglieder am Versammlungstag), generate_minutes, finalize_minutes.
POST/api/crm/general_meeting/{id}/{action}
Pfad-Parameter
idPflichtstring | |
actionPflichtstring |
Request-Body application/json
forceboolean
Antworten
200meeting (GeneralMeeting) und result (Zählwerte der Aktion)
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting/42/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '{"force":true}'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({force: true})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting/42/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/crm/general_meeting/42/42"
payload = { "force": 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/crm/general_meeting/42/42', [
'body' => '{"force":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/crm/general_meeting/42/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"force\":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, "{\"force\":true}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting/42/42")
.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/crm/general_meeting/42/42"
payload := strings.NewReader("{\"force\":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/crm_general_meeting_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 CrmGeneralMeetingController.action(42, '42');
if (result.success) {
print(result.data);
}Teilnehmende einer Versammlung (meeting=<id>), nach Name.
GET/api/crm/general_meeting_participant
Query-Parameter
idstring | |
meetingstring | |
personstring | |
votingRightstring | |
votingRightReasonstring | NO_VOTE_*, wenn die Person kein Stimmrecht hat, sonst null. |
votingRightManualstring | Das Büro hat das Stimmrecht manuell gesetzt; eine Neuberechnung behält es bei. | Benötigtes Zugriffsrecht: SCOPE |
responsestring | |
attendancestring | |
invitedAtstring | |
createdstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der GeneralMeetingParticipant-Objekte.array<GeneralMeetingParticipant>
Felder anzeigen (12)
meeting_idintegeridintegerPrimärschlüssel des Sitzungsteilnehmers. Interne ID.
voting_rightbooleanDer Teilnehmer hat ein Stimmrecht.
voting_right_reasonstringNO_VOTE_*, wenn die Person kein Stimmrecht hat, sonst null.
voting_right_manualbooleanDas Büro hat das Stimmrecht manuell gesetzt; eine Neuberechnung behält es bei.
invited_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingeladen wurde.
responsestringAntwort auf die Einladung, zum Beispiel angenommen oder abgelehnt.
responded_atstring (date-time)Zeitpunkt, zu dem die Antwort gegeben wurde.
attendancestringAnwesenheit des Teilnehmers, zum Beispiel anwesend oder entschuldigt.
checked_in_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingecheckt hat.
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/crm/general_meeting_participant \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant', 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/crm/general_meeting_participant"
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/crm/general_meeting_participant', [
'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/crm/general_meeting_participant"),
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/crm/general_meeting_participant")
.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/crm/general_meeting_participant"
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/crm_general_meeting_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 CrmGeneralMeetingController.getParticipants(42);
if (result.success) {
print(result.data);
}[
{
"id": 42,
"meeting_id": 42,
"voting_right": true,
"voting_right_reason": "string",
"voting_right_manual": true,
"invited_at": "2026-10-15T09:30:00+02:00",
"response": "string",
"responded_at": "2026-10-15T09:30:00+02:00",
"attendance": "string",
"checked_in_at": "2026-10-15T09:30:00+02:00"
}
]Fügt eine Person hinzu; ohne voting_right wird das Stimmrecht aus den Einstellungen berechnet.
POST/api/crm/general_meeting_participant
Request-Body application/json
meetingintegerpersonintegervoting_rightboolean
Antworten
200Der TeilnehmerGeneralMeetingParticipant
Felder anzeigen (12)
meeting_idintegeridintegerPrimärschlüssel des Sitzungsteilnehmers. Interne ID.
voting_rightbooleanDer Teilnehmer hat ein Stimmrecht.
voting_right_reasonstringNO_VOTE_*, wenn die Person kein Stimmrecht hat, sonst null.
voting_right_manualbooleanDas Büro hat das Stimmrecht manuell gesetzt; eine Neuberechnung behält es bei.
invited_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingeladen wurde.
responsestringAntwort auf die Einladung, zum Beispiel angenommen oder abgelehnt.
responded_atstring (date-time)Zeitpunkt, zu dem die Antwort gegeben wurde.
attendancestringAnwesenheit des Teilnehmers, zum Beispiel anwesend oder entschuldigt.
checked_in_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingecheckt hat.
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/crm/general_meeting_participant \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"meeting": 1,
"person": 1,
"voting_right": true
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({meeting: 1, person: 1, voting_right: true})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant', 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/crm/general_meeting_participant"
payload = {
"meeting": 1,
"person": 1,
"voting_right": 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/crm/general_meeting_participant', [
'body' => '{"meeting":1,"person":1,"voting_right":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/crm/general_meeting_participant"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"meeting\":1,\"person\":1,\"voting_right\":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, "{\"meeting\":1,\"person\":1,\"voting_right\":true}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant")
.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/crm/general_meeting_participant"
payload := strings.NewReader("{\"meeting\":1,\"person\":1,\"voting_right\":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/crm_general_meeting_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 CrmGeneralMeetingController.addParticipant(42, 42);
if (result.success) {
print(result.data);
}{
"id": 42,
"meeting_id": 42,
"voting_right": true,
"voting_right_reason": "string",
"voting_right_manual": true,
"invited_at": "2026-10-15T09:30:00+02:00",
"response": "string",
"responded_at": "2026-10-15T09:30:00+02:00",
"attendance": "string",
"checked_in_at": "2026-10-15T09:30:00+02:00"
}voting_right (true/false manuell, null = erneut berechnet), attendance (ABSENT, ONSITE, ONLINE), response.
PUT/api/crm/general_meeting_participant/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
voting_rightbooleanattendancestringresponsestring
Antworten
200Der TeilnehmerGeneralMeetingParticipant
Felder anzeigen (12)
meeting_idintegeridintegerPrimärschlüssel des Sitzungsteilnehmers. Interne ID.
voting_rightbooleanDer Teilnehmer hat ein Stimmrecht.
voting_right_reasonstringNO_VOTE_*, wenn die Person kein Stimmrecht hat, sonst null.
voting_right_manualbooleanDas Büro hat das Stimmrecht manuell gesetzt; eine Neuberechnung behält es bei.
invited_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingeladen wurde.
responsestringAntwort auf die Einladung, zum Beispiel angenommen oder abgelehnt.
responded_atstring (date-time)Zeitpunkt, zu dem die Antwort gegeben wurde.
attendancestringAnwesenheit des Teilnehmers, zum Beispiel anwesend oder entschuldigt.
checked_in_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingecheckt hat.
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/crm/general_meeting_participant/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"voting_right": true,
"attendance": "string",
"response": "string"
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({voting_right: true, attendance: 'string', response: 'string'})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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/crm/general_meeting_participant/42"
payload = {
"voting_right": True,
"attendance": "string",
"response": "string"
}
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/crm/general_meeting_participant/42', [
'body' => '{"voting_right":true,"attendance":"string","response":"string"}',
'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/crm/general_meeting_participant/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"voting_right\":true,\"attendance\":\"string\",\"response\":\"string\"}")
{
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, "{\"voting_right\":true,\"attendance\":\"string\",\"response\":\"string\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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/crm/general_meeting_participant/42"
payload := strings.NewReader("{\"voting_right\":true,\"attendance\":\"string\",\"response\":\"string\"}")
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/crm_general_meeting_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 CrmGeneralMeetingController.updateParticipant(42);
if (result.success) {
print(result.data);
}{
"id": 42,
"meeting_id": 42,
"voting_right": true,
"voting_right_reason": "string",
"voting_right_manual": true,
"invited_at": "2026-10-15T09:30:00+02:00",
"response": "string",
"responded_at": "2026-10-15T09:30:00+02:00",
"attendance": "string",
"checked_in_at": "2026-10-15T09:30:00+02:00"
}voting_right (true/false manuell, null = erneut berechnet), attendance (ABSENT, ONSITE, ONLINE), response.
PATCH/api/crm/general_meeting_participant/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
voting_rightbooleanattendancestringresponsestring
Antworten
200Der TeilnehmerGeneralMeetingParticipant
Felder anzeigen (12)
meeting_idintegeridintegerPrimärschlüssel des Sitzungsteilnehmers. Interne ID.
voting_rightbooleanDer Teilnehmer hat ein Stimmrecht.
voting_right_reasonstringNO_VOTE_*, wenn die Person kein Stimmrecht hat, sonst null.
voting_right_manualbooleanDas Büro hat das Stimmrecht manuell gesetzt; eine Neuberechnung behält es bei.
invited_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingeladen wurde.
responsestringAntwort auf die Einladung, zum Beispiel angenommen oder abgelehnt.
responded_atstring (date-time)Zeitpunkt, zu dem die Antwort gegeben wurde.
attendancestringAnwesenheit des Teilnehmers, zum Beispiel anwesend oder entschuldigt.
checked_in_atstring (date-time)Zeitpunkt, zu dem der Teilnehmer eingecheckt hat.
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/crm/general_meeting_participant/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"voting_right": true,
"attendance": "string",
"response": "string"
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({voting_right: true, attendance: 'string', response: 'string'})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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/crm/general_meeting_participant/42"
payload = {
"voting_right": True,
"attendance": "string",
"response": "string"
}
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/crm/general_meeting_participant/42', [
'body' => '{"voting_right":true,"attendance":"string","response":"string"}',
'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/crm/general_meeting_participant/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"voting_right\":true,\"attendance\":\"string\",\"response\":\"string\"}")
{
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, "{\"voting_right\":true,\"attendance\":\"string\",\"response\":\"string\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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/crm/general_meeting_participant/42"
payload := strings.NewReader("{\"voting_right\":true,\"attendance\":\"string\",\"response\":\"string\"}")
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/crm/general_meeting_participant/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"voting_right": true,
"attendance": "string",
"response": "string"
}),
);
print(response.body);{
"id": 42,
"meeting_id": 42,
"voting_right": true,
"voting_right_reason": "string",
"voting_right_manual": true,
"invited_at": "2026-10-15T09:30:00+02:00",
"response": "string",
"responded_at": "2026-10-15T09:30:00+02:00",
"attendance": "string",
"checked_in_at": "2026-10-15T09:30:00+02:00"
}Entfernt einen Teilnehmer.
DELETE/api/crm/general_meeting_participant/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200entfernt
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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/crm/general_meeting_participant/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting_participant/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/crm/general_meeting_participant/42")
.delete(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/crm/general_meeting_participant/42"
req, _ := http.NewRequest("DELETE", 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/crm_general_meeting_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 CrmGeneralMeetingController.removeParticipant(42);
if (result.success) {
print(result.data);
}Anträge einer Versammlung (meeting=<id>), nach Position.
GET/api/crm/general_meeting_motion
Query-Parameter
idstring | |
meetingstring | |
statestring | |
votingModestring | |
majoritystring | |
resultstring | |
positionstring | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
createdstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der GeneralMeetingMotion-Objekte.array<GeneralMeetingMotion>
Felder anzeigen (22)
meeting_idintegerballot_countintegerBisher über die App abgegebene Stimmzettel; wird vom Controller gesetzt, nie die Auswahl einer offenen Abstimmung.
idintegerPrimärschlüssel des Antrags. Interne ID.
positionintegerPosition des Antrags in der Tagesordnung.
titlestringTitel des Antrags.
descriptionstringText des Antrags.
voting_modestringAbstimmungsmodus, zum Beispiel offen oder geheim.
majoritystringErforderliche Mehrheit, um den Antrag anzunehmen, zum Beispiel einfach oder zwei Drittel.
statestringStatus des Antrags, zum Beispiel offen, in Abstimmung oder geschlossen.
opened_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geöffnet wurde.
closed_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geschlossen wurde.
manual_yesintegerVor Ort gezählte Stimmen (Handzeichen), beim Schließen zu den App-Stimmen addiert.
manual_nointegerAnzahl der manuellen Nein-Stimmen.
manual_abstainintegerAnzahl der manuellen Enthaltungen.
yes_countintegerEndgültige Zählungen (App + manuell), beim Abschließen gesetzt.
no_countintegerAnzahl der Nein-Stimmen.
abstain_countintegerAnzahl der Enthaltungen.
present_voting_countintegerBei Abschluss anwesende stimmberechtigte Personen; Grundlage einer ABSOLUTEN Mehrheit.
resultstringErgebnis der Abstimmung, zum Beispiel angenommen oder abgelehnt.
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
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion', 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/crm/general_meeting_motion"
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/crm/general_meeting_motion', [
'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/crm/general_meeting_motion"),
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/crm/general_meeting_motion")
.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/crm/general_meeting_motion"
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/crm_general_meeting_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 CrmGeneralMeetingController.getMotions(42);
if (result.success) {
print(result.data);
}[
{
"id": 42,
"title": "Beispiel",
"description": "Text",
"meeting_id": 42,
"ballot_count": 1,
"position": 1,
"voting_mode": "string",
"majority": "string",
"state": "string",
"opened_at": "2026-10-15T09:30:00+02:00"
}
]Erstellt einen Antrag.
POST/api/crm/general_meeting_motion
Request-Body application/json
meetingintegertitlestringdescriptionstringvoting_modestringOPEN, SECRET
majoritystringSIMPLE, TWO_THIRDS, THREE_QUARTERS, ABSOLUTE
positioninteger
Antworten
200Der neue AntragGeneralMeetingMotion
Felder anzeigen (22)
meeting_idintegerballot_countintegerBisher über die App abgegebene Stimmzettel; wird vom Controller gesetzt, nie die Auswahl einer offenen Abstimmung.
idintegerPrimärschlüssel des Antrags. Interne ID.
positionintegerPosition des Antrags in der Tagesordnung.
titlestringTitel des Antrags.
descriptionstringText des Antrags.
voting_modestringAbstimmungsmodus, zum Beispiel offen oder geheim.
majoritystringErforderliche Mehrheit, um den Antrag anzunehmen, zum Beispiel einfach oder zwei Drittel.
statestringStatus des Antrags, zum Beispiel offen, in Abstimmung oder geschlossen.
opened_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geöffnet wurde.
closed_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geschlossen wurde.
manual_yesintegerVor Ort gezählte Stimmen (Handzeichen), beim Schließen zu den App-Stimmen addiert.
manual_nointegerAnzahl der manuellen Nein-Stimmen.
manual_abstainintegerAnzahl der manuellen Enthaltungen.
yes_countintegerEndgültige Zählungen (App + manuell), beim Abschließen gesetzt.
no_countintegerAnzahl der Nein-Stimmen.
abstain_countintegerAnzahl der Enthaltungen.
present_voting_countintegerBei Abschluss anwesende stimmberechtigte Personen; Grundlage einer ABSOLUTEN Mehrheit.
resultstringErgebnis der Abstimmung, zum Beispiel angenommen oder abgelehnt.
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
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"title": "Beispiel",
"description": "Text",
"meeting": 1,
"voting_mode": "string",
"majority": "string",
"position": 1
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
title: 'Beispiel',
description: 'Text',
meeting: 1,
voting_mode: 'string',
majority: 'string',
position: 1
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion', 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/crm/general_meeting_motion"
payload = {
"title": "Beispiel",
"description": "Text",
"meeting": 1,
"voting_mode": "string",
"majority": "string",
"position": 1
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion', [
'body' => '{"title":"Beispiel","description":"Text","meeting":1,"voting_mode":"string","majority":"string","position":1}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"title\":\"Beispiel\",\"description\":\"Text\",\"meeting\":1,\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"title\":\"Beispiel\",\"description\":\"Text\",\"meeting\":1,\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion")
.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/crm/general_meeting_motion"
payload := strings.NewReader("{\"title\":\"Beispiel\",\"description\":\"Text\",\"meeting\":1,\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/crm_general_meeting_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/general_meeting_motion.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await CrmGeneralMeetingController.postMotion(42, GeneralMeetingMotion.fromJson({
"title": "Beispiel",
"description": "Text",
"meeting": 1,
"voting_mode": "string",
"majority": "string",
"position": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"description": "Text",
"meeting_id": 42,
"ballot_count": 1,
"position": 1,
"voting_mode": "string",
"majority": "string",
"state": "string",
"opened_at": "2026-10-15T09:30:00+02:00"
}Liefert einen Antrag.
GET/api/crm/general_meeting_motion/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Liefert ein einzelnes GeneralMeetingMotion-Objekt.GeneralMeetingMotion
Felder anzeigen (22)
meeting_idintegerballot_countintegerBisher über die App abgegebene Stimmzettel; wird vom Controller gesetzt, nie die Auswahl einer offenen Abstimmung.
idintegerPrimärschlüssel des Antrags. Interne ID.
positionintegerPosition des Antrags in der Tagesordnung.
titlestringTitel des Antrags.
descriptionstringText des Antrags.
voting_modestringAbstimmungsmodus, zum Beispiel offen oder geheim.
majoritystringErforderliche Mehrheit, um den Antrag anzunehmen, zum Beispiel einfach oder zwei Drittel.
statestringStatus des Antrags, zum Beispiel offen, in Abstimmung oder geschlossen.
opened_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geöffnet wurde.
closed_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geschlossen wurde.
manual_yesintegerVor Ort gezählte Stimmen (Handzeichen), beim Schließen zu den App-Stimmen addiert.
manual_nointegerAnzahl der manuellen Nein-Stimmen.
manual_abstainintegerAnzahl der manuellen Enthaltungen.
yes_countintegerEndgültige Zählungen (App + manuell), beim Abschließen gesetzt.
no_countintegerAnzahl der Nein-Stimmen.
abstain_countintegerAnzahl der Enthaltungen.
present_voting_countintegerBei Abschluss anwesende stimmberechtigte Personen; Grundlage einer ABSOLUTEN Mehrheit.
resultstringErgebnis der Abstimmung, zum Beispiel angenommen oder abgelehnt.
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
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/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/crm/general_meeting_motion/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/crm/general_meeting_motion/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/crm/general_meeting_motion/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/crm/general_meeting_motion/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/crm/general_meeting_motion/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 package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"description": "Text",
"meeting_id": 42,
"ballot_count": 1,
"position": 1,
"voting_mode": "string",
"majority": "string",
"state": "string",
"opened_at": "2026-10-15T09:30:00+02:00"
}Antrag aktualisieren.
PUT/api/crm/general_meeting_motion/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
titlestringdescriptionstringvoting_modestringmajoritystringpositioninteger
Antworten
200Der geänderte AntragGeneralMeetingMotion
Felder anzeigen (22)
meeting_idintegerballot_countintegerBisher über die App abgegebene Stimmzettel; wird vom Controller gesetzt, nie die Auswahl einer offenen Abstimmung.
idintegerPrimärschlüssel des Antrags. Interne ID.
positionintegerPosition des Antrags in der Tagesordnung.
titlestringTitel des Antrags.
descriptionstringText des Antrags.
voting_modestringAbstimmungsmodus, zum Beispiel offen oder geheim.
majoritystringErforderliche Mehrheit, um den Antrag anzunehmen, zum Beispiel einfach oder zwei Drittel.
statestringStatus des Antrags, zum Beispiel offen, in Abstimmung oder geschlossen.
opened_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geöffnet wurde.
closed_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geschlossen wurde.
manual_yesintegerVor Ort gezählte Stimmen (Handzeichen), beim Schließen zu den App-Stimmen addiert.
manual_nointegerAnzahl der manuellen Nein-Stimmen.
manual_abstainintegerAnzahl der manuellen Enthaltungen.
yes_countintegerEndgültige Zählungen (App + manuell), beim Abschließen gesetzt.
no_countintegerAnzahl der Nein-Stimmen.
abstain_countintegerAnzahl der Enthaltungen.
present_voting_countintegerBei Abschluss anwesende stimmberechtigte Personen; Grundlage einer ABSOLUTEN Mehrheit.
resultstringErgebnis der Abstimmung, zum Beispiel angenommen oder abgelehnt.
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
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"title": "Beispiel",
"description": "Text",
"voting_mode": "string",
"majority": "string",
"position": 1
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
title: 'Beispiel',
description: 'Text',
voting_mode: 'string',
majority: 'string',
position: 1
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/42"
payload = {
"title": "Beispiel",
"description": "Text",
"voting_mode": "string",
"majority": "string",
"position": 1
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42', [
'body' => '{"title":"Beispiel","description":"Text","voting_mode":"string","majority":"string","position":1}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"title\":\"Beispiel\",\"description\":\"Text\",\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"title\":\"Beispiel\",\"description\":\"Text\",\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/42"
payload := strings.NewReader("{\"title\":\"Beispiel\",\"description\":\"Text\",\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/crm_general_meeting_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/general_meeting_motion.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await CrmGeneralMeetingController.putMotion(GeneralMeetingMotion.fromJson({
"title": "Beispiel",
"description": "Text",
"voting_mode": "string",
"majority": "string",
"position": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"description": "Text",
"meeting_id": 42,
"ballot_count": 1,
"position": 1,
"voting_mode": "string",
"majority": "string",
"state": "string",
"opened_at": "2026-10-15T09:30:00+02:00"
}Antrag aktualisieren.
PATCH/api/crm/general_meeting_motion/{id}
Pfad-Parameter
idPflichtstring |
Request-Body application/json
titlestringdescriptionstringvoting_modestringmajoritystringpositioninteger
Antworten
200Der geänderte AntragGeneralMeetingMotion
Felder anzeigen (22)
meeting_idintegerballot_countintegerBisher über die App abgegebene Stimmzettel; wird vom Controller gesetzt, nie die Auswahl einer offenen Abstimmung.
idintegerPrimärschlüssel des Antrags. Interne ID.
positionintegerPosition des Antrags in der Tagesordnung.
titlestringTitel des Antrags.
descriptionstringText des Antrags.
voting_modestringAbstimmungsmodus, zum Beispiel offen oder geheim.
majoritystringErforderliche Mehrheit, um den Antrag anzunehmen, zum Beispiel einfach oder zwei Drittel.
statestringStatus des Antrags, zum Beispiel offen, in Abstimmung oder geschlossen.
opened_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geöffnet wurde.
closed_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geschlossen wurde.
manual_yesintegerVor Ort gezählte Stimmen (Handzeichen), beim Schließen zu den App-Stimmen addiert.
manual_nointegerAnzahl der manuellen Nein-Stimmen.
manual_abstainintegerAnzahl der manuellen Enthaltungen.
yes_countintegerEndgültige Zählungen (App + manuell), beim Abschließen gesetzt.
no_countintegerAnzahl der Nein-Stimmen.
abstain_countintegerAnzahl der Enthaltungen.
present_voting_countintegerBei Abschluss anwesende stimmberechtigte Personen; Grundlage einer ABSOLUTEN Mehrheit.
resultstringErgebnis der Abstimmung, zum Beispiel angenommen oder abgelehnt.
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
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"title": "Beispiel",
"description": "Text",
"voting_mode": "string",
"majority": "string",
"position": 1
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
title: 'Beispiel',
description: 'Text',
voting_mode: 'string',
majority: 'string',
position: 1
})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/42"
payload = {
"title": "Beispiel",
"description": "Text",
"voting_mode": "string",
"majority": "string",
"position": 1
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42', [
'body' => '{"title":"Beispiel","description":"Text","voting_mode":"string","majority":"string","position":1}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"title\":\"Beispiel\",\"description\":\"Text\",\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"title\":\"Beispiel\",\"description\":\"Text\",\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/42"
payload := strings.NewReader("{\"title\":\"Beispiel\",\"description\":\"Text\",\"voting_mode\":\"string\",\"majority\":\"string\",\"position\":1}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"title": "Beispiel",
"description": "Text",
"voting_mode": "string",
"majority": "string",
"position": 1
}),
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"description": "Text",
"meeting_id": 42,
"ballot_count": 1,
"position": 1,
"voting_mode": "string",
"majority": "string",
"state": "string",
"opened_at": "2026-10-15T09:30:00+02:00"
}Löscht einen Antrag.
DELETE/api/crm/general_meeting_motion/{id}
Pfad-Parameter
idPflichtstring |
Antworten
200Der gelöschte Antrag
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/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/crm/general_meeting_motion/42")
.delete(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/crm/general_meeting_motion/42"
req, _ := http.NewRequest("DELETE", 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/crm_general_meeting_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 CrmGeneralMeetingController.deleteMotion(42);
if (result.success) {
print(result.data);
}Die namentlichen Stimmen eines offenen (nicht geheimen) Antrags; ein geheimer Antrag liefert eine leere Liste.
GET/api/crm/general_meeting_motion/{id}/votes
Pfad-Parameter
idPflichtstring |
Antworten
200Liste von {choice, person_minimal}
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/votes \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/votes', 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/crm/general_meeting_motion/42/votes"
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/crm/general_meeting_motion/42/votes', [
'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/crm/general_meeting_motion/42/votes"),
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/crm/general_meeting_motion/42/votes")
.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/crm/general_meeting_motion/42/votes"
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/crm_general_meeting_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 CrmGeneralMeetingController.getVotes(42);
if (result.success) {
print(result.data);
}open (startet die Abstimmung; die Versammlung muss laufen), close (Body manual_yes, manual_no, manual_abstain: vor Ort gezählte Stimmen, werden zu den App-Stimmen addiert).
POST/api/crm/general_meeting_motion/{id}/{action}
Pfad-Parameter
idPflichtstring | |
actionPflichtstring |
Request-Body application/json
manual_yesintegermanual_nointegermanual_abstaininteger
Antworten
200Der Antrag nach der AktionGeneralMeetingMotion
Felder anzeigen (22)
meeting_idintegerballot_countintegerBisher über die App abgegebene Stimmzettel; wird vom Controller gesetzt, nie die Auswahl einer offenen Abstimmung.
idintegerPrimärschlüssel des Antrags. Interne ID.
positionintegerPosition des Antrags in der Tagesordnung.
titlestringTitel des Antrags.
descriptionstringText des Antrags.
voting_modestringAbstimmungsmodus, zum Beispiel offen oder geheim.
majoritystringErforderliche Mehrheit, um den Antrag anzunehmen, zum Beispiel einfach oder zwei Drittel.
statestringStatus des Antrags, zum Beispiel offen, in Abstimmung oder geschlossen.
opened_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geöffnet wurde.
closed_atstring (date-time)Zeitpunkt, zu dem die Abstimmung geschlossen wurde.
manual_yesintegerVor Ort gezählte Stimmen (Handzeichen), beim Schließen zu den App-Stimmen addiert.
manual_nointegerAnzahl der manuellen Nein-Stimmen.
manual_abstainintegerAnzahl der manuellen Enthaltungen.
yes_countintegerEndgültige Zählungen (App + manuell), beim Abschließen gesetzt.
no_countintegerAnzahl der Nein-Stimmen.
abstain_countintegerAnzahl der Enthaltungen.
present_voting_countintegerBei Abschluss anwesende stimmberechtigte Personen; Grundlage einer ABSOLUTEN Mehrheit.
resultstringErgebnis der Abstimmung, zum Beispiel angenommen oder abgelehnt.
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
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"manual_yes": 1,
"manual_no": 1,
"manual_abstain": 1
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({manual_yes: 1, manual_no: 1, manual_abstain: 1})
};
fetch('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/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/crm/general_meeting_motion/42/42"
payload = {
"manual_yes": 1,
"manual_no": 1,
"manual_abstain": 1
}
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/42', [
'body' => '{"manual_yes":1,"manual_no":1,"manual_abstain":1}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"manual_yes\":1,\"manual_no\":1,\"manual_abstain\":1}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"manual_yes\":1,\"manual_no\":1,\"manual_abstain\":1}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/42")
.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/crm/general_meeting_motion/42/42"
payload := strings.NewReader("{\"manual_yes\":1,\"manual_no\":1,\"manual_abstain\":1}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://eure-instanz.iw-erp.de/api/crm/general_meeting_motion/42/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"manual_yes": 1,
"manual_no": 1,
"manual_abstain": 1
}),
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"description": "Text",
"meeting_id": 42,
"ballot_count": 1,
"position": 1,
"voting_mode": "string",
"majority": "string",
"state": "string",
"opened_at": "2026-10-15T09:30:00+02:00"
}