SelfServiceMembership
Returns a public list of all SelfServiceMembershipStep
GET/api/cp/self_service_membership/public
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
orderinteger | |
namestring | |
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 public list of all SelfServiceMembershipSteparray<SelfServiceMembershipStep>
Show fields (7)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
namestringName of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/public \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/public', 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/cp/self_service_membership/public"
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/cp/self_service_membership/public', [
'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/cp/self_service_membership/public"),
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/cp/self_service_membership/public")
.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/cp/self_service_membership/public"
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/self_service_membership_step_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 SelfServiceMembershipStepController.getPublic();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"order": 1
}
]Returns a list of all SelfServiceMembershipStep
GET/api/cp/self_service_membership/step
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
orderinteger | |
namestring | |
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 all SelfServiceMembershipSteparray<SelfServiceMembershipStep2>
Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
Show fields (4)
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/step \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/step', 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/cp/self_service_membership/step"
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/cp/self_service_membership/step', [
'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/cp/self_service_membership/step"),
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/cp/self_service_membership/step")
.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/cp/self_service_membership/step"
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/self_service_membership_step_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 SelfServiceMembershipStepController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"deleted": true,
"order": 1
}
]Add a new SelfServiceMembershipStep
POST/api/cp/self_service_membership/step
Request body application/json
dataSelfServiceMembershipStep2Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
Responses
200Add a new SelfServiceMembershipStepSelfServiceMembershipStep2
Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
Show fields (4)
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/step \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
item_selection_required: true,
multi_selection_allowed: true,
only_if_no_memberships: true
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/step', 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/cp/self_service_membership/step"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": True,
"multi_selection_allowed": True,
"only_if_no_memberships": 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://your-instance.iw-erp.de/api/cp/self_service_membership/step', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","item_selection_required":true,"multi_selection_allowed":true,"only_if_no_memberships":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://your-instance.iw-erp.de/api/cp/self_service_membership/step"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/step")
.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://your-instance.iw-erp.de/api/cp/self_service_membership/step"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":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 with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_step_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_membership_step.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceMembershipStepController.post(SelfServiceMembershipStep.fromJson({
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"categories": [
{
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1
}
],
"deleted": true,
"order": 1
}Returns a single SelfServiceMembershipStep entry.
GET/api/cp/self_service_membership/step/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single SelfServiceMembershipStepSelfServiceMembershipStep2
Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
Show fields (4)
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/step/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/cp/self_service_membership/step/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/cp/self_service_membership/step/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/cp/self_service_membership/step/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/cp/self_service_membership/step/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/cp/self_service_membership/step/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/cp/self_service_membership/step/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/self_service_membership_step_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 SelfServiceMembershipStepController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"categories": [
{
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1
}
],
"deleted": true,
"order": 1
}Updates an existing SelfServiceMembershipStep entry.
PUT/api/cp/self_service_membership/step/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceMembershipStep2Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
Responses
200Update single SelfServiceMembershipStepSelfServiceMembershipStep2
Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
Show fields (4)
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
item_selection_required: true,
multi_selection_allowed: true,
only_if_no_memberships: true
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/step/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/cp/self_service_membership/step/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": True,
"multi_selection_allowed": True,
"only_if_no_memberships": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","item_selection_required":true,"multi_selection_allowed":true,"only_if_no_memberships":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/step/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://your-instance.iw-erp.de/api/cp/self_service_membership/step/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_step_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_membership_step.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceMembershipStepController.put(SelfServiceMembershipStep.fromJson({
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"categories": [
{
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1
}
],
"deleted": true,
"order": 1
}Updates an existing SelfServiceMembershipStep entry.
PATCH/api/cp/self_service_membership/step/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceMembershipStep2Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
Responses
200Update single SelfServiceMembershipStepSelfServiceMembershipStep2
Show fields (9)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
categoriesarray<SelfServiceMembershipCategory2>Categories offered in the step.
Show fields (4)
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
item_selection_required: true,
multi_selection_allowed: true,
only_if_no_memberships: true
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/step/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/cp/self_service_membership/step/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": True,
"multi_selection_allowed": True,
"only_if_no_memberships": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","item_selection_required":true,"multi_selection_allowed":true,"only_if_no_memberships":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/step/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://your-instance.iw-erp.de/api/cp/self_service_membership/step/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/cp/self_service_membership/step/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"categories": [
{
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1
}
],
"deleted": true,
"order": 1
}Returns a list of all SelfServiceMembershipCategory
GET/api/cp/self_service_membership/category
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
orderinteger | |
namestring | |
unifiedCategorystring | |
membershipStepstring | |
minAgestring | The lowest age (in years) a person may have to use this entry - null means no lower limit |
maxAgestring | The highest age (in years) a person may have to use this entry - null means no upper limit |
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 all SelfServiceMembershipCategoryarray<SelfServiceMembershipCategory>
Show fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
Show fields (8)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
Show fields (12)
idintegerPrimary key of the membership item. Internal ID.
required_itemSelfServiceMembershipItem2Membership item that is required before this one.
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/category \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/category', 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/cp/self_service_membership/category"
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/cp/self_service_membership/category', [
'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/cp/self_service_membership/category"),
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/cp/self_service_membership/category")
.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/cp/self_service_membership/category"
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/self_service_membership_category_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 SelfServiceMembershipCategoryController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"deleted": true,
"order": 1
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
},
"order": 1,
"min_age": 1,
"max_age": 1
}
]Add a new SelfServiceMembershipCategory
POST/api/cp/self_service_membership/category
Request body application/json
dataSelfServiceMembershipCategoryShow fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Add a new SelfServiceMembershipCategorySelfServiceMembershipCategory
Show fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
Show fields (8)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
Show fields (12)
idintegerPrimary key of the membership item. Internal ID.
required_itemSelfServiceMembershipItem2Membership item that is required before this one.
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/category \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
membership_step: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
item_selection_required: true,
multi_selection_allowed: true,
only_if_no_memberships: true
},
deleted: true,
unified_category: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
category_type: 'string',
deleted: true
}
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/category', 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/cp/self_service_membership/category"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": True,
"multi_selection_allowed": True,
"only_if_no_memberships": True
},
"deleted": True,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": True
}
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/category', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","membership_step":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","item_selection_required":true,"multi_selection_allowed":true,"only_if_no_memberships":true},"deleted":true,"unified_category":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","category_type":"string","deleted":true}}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/category"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/category")
.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://your-instance.iw-erp.de/api/cp/self_service_membership/category"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_category_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_membership_category.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceMembershipCategoryController.post(SelfServiceMembershipCategory.fromJson({
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"deleted": true,
"order": 1
},
"items": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
},
"order": 1,
"min_age": 1,
"max_age": 1
}Returns a single SelfServiceMembershipCategory entry.
GET/api/cp/self_service_membership/category/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single SelfServiceMembershipCategorySelfServiceMembershipCategory
Show fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
Show fields (8)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
Show fields (12)
idintegerPrimary key of the membership item. Internal ID.
required_itemSelfServiceMembershipItem2Membership item that is required before this one.
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/category/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/cp/self_service_membership/category/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/cp/self_service_membership/category/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/cp/self_service_membership/category/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/cp/self_service_membership/category/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/cp/self_service_membership/category/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/cp/self_service_membership/category/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/self_service_membership_category_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 SelfServiceMembershipCategoryController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"deleted": true,
"order": 1
},
"items": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
},
"order": 1,
"min_age": 1,
"max_age": 1
}Updates an existing SelfServiceMembershipCategory entry.
PUT/api/cp/self_service_membership/category/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceMembershipCategoryShow fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Update single SelfServiceMembershipCategorySelfServiceMembershipCategory
Show fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
Show fields (8)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
Show fields (12)
idintegerPrimary key of the membership item. Internal ID.
required_itemSelfServiceMembershipItem2Membership item that is required before this one.
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request PUT \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
membership_step: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
item_selection_required: true,
multi_selection_allowed: true,
only_if_no_memberships: true
},
deleted: true,
unified_category: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
category_type: 'string',
deleted: true
}
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/category/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/cp/self_service_membership/category/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": True,
"multi_selection_allowed": True,
"only_if_no_memberships": True
},
"deleted": True,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": True
}
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","membership_step":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","item_selection_required":true,"multi_selection_allowed":true,"only_if_no_memberships":true},"deleted":true,"unified_category":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","category_type":"string","deleted":true}}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/category/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://your-instance.iw-erp.de/api/cp/self_service_membership/category/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_category_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_membership_category.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceMembershipCategoryController.put(SelfServiceMembershipCategory.fromJson({
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"deleted": true,
"order": 1
},
"items": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
},
"order": 1,
"min_age": 1,
"max_age": 1
}Updates an existing SelfServiceMembershipCategory entry.
PATCH/api/cp/self_service_membership/category/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceMembershipCategoryShow fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Update single SelfServiceMembershipCategorySelfServiceMembershipCategory
Show fields (10)
idintegerPrimary key of the membership category. Internal ID.
membership_stepSelfServiceMembershipStep3Membership step the category belongs to.
Show fields (8)
idintegerPrimary key of the step. Internal ID.
item_selection_requiredbooleanWhether an item must be selected in this step.
multi_selection_allowedbooleanWhether several items may be selected.
only_if_no_membershipsbooleanWhether the step is shown only without existing memberships.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
itemsarray<SelfServiceMembershipItem2>Membership items in the category.
Show fields (12)
idintegerPrimary key of the membership item. Internal ID.
required_itemSelfServiceMembershipItem2Membership item that is required before this one.
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
membership_step: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
item_selection_required: true,
multi_selection_allowed: true,
only_if_no_memberships: true
},
deleted: true,
unified_category: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
category_type: 'string',
deleted: true
}
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/category/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/cp/self_service_membership/category/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": True,
"multi_selection_allowed": True,
"only_if_no_memberships": True
},
"deleted": True,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": True
}
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","membership_step":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","item_selection_required":true,"multi_selection_allowed":true,"only_if_no_memberships":true},"deleted":true,"unified_category":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","category_type":"string","deleted":true}}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/category/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://your-instance.iw-erp.de/api/cp/self_service_membership/category/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"membership_step\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"item_selection_required\":true,\"multi_selection_allowed\":true,\"only_if_no_memberships\":true},\"deleted\":true,\"unified_category\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"category_type\":\"string\",\"deleted\":true}}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/cp/self_service_membership/category/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true
},
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"membership_step": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"item_selection_required": true,
"multi_selection_allowed": true,
"only_if_no_memberships": true,
"deleted": true,
"order": 1
},
"items": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
},
"order": 1,
"min_age": 1,
"max_age": 1
}Returns a list of all MembershipFeeRuleSet
GET/api/cp/membership_fee_rule_set
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
namestring | |
activeboolean | Only active rule sets are used |
validFromstring | The rule set applies from this date on (null: always) |
adultAgestring | From this age on a person counts as adult (role "adult"), younger as child |
createdstring | |
updatedstring | |
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 all MembershipFeeRuleSetarray<MembershipFeeRuleSet>
Show fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set', 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/cp/membership_fee_rule_set"
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/cp/membership_fee_rule_set', [
'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/cp/membership_fee_rule_set"),
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/cp/membership_fee_rule_set")
.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/cp/membership_fee_rule_set"
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/membership_fee_rule_set_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 MembershipFeeRuleSetController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}
]Add a new MembershipFeeRuleSet
POST/api/cp/membership_fee_rule_set
Request body application/json
dataMembershipFeeRuleSetShow fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
Responses
200Add a new MembershipFeeRuleSetMembershipFeeRuleSet
Show fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
rule_count: 1,
active: true,
valid_from: '2026-10-15T09:30:00+02:00',
adult_age: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set', 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/cp/membership_fee_rule_set"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": True,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set', [
'body' => '{"data":{"id":42,"name":"Beispiel","rule_count":1,"active":true,"valid_from":"2026-10-15T09:30:00+02:00","adult_age":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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set")
.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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":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 with the iw_erp_api package
import 'package:iw_erp_api/clients/membership_fee_rule_set_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/membership_fee_rule_set.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MembershipFeeRuleSetController.post(MembershipFeeRuleSet.fromJson({
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Check rules without saving: errors, warnings and the rules with normalized references
POST/api/cp/membership_fee_rule_set/validate
Request body application/json
rulesarray<object>
Responses
200Check resultobject
Show fields (3)
rulesarray<object>errorsarray<string>warningsarray<string>
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/validate \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '{"rules":[{}]}'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({rules: [{}]})
};
fetch('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/validate', 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/cp/membership_fee_rule_set/validate"
payload = { "rules": [{}] }
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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/validate', [
'body' => '{"rules":[{}]}',
'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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/validate"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"rules\":[{}]}")
{
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, "{\"rules\":[{}]}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/validate")
.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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/validate"
payload := strings.NewReader("{\"rules\":[{}]}")
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/membership_fee_rule_set_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 MembershipFeeRuleSetController.validate(dynamic.fromJson({
"rules": [
{}
]
}));
if (result.success) {
print(result.data);
}{
"rules": [
{}
],
"errors": [
"string"
],
"warnings": [
"string"
]
}Returns a single MembershipFeeRuleSet entry.
GET/api/cp/membership_fee_rule_set/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single MembershipFeeRuleSetMembershipFeeRuleSet
Show fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/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/membership_fee_rule_set_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 MembershipFeeRuleSetController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Updates an existing MembershipFeeRuleSet entry.
PUT/api/cp/membership_fee_rule_set/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataMembershipFeeRuleSetShow fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
Responses
200Update single MembershipFeeRuleSetMembershipFeeRuleSet
Show fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request PUT \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
rule_count: 1,
active: true,
valid_from: '2026-10-15T09:30:00+02:00',
adult_age: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": True,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","rule_count":1,"active":true,"valid_from":"2026-10-15T09:30:00+02:00","adult_age":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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":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 with the iw_erp_api package
import 'package:iw_erp_api/clients/membership_fee_rule_set_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/membership_fee_rule_set.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MembershipFeeRuleSetController.put(MembershipFeeRuleSet.fromJson({
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Updates an existing MembershipFeeRuleSet entry.
PATCH/api/cp/membership_fee_rule_set/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataMembershipFeeRuleSetShow fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
Responses
200Update single MembershipFeeRuleSetMembershipFeeRuleSet
Show fields (9)
rule_countintegerNumber of rules (for lists)
idintegerPrimary key of the fee rule set. Internal ID.
activebooleanOnly active rule sets are used
valid_fromstring (date-time)The rule set applies from this date on (null: always)
adult_ageintegerFrom this age on a person counts as adult (role "adult"), younger as child
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
rule_count: 1,
active: true,
valid_from: '2026-10-15T09:30:00+02:00',
adult_age: 1
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/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/cp/membership_fee_rule_set/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": True,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","rule_count":1,"active":true,"valid_from":"2026-10-15T09:30:00+02:00","adult_age":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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":1}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":1}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"rule_count\":1,\"active\":true,\"valid_from\":\"2026-10-15T09:30:00+02:00\",\"adult_age\":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 with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"rule_count": 1,
"active": true,
"valid_from": "2026-10-15T09:30:00+02:00",
"adult_age": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Calculate the fees of a sample household with a rule set: per person and base membership / selected item the matching rule, product, class and amount
POST/api/cp/membership_fee_rule_set/{identifier}/evaluate
Path parameters
identifierrequiredstring |
Request body application/json
datestringY-m-d, default today
personsarray<object>In household order: the first adult is the main member
Show fields (5)
labelstringbirthdaystringageintegerdiscountReasonintegeritemsarray<integer>
Responses
200Fees per personobject
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42/evaluate \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"date": "2026-10-15T09:30:00+02:00",
"persons": [
{
"label": "string",
"birthday": "string",
"age": 1,
"discountReason": 1
}
]
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
date: '2026-10-15T09:30:00+02:00',
persons: [{label: 'string', birthday: 'string', age: 1, discountReason: 1}]
})
};
fetch('https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42/evaluate', 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/cp/membership_fee_rule_set/42/evaluate"
payload = {
"date": "2026-10-15T09:30:00+02:00",
"persons": [
{
"label": "string",
"birthday": "string",
"age": 1,
"discountReason": 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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42/evaluate', [
'body' => '{"date":"2026-10-15T09:30:00+02:00","persons":[{"label":"string","birthday":"string","age":1,"discountReason":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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42/evaluate"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"date\":\"2026-10-15T09:30:00+02:00\",\"persons\":[{\"label\":\"string\",\"birthday\":\"string\",\"age\":1,\"discountReason\":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, "{\"date\":\"2026-10-15T09:30:00+02:00\",\"persons\":[{\"label\":\"string\",\"birthday\":\"string\",\"age\":1,\"discountReason\":1}]}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42/evaluate")
.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://your-instance.iw-erp.de/api/cp/membership_fee_rule_set/42/evaluate"
payload := strings.NewReader("{\"date\":\"2026-10-15T09:30:00+02:00\",\"persons\":[{\"label\":\"string\",\"birthday\":\"string\",\"age\":1,\"discountReason\":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 with the iw_erp_api package
import 'package:iw_erp_api/clients/membership_fee_rule_set_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 MembershipFeeRuleSetController.evaluate('42', List<MembershipFeeSamplePerson>.fromJson({
"date": "2026-10-15T09:30:00+02:00",
"persons": [
{
"label": "string",
"birthday": "string",
"age": 1,
"discountReason": 1
}
]
}));
if (result.success) {
print(result.data);
}{}Returns a list of all SelfServiceDiscountReason
GET/api/cp/self_service_membership/discount_reason
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
orderinteger | |
namestring | |
minAgestring | The lowest age (in years) a person may have to use this entry - null means no lower limit |
maxAgestring | The highest age (in years) a person may have to use this entry - null means no upper limit |
requireAttachmentboolean | The application needs a proof (upload) for this reason |
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 all SelfServiceDiscountReasonarray<SelfServiceDiscountReason>
Show fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason', 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/cp/self_service_membership/discount_reason"
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/cp/self_service_membership/discount_reason', [
'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/cp/self_service_membership/discount_reason"),
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/cp/self_service_membership/discount_reason")
.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/cp/self_service_membership/discount_reason"
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/self_service_discount_reason_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 SelfServiceDiscountReasonController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true,
"proof_valid_months": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}
]Add a new SelfServiceDiscountReason
POST/api/cp/self_service_membership/discount_reason
Request body application/json
dataSelfServiceDiscountReasonShow fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Add a new SelfServiceDiscountReasonSelfServiceDiscountReason
Show fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
require_attachment: true,
attachment_label: 'string',
attachment_hint: 'string',
proof_valid_until_end_of_year: true
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason', 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/cp/self_service_membership/discount_reason"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"require_attachment": True,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": 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://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason', [
'body' => '{"data":{"id":42,"name":"Beispiel","require_attachment":true,"attachment_label":"string","attachment_hint":"string","proof_valid_until_end_of_year":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://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason")
.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://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":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 with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_discount_reason_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_discount_reason.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceDiscountReasonController.post(SelfServiceDiscountReason.fromJson({
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true,
"proof_valid_months": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Returns a single SelfServiceDiscountReason entry.
GET/api/cp/self_service_membership/discount_reason/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single SelfServiceDiscountReasonSelfServiceDiscountReason
Show fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/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/self_service_discount_reason_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 SelfServiceDiscountReasonController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true,
"proof_valid_months": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Updates an existing SelfServiceDiscountReason entry.
PUT/api/cp/self_service_membership/discount_reason/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceDiscountReasonShow fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Update single SelfServiceDiscountReasonSelfServiceDiscountReason
Show fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request PUT \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
require_attachment: true,
attachment_label: 'string',
attachment_hint: 'string',
proof_valid_until_end_of_year: true
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"require_attachment": True,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","require_attachment":true,"attachment_label":"string","attachment_hint":"string","proof_valid_until_end_of_year":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/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://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_discount_reason_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_discount_reason.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceDiscountReasonController.put(SelfServiceDiscountReason.fromJson({
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true,
"proof_valid_months": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Updates an existing SelfServiceDiscountReason entry.
PATCH/api/cp/self_service_membership/discount_reason/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceDiscountReasonShow fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Update single SelfServiceDiscountReasonSelfServiceDiscountReason
Show fields (13)
idintegerPrimary key of the discount reason. Internal ID.
require_attachmentbooleanThe application needs a proof (upload) for this reason
attachment_labelstringLabel of the proof, e.g. "Immatrikulationsbescheinigung" - empty means "Nachweis der Ermäßigung"
attachment_hintstringHint shown below the proof upload
proof_valid_until_end_of_yearbooleanThe proof is valid until the 31.12. of the year the application is sent in
proof_valid_monthsintegerThe proof is valid for this many months from the application - null / 0 means no limit
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
require_attachment: true,
attachment_label: 'string',
attachment_hint: 'string',
proof_valid_until_end_of_year: true
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/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/cp/self_service_membership/discount_reason/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"require_attachment": True,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","require_attachment":true,"attachment_label":"string","attachment_hint":"string","proof_valid_until_end_of_year":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/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://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"require_attachment\":true,\"attachment_label\":\"string\",\"attachment_hint\":\"string\",\"proof_valid_until_end_of_year\":true}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/cp/self_service_membership/discount_reason/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"proof_valid_until_end_of_year": true,
"proof_valid_months": 1,
"deleted": true,
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Rules of the membership application
GET/api/cp/self_service_membership/application_config
Responses
200Rules of the membership applicationobject
Show fields (13)
entry_date_enabledbooleanDesired entry date offered (club mode)
entry_date_first_of_monthbooleanentry_date_max_months_aheadinteger0 = unlimited
entry_date_earlieststring (date)entry_date_lateststring (date)proofs_enabledbooleandiscount_reasons_enabledbooleanitem_coverage_enabledbooleandiscount_reasonsarray<object>fee_rules_enabledbooleanThe fee rules decide the membership class
fee_rules_class_step_idintegerWizard step of the classes, hidden in the app
fee_rules_price_previewbooleanShow the expected fee (price_preview)
fee_rules_preview_hintstring
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/application_config \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/application_config', 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/cp/self_service_membership/application_config"
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/cp/self_service_membership/application_config', [
'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/cp/self_service_membership/application_config"),
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/cp/self_service_membership/application_config")
.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/cp/self_service_membership/application_config"
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/self_service_membership_application_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 SelfServiceMembershipApplicationController.getConfig();
if (result.success) {
print(result.data);
}{
"entry_date_enabled": true,
"entry_date_first_of_month": true,
"entry_date_max_months_ahead": 1,
"entry_date_earliest": "2026-10-15",
"entry_date_latest": "2026-10-15",
"proofs_enabled": true,
"discount_reasons_enabled": true,
"item_coverage_enabled": true,
"discount_reasons": [
{}
],
"fee_rules_enabled": true
}Membership class and expected fee of an application in progress, from the fee rule set that applies at the desired entry date (setting iw_self_service_membership_fee_rules_enabled). The household of the selected account joins the evaluation (setting iw_self_service_membership_fee_rules_household).
POST/api/cp/self_service_membership/price_preview
Request body application/json
personIdintegerExisting person of the account the application is for
birthdaystring (date)Birthday of a new person
discountReasonIdintegeritemsarray<integer>Selected wizard items
desiredEntryDatestring (date)
Responses
200Class and feeobject
Show fields (6)
availablebooleanfalse: no rule set applies (message)
classstringclass_itemobjectlinesarray<object>total_monthlynumbertotal_oncenumber
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/price_preview \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"personId": 42,
"birthday": "2026-10-15",
"discountReasonId": 42,
"items": [
1
],
"desiredEntryDate": "2026-10-15"
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
personId: 42,
birthday: '2026-10-15',
discountReasonId: 42,
items: [1],
desiredEntryDate: '2026-10-15'
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/price_preview', 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/cp/self_service_membership/price_preview"
payload = {
"personId": 42,
"birthday": "2026-10-15",
"discountReasonId": 42,
"items": [1],
"desiredEntryDate": "2026-10-15"
}
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://your-instance.iw-erp.de/api/cp/self_service_membership/price_preview', [
'body' => '{"personId":42,"birthday":"2026-10-15","discountReasonId":42,"items":[1],"desiredEntryDate":"2026-10-15"}',
'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://your-instance.iw-erp.de/api/cp/self_service_membership/price_preview"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"personId\":42,\"birthday\":\"2026-10-15\",\"discountReasonId\":42,\"items\":[1],\"desiredEntryDate\":\"2026-10-15\"}")
{
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, "{\"personId\":42,\"birthday\":\"2026-10-15\",\"discountReasonId\":42,\"items\":[1],\"desiredEntryDate\":\"2026-10-15\"}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/price_preview")
.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://your-instance.iw-erp.de/api/cp/self_service_membership/price_preview"
payload := strings.NewReader("{\"personId\":42,\"birthday\":\"2026-10-15\",\"discountReasonId\":42,\"items\":[1],\"desiredEntryDate\":\"2026-10-15\"}")
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_application_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 SelfServiceMembershipApplicationController.pricePreview();
if (result.success) {
print(result.data);
}{
"available": true,
"class": "string",
"lines": [
{}
],
"total_monthly": 1.5,
"total_once": 1.5
}Returns a list of all SelfServiceMembershipItem
GET/api/cp/self_service_membership/item
Query parameters
idstring | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
orderinteger | |
namestring | |
unifiedCategorystring | |
minAgestring | The lowest age (in years) a person may have to use this entry - null means no lower limit |
maxAgestring | The highest age (in years) a person may have to use this entry - null means no upper limit |
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 all SelfServiceMembershipItemarray<SelfServiceMembershipItem>
Show fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
Show fields (23)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
billing_typeBillingItemType6Billing item type.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
ucatsarray<UnifiedCategory5>Unified categories of the entity.
orderintegerPosition of the entity in the order.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
Show fields (8)
idintegerPrimary key of the membership category. Internal ID.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/item \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/item', 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/cp/self_service_membership/item"
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/cp/self_service_membership/item', [
'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/cp/self_service_membership/item"),
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/cp/self_service_membership/item")
.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/cp/self_service_membership/item"
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/self_service_membership_item_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 SelfServiceMembershipItemController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"require_billing": true,
"deleted": true,
"unified_category": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"category_type": "string",
"deleted": true
}
}
]Add a new SelfServiceMembershipItem
POST/api/cp/self_service_membership/item
Request body application/json
dataSelfServiceMembershipItemShow fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Add a new SelfServiceMembershipItemSelfServiceMembershipItem
Show fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
Show fields (23)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
billing_typeBillingItemType6Billing item type.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
ucatsarray<UnifiedCategory5>Unified categories of the entity.
orderintegerPosition of the entity in the order.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
Show fields (8)
idintegerPrimary key of the membership category. Internal ID.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request POST \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/item \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
disable_for_flat_list: true,
require_attachment: true,
attachment_label: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/item', 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/cp/self_service_membership/item"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": True,
"require_attachment": True,
"attachment_label": "string"
} }
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://your-instance.iw-erp.de/api/cp/self_service_membership/item', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","disable_for_flat_list":true,"require_attachment":true,"attachment_label":"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.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/cp/self_service_membership/item"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"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, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/item")
.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://your-instance.iw-erp.de/api/cp/self_service_membership/item"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"string\"}}")
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 with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_membership_item.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceMembershipItemController.post(SelfServiceMembershipItem.fromJson({
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"products": [
{
"name": "Beispiel",
"description": "Text",
"id": 42,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"deleted": true,
"sub_self_service_add": true,
"sub_self_service_add_fixed_price": 49.9,
"price_is_brutto": true,
"sku": "string"
}
],
"categories": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"require_billing": true
}Returns a single SelfServiceMembershipItem entry.
GET/api/cp/self_service_membership/item/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single SelfServiceMembershipItemSelfServiceMembershipItem
Show fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
Show fields (23)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
billing_typeBillingItemType6Billing item type.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
ucatsarray<UnifiedCategory5>Unified categories of the entity.
orderintegerPosition of the entity in the order.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
Show fields (8)
idintegerPrimary key of the membership category. Internal ID.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request GET \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/item/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/cp/self_service_membership/item/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/cp/self_service_membership/item/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/cp/self_service_membership/item/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/cp/self_service_membership/item/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/cp/self_service_membership/item/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/cp/self_service_membership/item/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/self_service_membership_item_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 SelfServiceMembershipItemController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"products": [
{
"name": "Beispiel",
"description": "Text",
"id": 42,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"deleted": true,
"sub_self_service_add": true,
"sub_self_service_add_fixed_price": 49.9,
"price_is_brutto": true,
"sku": "string"
}
],
"categories": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"require_billing": true
}Updates an existing SelfServiceMembershipItem entry.
PUT/api/cp/self_service_membership/item/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceMembershipItemShow fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Update single SelfServiceMembershipItemSelfServiceMembershipItem
Show fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
Show fields (23)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
billing_typeBillingItemType6Billing item type.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
ucatsarray<UnifiedCategory5>Unified categories of the entity.
orderintegerPosition of the entity in the order.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
Show fields (8)
idintegerPrimary key of the membership category. Internal ID.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request PUT \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/item/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
disable_for_flat_list: true,
require_attachment: true,
attachment_label: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/item/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/cp/self_service_membership/item/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": True,
"require_attachment": True,
"attachment_label": "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://your-instance.iw-erp.de/api/cp/self_service_membership/item/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","disable_for_flat_list":true,"require_attachment":true,"attachment_label":"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://your-instance.iw-erp.de/api/cp/self_service_membership/item/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"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, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/item/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://your-instance.iw-erp.de/api/cp/self_service_membership/item/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"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 with the iw_erp_api package
import 'package:iw_erp_api/clients/self_service_membership_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/self_service_membership_item.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await SelfServiceMembershipItemController.put(SelfServiceMembershipItem.fromJson({
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"products": [
{
"name": "Beispiel",
"description": "Text",
"id": 42,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"deleted": true,
"sub_self_service_add": true,
"sub_self_service_add_fixed_price": 49.9,
"price_is_brutto": true,
"sku": "string"
}
],
"categories": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"require_billing": true
}Updates an existing SelfServiceMembershipItem entry.
PATCH/api/cp/self_service_membership/item/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataSelfServiceMembershipItemShow fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
Responses
200Update single SelfServiceMembershipItemSelfServiceMembershipItem
Show fields (17)
idintegerPrimary key of the membership item. Internal ID.
productsarray<PredefinedBillingItem4>Billing items of the membership item.
Show fields (23)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
billing_typeBillingItemType6Billing item type.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
is_freebooleanThe item is free of charge.
is_passivebooleanThe item is passive and cannot be selected anymore.
is_globalbooleanThe item is available for all companies.
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
ucatsarray<UnifiedCategory5>Unified categories of the entity.
orderintegerPosition of the entity in the order.
categoriesarray<SelfServiceMembershipCategory3>Categories of the membership item.
Show fields (8)
idintegerPrimary key of the membership category. Internal ID.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
required_itemSelfServiceMembershipItemMembership item that is required before this one.
disable_for_flat_listbooleanThis property is used to skip this item in the flat list of items. e.g. used on the website plugin
require_attachmentbooleanThis property is used to require / recommend an attachment upload. With the setting iw_self_service_membership_proofs_enabled the membership application needs a proof for this item.
attachment_labelstringLabel of the proof the application asks for, e.g. "Ärztliche Verordnung" - empty means the item name
attachment_hintstringHint shown below the proof upload, e.g. which documents are accepted
covered_itemsarray<SelfServiceMembershipItem>Items this item already includes (e.g. the studio covers yoga). With the setting iw_self_service_membership_item_coverage_enabled they are hidden in the same application.
require_billingbooleanThis property is used to require billing for this item
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
unified_categoryUnifiedCategory5Show fields (5)
idintegerPrimary key of the unified category. Internal ID.
category_typestringType of the category, for example course or membership.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
image_urlstringURL of the image of the entity.
orderintegerPosition of the entity in the order.
min_ageintegerThe lowest age (in years) a person may have to use this entry - null means no lower limit
max_ageintegerThe highest age (in years) a person may have to use this entry - null means no upper limit
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/cp/self_service_membership/item/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
disable_for_flat_list: true,
require_attachment: true,
attachment_label: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/cp/self_service_membership/item/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/cp/self_service_membership/item/42"
payload = { "data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": True,
"require_attachment": True,
"attachment_label": "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://your-instance.iw-erp.de/api/cp/self_service_membership/item/42', [
'body' => '{"data":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","disable_for_flat_list":true,"require_attachment":true,"attachment_label":"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://your-instance.iw-erp.de/api/cp/self_service_membership/item/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"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, "{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/cp/self_service_membership/item/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://your-instance.iw-erp.de/api/cp/self_service_membership/item/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"disable_for_flat_list\":true,\"require_attachment\":true,\"attachment_label\":\"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 with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/cp/self_service_membership/item/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string"
}
}),
);
print(response.body);{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"products": [
{
"name": "Beispiel",
"description": "Text",
"id": 42,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"deleted": true,
"sub_self_service_add": true,
"sub_self_service_add_fixed_price": 49.9,
"price_is_brutto": true,
"sku": "string"
}
],
"categories": [
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"deleted": true,
"order": 1,
"min_age": 1,
"max_age": 1
}
],
"disable_for_flat_list": true,
"require_attachment": true,
"attachment_label": "string",
"attachment_hint": "string",
"require_billing": true
}