ChatroomMessage
Returns a list of all ChatroomMessages
GET/api/chat/chatroom_message
Query parameters
chatroomstring | _LIST |
participantstring | _LIST, LOGGED_IN_LIST |
deletedboolean | This property is used to mark an entity as deleted / archived | _LIST |
createdstring | _LIST, LOGGED_IN_LIST |
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 ChatroomMessagesarray<ChatroomMessage2>
Show fields (10)
idintegerPrimary key of the chat message. Internal ID.
participantChatroomParticipant5Participant who wrote the message.
Show fields (6)
idintegerPrimary key of the participant. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
Show fields (26)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
googledownloadlinkstringDownload link of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
reactionsarray<ChatroomMessageReaction2>Reactions to the chat message.
Show fields (6)
idintegerPrimary key of the reaction. Internal ID.
emojistringEmoji of the reaction.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
image_urlstringURL of the image of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/chat/chatroom_message \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/chat/chatroom_message', 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/chat/chatroom_message"
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/chat/chatroom_message', [
'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/chat/chatroom_message"),
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/chat/chatroom_message")
.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/chat/chatroom_message"
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/chatroom_message_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 ChatroomMessageController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"message_text": "Text",
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "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
}
]Add a new ChatroomMessage
POST/api/chat/chatroom_message
Request body application/json
dataChatroomMessage3Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
participantChatroomParticipant5Participant who wrote the message.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Add a new ChatroomMessageChatroomMessage3
Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
Show fields (6)
idintegerPrimary key of the chat room. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
participantChatroomParticipant5Participant who wrote the message.
Show fields (6)
idintegerPrimary key of the participant. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
Show fields (26)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
googledownloadlinkstringDownload link of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
Show fields (7)
idintegerPrimary key of the reaction. Internal ID.
emojistringEmoji of the reaction.
participantChatroomParticipant5Participant who reacted.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
image_urlstringURL of the image of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/chat/chatroom_message \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
message_text: 'Text',
chatroom: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
participant: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
completed: true,
edited_at: '2026-10-15T09:30:00+02:00'
}
})
};
fetch('https://your-instance.iw-erp.de/api/chat/chatroom_message', 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/chat/chatroom_message"
payload = { "data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"completed": True,
"edited_at": "2026-10-15T09:30:00+02:00"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/chat/chatroom_message', [
'body' => '{"data":{"id":42,"message_text":"Text","chatroom":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"participant":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"completed":true,"edited_at":"2026-10-15T09:30:00+02:00"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/chat/chatroom_message"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/chat/chatroom_message")
.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/chat/chatroom_message"
payload := strings.NewReader("{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/chatroom_message_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/chatroom_message.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ChatroomMessageController.post(ChatroomMessage.fromJson({
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"attachments": [
{
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
}
],
"reactions": [
{
"id": 42,
"image_url": "https://vynst.de",
"emoji": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
],
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Returns a single ChatroomMessage entry.
GET/api/chat/chatroom_message/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single ChatroomMessageChatroomMessage3
Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
Show fields (6)
idintegerPrimary key of the chat room. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
participantChatroomParticipant5Participant who wrote the message.
Show fields (6)
idintegerPrimary key of the participant. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
Show fields (26)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
googledownloadlinkstringDownload link of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
Show fields (7)
idintegerPrimary key of the reaction. Internal ID.
emojistringEmoji of the reaction.
participantChatroomParticipant5Participant who reacted.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
image_urlstringURL of the image of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/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/chat/chatroom_message/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/chat/chatroom_message/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/chat/chatroom_message/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/chat/chatroom_message/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/chat/chatroom_message/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/chatroom_message_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 ChatroomMessageController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"attachments": [
{
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
}
],
"reactions": [
{
"id": 42,
"image_url": "https://vynst.de",
"emoji": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
],
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Updates an existing ChatroomMessage entry.
PUT/api/chat/chatroom_message/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataChatroomMessage3Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
participantChatroomParticipant5Participant who wrote the message.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update single ChatroomMessageChatroomMessage3
Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
Show fields (6)
idintegerPrimary key of the chat room. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
participantChatroomParticipant5Participant who wrote the message.
Show fields (6)
idintegerPrimary key of the participant. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
Show fields (26)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
googledownloadlinkstringDownload link of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
Show fields (7)
idintegerPrimary key of the reaction. Internal ID.
emojistringEmoji of the reaction.
participantChatroomParticipant5Participant who reacted.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
image_urlstringURL of the image of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PUT \
--url https://your-instance.iw-erp.de/api/chat/chatroom_message/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
message_text: 'Text',
chatroom: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
participant: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
completed: true,
edited_at: '2026-10-15T09:30:00+02:00'
}
})
};
fetch('https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/42"
payload = { "data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"completed": True,
"edited_at": "2026-10-15T09:30:00+02:00"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/chat/chatroom_message/42', [
'body' => '{"data":{"id":42,"message_text":"Text","chatroom":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"participant":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"completed":true,"edited_at":"2026-10-15T09:30:00+02:00"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/chat/chatroom_message/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/chatroom_message_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/chatroom_message.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await ChatroomMessageController.put(ChatroomMessage.fromJson({
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"attachments": [
{
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
}
],
"reactions": [
{
"id": 42,
"image_url": "https://vynst.de",
"emoji": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
],
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Updates an existing ChatroomMessage entry.
PATCH/api/chat/chatroom_message/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataChatroomMessage3Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
participantChatroomParticipant5Participant who wrote the message.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update single ChatroomMessageChatroomMessage3
Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
Show fields (6)
idintegerPrimary key of the chat room. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
participantChatroomParticipant5Participant who wrote the message.
Show fields (6)
idintegerPrimary key of the participant. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
Show fields (26)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
googledownloadlinkstringDownload link of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
Show fields (7)
idintegerPrimary key of the reaction. Internal ID.
emojistringEmoji of the reaction.
participantChatroomParticipant5Participant who reacted.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
image_urlstringURL of the image of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/chat/chatroom_message/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
message_text: 'Text',
chatroom: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
participant: {
id: 42,
name: 'Beispiel',
image_url: 'https://vynst.de',
created: '2026-10-15T09:30:00+02:00',
updated: '2026-10-15T09:30:00+02:00',
deleted: true
},
completed: true,
edited_at: '2026-10-15T09:30:00+02:00'
}
})
};
fetch('https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/42"
payload = { "data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": True
},
"completed": True,
"edited_at": "2026-10-15T09:30:00+02:00"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/chat/chatroom_message/42', [
'body' => '{"data":{"id":42,"message_text":"Text","chatroom":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"participant":{"id":42,"name":"Beispiel","image_url":"https://vynst.de","created":"2026-10-15T09:30:00+02:00","updated":"2026-10-15T09:30:00+02:00","deleted":true},"completed":true,"edited_at":"2026-10-15T09:30:00+02:00"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/chat/chatroom_message/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"message_text\":\"Text\",\"chatroom\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"participant\":{\"id\":42,\"name\":\"Beispiel\",\"image_url\":\"https://vynst.de\",\"created\":\"2026-10-15T09:30:00+02:00\",\"updated\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true},\"completed\":true,\"edited_at\":\"2026-10-15T09:30:00+02:00\"}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart 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/chat/chatroom_message/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00"
}
}),
);
print(response.body);{
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"attachments": [
{
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
}
],
"reactions": [
{
"id": 42,
"image_url": "https://vynst.de",
"emoji": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
],
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}Delete a single ChatroomMessage
DELETE/api/chat/chatroom_message/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Return single ChatroomMessageChatroomMessage3
Show fields (11)
idintegerPrimary key of the chat message. Internal ID.
chatroomChatroom10Chat room the message belongs to.
Show fields (6)
idintegerPrimary key of the chat room. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
participantChatroomParticipant5Participant who wrote the message.
Show fields (6)
idintegerPrimary key of the participant. Internal ID.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
namestringName of the entity.
image_urlstringURL of the image of the entity.
message_textstringText of the chat message.
attachmentsarray<Attachment22>Attachments of the chat message.
Show fields (26)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
googledownloadlinkstringDownload link of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
reactionsarray<ChatroomMessageReaction6>Reactions to the chat message.
Show fields (7)
idintegerPrimary key of the reaction. Internal ID.
emojistringEmoji of the reaction.
participantChatroomParticipant5Participant who reacted.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
image_urlstringURL of the image of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
completedbooleanA flag to indicate if this message is completed
edited_atstring (date-time)Wann der Text zuletzt bearbeitet wurde (Einstellung chatroom_message_edit_enabled).
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request DELETE \
--url https://your-instance.iw-erp.de/api/chat/chatroom_message/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://your-instance.iw-erp.de/api/chat/chatroom_message/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/chat/chatroom_message/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/chat/chatroom_message/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/chat/chatroom_message/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/chatroom_message_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 ChatroomMessageController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"message_text": "Text",
"chatroom": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"participant": {
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
},
"attachments": [
{
"id": 42,
"ocr_from_name": "Beispiel",
"ocr_from_email": "lena.hartmann@example.org",
"ocr_from_phone": "+49 511 123456",
"ocr_to_name": "Beispiel",
"ocr_to_email": "lena.hartmann@example.org",
"ocr_to_phone": "+49 511 123456",
"filename": "string",
"filesize": "string",
"mimetype": "string"
}
],
"reactions": [
{
"id": 42,
"image_url": "https://vynst.de",
"emoji": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
],
"completed": true,
"edited_at": "2026-10-15T09:30:00+02:00",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
}