Webhooks
Returns a list of webhooks
GET/api/dw/webhook
Query parameters
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
referenceClassNamestring | |
referenceIdsstring | |
databaseActionstring | |
notificationTypestring | |
notificationUrlstring | |
requestTimeoutstring | |
includeWritePermissionboolean | |
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 webhooksarray<RegisteredWebhook>
Show fields (13)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/dw/webhook \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/dw/webhook', 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/dw/webhook"
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/dw/webhook', [
'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/dw/webhook"),
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/dw/webhook")
.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/dw/webhook"
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/data_warehouse_registered_webhook_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 DataWarehouseRegisteredWebhookController.getAll();
if (result.success) {
print(result.data);
}[
{
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"request_timeout": 1,
"notification_value_path": "string",
"include_write_permission": true,
"debug_mode_until": "2026-10-15T09:30:00+02:00"
}
]Add a new webhook
POST/api/dw/webhook
Request body application/json
dataRegisteredWebhook2Show fields (11)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
notification_client_idstringClient ID sent with the webhook request.
notification_client_tokenstringClient token sent with the webhook request.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Add a new webhookRegisteredWebhook
Show fields (13)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/dw/webhook \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
reference_class_name: 'Beispiel',
notification_url: 'https://vynst.de',
reference_ids: 'string',
database_action: 'string',
notification_type: 'string',
notification_client_id: '42'
}
})
};
fetch('https://your-instance.iw-erp.de/api/dw/webhook', 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/dw/webhook"
payload = { "data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
} }
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/dw/webhook', [
'body' => '{"data":{"reference_class_name":"Beispiel","notification_url":"https://vynst.de","reference_ids":"string","database_action":"string","notification_type":"string","notification_client_id":"42"}}',
'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/dw/webhook"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}")
{
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\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/dw/webhook")
.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/dw/webhook"
payload := strings.NewReader("{\"data\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}")
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/data_warehouse_registered_webhook_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/data_warehouse_registered_webhook.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await DataWarehouseRegisteredWebhookController.post(DataWarehouseRegisteredWebhook.fromJson({
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
}));
if (result.success) {
print(result.data);
}{
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"request_timeout": 1,
"notification_value_path": "string",
"include_write_permission": true,
"debug_mode_until": "2026-10-15T09:30:00+02:00"
}Return a single webhook with the given id
GET/api/dw/webhook/{id}
Path parameters
idrequiredstring |
Responses
200Return a single webhook with the given idRegisteredWebhook
Show fields (13)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/dw/webhook/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/dw/webhook/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/dw/webhook/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/dw/webhook/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/dw/webhook/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/dw/webhook/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/dw/webhook/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/data_warehouse_registered_webhook_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 DataWarehouseRegisteredWebhookController.get('42');
if (result.success) {
print(result.data);
}{
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"request_timeout": 1,
"notification_value_path": "string",
"include_write_permission": true,
"debug_mode_until": "2026-10-15T09:30:00+02:00"
}Update a single webhook with the given id
PUT/api/dw/webhook/{id}
Path parameters
idrequiredstring |
Request body application/json
dataRegisteredWebhook2Show fields (11)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
notification_client_idstringClient ID sent with the webhook request.
notification_client_tokenstringClient token sent with the webhook request.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update a single webhook with the given idRegisteredWebhook
Show fields (13)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PUT \
--url https://your-instance.iw-erp.de/api/dw/webhook/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
reference_class_name: 'Beispiel',
notification_url: 'https://vynst.de',
reference_ids: 'string',
database_action: 'string',
notification_type: 'string',
notification_client_id: '42'
}
})
};
fetch('https://your-instance.iw-erp.de/api/dw/webhook/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/dw/webhook/42"
payload = { "data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
} }
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/dw/webhook/42', [
'body' => '{"data":{"reference_class_name":"Beispiel","notification_url":"https://vynst.de","reference_ids":"string","database_action":"string","notification_type":"string","notification_client_id":"42"}}',
'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/dw/webhook/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}")
{
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\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/dw/webhook/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/dw/webhook/42"
payload := strings.NewReader("{\"data\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}")
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/data_warehouse_registered_webhook_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/data_warehouse_registered_webhook.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await DataWarehouseRegisteredWebhookController.put(DataWarehouseRegisteredWebhook.fromJson({
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
}));
if (result.success) {
print(result.data);
}{
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"request_timeout": 1,
"notification_value_path": "string",
"include_write_permission": true,
"debug_mode_until": "2026-10-15T09:30:00+02:00"
}Update a single webhook with the given id
PATCH/api/dw/webhook/{id}
Path parameters
idrequiredstring |
Request body application/json
dataRegisteredWebhook2Show fields (11)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
notification_client_idstringClient ID sent with the webhook request.
notification_client_tokenstringClient token sent with the webhook request.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update a single webhook with the given idRegisteredWebhook
Show fields (13)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
notification_urlstringURL the webhook sends its request to.
request_timeoutintegerTimeout of the webhook request in seconds.
notification_value_pathstringPath of the value sent in the webhook request.
include_write_permissionbooleanWhether the write permission is included in the request.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/dw/webhook/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
reference_class_name: 'Beispiel',
notification_url: 'https://vynst.de',
reference_ids: 'string',
database_action: 'string',
notification_type: 'string',
notification_client_id: '42'
}
})
};
fetch('https://your-instance.iw-erp.de/api/dw/webhook/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/dw/webhook/42"
payload = { "data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
} }
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/dw/webhook/42', [
'body' => '{"data":{"reference_class_name":"Beispiel","notification_url":"https://vynst.de","reference_ids":"string","database_action":"string","notification_type":"string","notification_client_id":"42"}}',
'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/dw/webhook/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}")
{
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\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/dw/webhook/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/dw/webhook/42"
payload := strings.NewReader("{\"data\":{\"reference_class_name\":\"Beispiel\",\"notification_url\":\"https://vynst.de\",\"reference_ids\":\"string\",\"database_action\":\"string\",\"notification_type\":\"string\",\"notification_client_id\":\"42\"}}")
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/dw/webhook/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"notification_client_id": "42"
}
}),
);
print(response.body);{
"reference_class_name": "Beispiel",
"notification_url": "https://vynst.de",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"request_timeout": 1,
"notification_value_path": "string",
"include_write_permission": true,
"debug_mode_until": "2026-10-15T09:30:00+02:00"
}Switch the debug mode of a single webhook on or off
POST/api/dw/webhook/{id}/debug_mode
While debug mode is on, every execution of this webhook writes a WebhookLog and pushes it to the returned MQTT topic. The window is capped at RegisteredWebhook::DEBUG_MODE_MAX_SECONDS and expires on its own — a client that never sends the "off" call cannot leave it running.
Path parameters
idrequiredstring |
Request body application/json
dataobjectShow fields (2)
activebooleanSwitch debug mode on or off
secondsintegerRequested length of the debug window, clamped to 600 seconds
Responses
default
curl --request POST \
--url https://your-instance.iw-erp.de/api/dw/webhook/42/debug_mode \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"active": true,
"seconds": 600
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({data: {active: true, seconds: 600}})
};
fetch('https://your-instance.iw-erp.de/api/dw/webhook/42/debug_mode', 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/dw/webhook/42/debug_mode"
payload = { "data": {
"active": True,
"seconds": 600
} }
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/dw/webhook/42/debug_mode', [
'body' => '{"data":{"active":true,"seconds":600}}',
'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/dw/webhook/42/debug_mode"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"active\":true,\"seconds\":600}}")
{
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\":{\"active\":true,\"seconds\":600}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/dw/webhook/42/debug_mode")
.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/dw/webhook/42/debug_mode"
payload := strings.NewReader("{\"data\":{\"active\":true,\"seconds\":600}}")
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/data_warehouse_registered_webhook_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 DataWarehouseRegisteredWebhookController.setDebugMode('42');
if (result.success) {
print(result.data);
}Returns a list of webhook log entries
GET/api/dw/webhook_log
Query parameters
idstring | |
webhookstring | |
runIdentifierstring | Groups all rows that belong to one dispatch of one webhook, so the UI can fold request and response into a single entry. |
levelstring | |
stepstring | |
notificationTypestring | |
referenceClassNamestring | |
referenceIdstring | |
databaseActionstring | |
responseCodestring | |
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 webhook log entriesarray<WebhookLog>
Show fields (17)
webhookRegisteredWebhook3Webhook the entry belongs to.
Show fields (9)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
run_identifierstringGroups all rows that belong to one dispatch of one webhook, so the UI can fold request and response into a single entry.
levelstringLog level of the entry.
stepstringStep of the webhook processing.
notification_typestringType of the notification that triggered the webhook.
reference_class_namestringClass name of the record the webhook refers to.
reference_idstringID of the record the webhook refers to.
database_actionstringDatabase action that triggered the webhook.
targetstringRedacted target of the call — URL, MQTT topic, file path.
request_methodstringHTTP method of the request.
response_codeintegerHTTP response code.
duration_msintegerDuration of the request in milliseconds.
request_bodystringBody of the request.
response_bodystringBody of the response.
messagestringMessage of the log entry.
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/dw/webhook_log \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/dw/webhook_log', 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/dw/webhook_log"
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/dw/webhook_log', [
'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/dw/webhook_log"),
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/dw/webhook_log")
.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/dw/webhook_log"
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/data_warehouse_webhook_log_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 DataWarehouseWebhookLogController.getAll();
if (result.success) {
print(result.data);
}[
{
"reference_class_name": "Beispiel",
"webhook": {
"reference_class_name": "Beispiel",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"debug_mode_until": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"run_identifier": "42",
"level": "string",
"step": "string",
"notification_type": "string",
"reference_id": "42",
"database_action": "string",
"target": "string",
"request_method": "string"
}
]Return a single webhook log entry with the given id
GET/api/dw/webhook_log/{id}
Path parameters
idrequiredstring |
Responses
200Return a single webhook log entry with the given idWebhookLog
Show fields (17)
webhookRegisteredWebhook3Webhook the entry belongs to.
Show fields (9)
reference_class_namestringClass name of the records the webhook refers to.
reference_idsstringIDs of the records the webhook refers to.
database_actionstringDatabase action that triggers the webhook.
notification_typestringType of the notification sent by the webhook.
debug_mode_untilstring (date-time)Point in time the debug mode switches itself off at. Null means debug mode was never used; a value in the past means the window has expired. There is no separate "enabled" flag on purpose — a timestamp cannot be left switched on by a client that crashes before it can switch it off.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
run_identifierstringGroups all rows that belong to one dispatch of one webhook, so the UI can fold request and response into a single entry.
levelstringLog level of the entry.
stepstringStep of the webhook processing.
notification_typestringType of the notification that triggered the webhook.
reference_class_namestringClass name of the record the webhook refers to.
reference_idstringID of the record the webhook refers to.
database_actionstringDatabase action that triggered the webhook.
targetstringRedacted target of the call — URL, MQTT topic, file path.
request_methodstringHTTP method of the request.
response_codeintegerHTTP response code.
duration_msintegerDuration of the request in milliseconds.
request_bodystringBody of the request.
response_bodystringBody of the response.
messagestringMessage of the log entry.
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/dw/webhook_log/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/dw/webhook_log/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/dw/webhook_log/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/dw/webhook_log/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/dw/webhook_log/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/dw/webhook_log/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/dw/webhook_log/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/data_warehouse_webhook_log_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 DataWarehouseWebhookLogController.get('42');
if (result.success) {
print(result.data);
}{
"reference_class_name": "Beispiel",
"webhook": {
"reference_class_name": "Beispiel",
"name": "Beispiel",
"reference_ids": "string",
"database_action": "string",
"notification_type": "string",
"debug_mode_until": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"run_identifier": "42",
"level": "string",
"step": "string",
"notification_type": "string",
"reference_id": "42",
"database_action": "string",
"target": "string",
"request_method": "string"
}