PersonLogBookEntry
Returns a list of all PersonLogBookEntry
GET/api/crm/person_log_book_entry
Query parameters
personstring | |
companystring | |
unifiedCategorystring | |
productstring | |
contentTypestring | |
contentstring | |
startstring | |
endstring | |
discountProductstring | |
discountStartstring | |
discountEndstring | |
passiveProductstring | |
passiveStartstring | |
passiveEndstring | |
freeProductstring | |
freeStartstring | |
freeEndstring | |
startBillingstring | |
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 PersonLogBookEntryarray<PersonLogBookEntry>
Show fields (18)
idintegerPrimary key of the log book entry. Internal ID.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
discount_startstring (date-time)Start of the discount period.
discount_endstring (date-time)End of the discount period.
free_startstring (date-time)Start of the free period.
free_endstring (date-time)End of the free period.
passive_startstring (date-time)Start of the passive period.
passive_endstring (date-time)End of the passive period.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
search_stringstringText that the entity can be searched by.
payment_typePaymentTypeShow fields (10)
idintegerPrimary key of the payment type. Internal ID.
namestringName of the payment type, for example transfer or cash.
autobooleanPayments of this type are matched automatically.
conditionsstringConditions for matching payments to this type.
linked_keywordsstringKeywords in bank transactions that link to this payment type.
global_defaultbooleanDefault payment type for new invoices.
bank_import_defaultbooleanDefault payment type for bank imports.
is_direct_debitbooleanThe payment type is a direct debit.
is_externalbooleanThe payment is handled by an external service.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/crm/person_log_book_entry \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/crm/person_log_book_entry', 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/crm/person_log_book_entry"
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/crm/person_log_book_entry', [
'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/crm/person_log_book_entry"),
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/crm/person_log_book_entry")
.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/crm/person_log_book_entry"
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/crm_person_log_book_entry_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 CrmPersonLogBookEntryController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"content": "string",
"content_type": "string",
"content_type_addition": "string",
"start": "2026-10-15T09:30:00+02:00",
"start_billing": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"expiry_warning_sent_at": "2026-10-15T09:30:00+02:00",
"discount_start": "2026-10-15T09:30:00+02:00",
"discount_end": "2026-10-15T09:30:00+02:00"
}
]Add a new PersonLogBookEntry
POST/api/crm/person_log_book_entry
Request body application/json
dataPersonLogBookEntry2Show fields (27)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
companyCRMCompanyCompany the entry belongs to.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
unified_categoryUnifiedCategory10Unified category of the entry.
discount_startstring (date-time)Start of the discount period.
discount_endstring (date-time)End of the discount period.
discount_productPredefinedBillingItem9Billing item used for the discount.
free_startstring (date-time)Start of the free period.
free_endstring (date-time)End of the free period.
free_productPredefinedBillingItem9Billing item used for the free period.
passive_startstring (date-time)Start of the passive period.
passive_endstring (date-time)End of the passive period.
passive_productPredefinedBillingItem9Billing item used for the passive period.
invoicesarray<Invoice9>Invoices the entry is billed on.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
search_stringstringText that the entity can be searched by.
billing_payment_profileBillingPaymentProfile10payment_typePaymentType
Responses
200Add a new PersonLogBookEntryPersonLogBookEntry2
Show fields (12)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
companyCRMCompanyCompany the entry belongs to.
Show fields (55)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
Show fields (55)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem9Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
- … 32 more fields
- … 16 more fields
curl --request POST \
--url https://your-instance.iw-erp.de/api/crm/person_log_book_entry \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
person: {
id: 42,
first_name: 'Lena',
last_name: 'Hartmann',
title: 'Beispiel',
language: 'de',
support_description: 'Text'
},
company: {
id: 42,
short_name: 'Beispiel',
company_name: 'Beispiel',
secondary_name: 'Beispiel',
invoice_email: 'lena.hartmann@example.org',
send_invoice_email: true
},
content: 'string',
content_type: 'string',
content_type_addition: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/crm/person_log_book_entry', 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/crm/person_log_book_entry"
payload = { "data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": True
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/crm/person_log_book_entry', [
'body' => '{"data":{"id":42,"person":{"id":42,"first_name":"Lena","last_name":"Hartmann","title":"Beispiel","language":"de","support_description":"Text"},"company":{"id":42,"short_name":"Beispiel","company_name":"Beispiel","secondary_name":"Beispiel","invoice_email":"lena.hartmann@example.org","send_invoice_email":true},"content":"string","content_type":"string","content_type_addition":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/crm/person_log_book_entry"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/crm/person_log_book_entry")
.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/crm/person_log_book_entry"
payload := strings.NewReader("{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/crm_person_log_book_entry_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/crm_person_log_book_entry.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await CrmPersonLogBookEntryController.post(CrmPersonLogBookEntry.fromJson({
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true,
"time_report_email": "lena.hartmann@example.org",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"content": "string",
"content_type": "string",
"content_type_addition": "string",
"start": "2026-10-15T09:30:00+02:00",
"start_billing": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"expiry_warning_sent_at": "2026-10-15T09:30:00+02:00"
}Get a single PersonLogBookEntry with the given id or token
GET/api/crm/person_log_book_entry/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Get a single PersonLogBookEntry with the given id or tokenPersonLogBookEntry2
Show fields (12)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
companyCRMCompanyCompany the entry belongs to.
Show fields (55)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
Show fields (55)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem9Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
- … 32 more fields
- … 16 more fields
curl --request GET \
--url https://your-instance.iw-erp.de/api/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm_person_log_book_entry_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 CrmPersonLogBookEntryController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true,
"time_report_email": "lena.hartmann@example.org",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"content": "string",
"content_type": "string",
"content_type_addition": "string",
"start": "2026-10-15T09:30:00+02:00",
"start_billing": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"expiry_warning_sent_at": "2026-10-15T09:30:00+02:00"
}Update a PersonLogBookEntry
PUT/api/crm/person_log_book_entry/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataPersonLogBookEntry2Show fields (27)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
companyCRMCompanyCompany the entry belongs to.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
unified_categoryUnifiedCategory10Unified category of the entry.
discount_startstring (date-time)Start of the discount period.
discount_endstring (date-time)End of the discount period.
discount_productPredefinedBillingItem9Billing item used for the discount.
free_startstring (date-time)Start of the free period.
free_endstring (date-time)End of the free period.
free_productPredefinedBillingItem9Billing item used for the free period.
passive_startstring (date-time)Start of the passive period.
passive_endstring (date-time)End of the passive period.
passive_productPredefinedBillingItem9Billing item used for the passive period.
invoicesarray<Invoice9>Invoices the entry is billed on.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
search_stringstringText that the entity can be searched by.
billing_payment_profileBillingPaymentProfile10payment_typePaymentType
Responses
200Update a PersonLogBookEntryPersonLogBookEntry2
Show fields (12)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
companyCRMCompanyCompany the entry belongs to.
Show fields (55)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
Show fields (55)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem9Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
- … 32 more fields
- … 16 more fields
curl --request PUT \
--url https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
person: {
id: 42,
first_name: 'Lena',
last_name: 'Hartmann',
title: 'Beispiel',
language: 'de',
support_description: 'Text'
},
company: {
id: 42,
short_name: 'Beispiel',
company_name: 'Beispiel',
secondary_name: 'Beispiel',
invoice_email: 'lena.hartmann@example.org',
send_invoice_email: true
},
content: 'string',
content_type: 'string',
content_type_addition: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/crm/person_log_book_entry/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/crm/person_log_book_entry/42"
payload = { "data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": True
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42', [
'body' => '{"data":{"id":42,"person":{"id":42,"first_name":"Lena","last_name":"Hartmann","title":"Beispiel","language":"de","support_description":"Text"},"company":{"id":42,"short_name":"Beispiel","company_name":"Beispiel","secondary_name":"Beispiel","invoice_email":"lena.hartmann@example.org","send_invoice_email":true},"content":"string","content_type":"string","content_type_addition":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/crm/person_log_book_entry/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/crm/person_log_book_entry/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/crm_person_log_book_entry_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/crm_person_log_book_entry.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await CrmPersonLogBookEntryController.put(CrmPersonLogBookEntry.fromJson({
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true,
"time_report_email": "lena.hartmann@example.org",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"content": "string",
"content_type": "string",
"content_type_addition": "string",
"start": "2026-10-15T09:30:00+02:00",
"start_billing": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"expiry_warning_sent_at": "2026-10-15T09:30:00+02:00"
}Update a PersonLogBookEntry
PATCH/api/crm/person_log_book_entry/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataPersonLogBookEntry2Show fields (27)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
companyCRMCompanyCompany the entry belongs to.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
unified_categoryUnifiedCategory10Unified category of the entry.
discount_startstring (date-time)Start of the discount period.
discount_endstring (date-time)End of the discount period.
discount_productPredefinedBillingItem9Billing item used for the discount.
free_startstring (date-time)Start of the free period.
free_endstring (date-time)End of the free period.
free_productPredefinedBillingItem9Billing item used for the free period.
passive_startstring (date-time)Start of the passive period.
passive_endstring (date-time)End of the passive period.
passive_productPredefinedBillingItem9Billing item used for the passive period.
invoicesarray<Invoice9>Invoices the entry is billed on.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
search_stringstringText that the entity can be searched by.
billing_payment_profileBillingPaymentProfile10payment_typePaymentType
Responses
200Update a PersonLogBookEntryPersonLogBookEntry2
Show fields (12)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
companyCRMCompanyCompany the entry belongs to.
Show fields (55)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
Show fields (55)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem9Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
- … 32 more fields
- … 16 more fields
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
id: 42,
person: {
id: 42,
first_name: 'Lena',
last_name: 'Hartmann',
title: 'Beispiel',
language: 'de',
support_description: 'Text'
},
company: {
id: 42,
short_name: 'Beispiel',
company_name: 'Beispiel',
secondary_name: 'Beispiel',
invoice_email: 'lena.hartmann@example.org',
send_invoice_email: true
},
content: 'string',
content_type: 'string',
content_type_addition: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/crm/person_log_book_entry/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/crm/person_log_book_entry/42"
payload = { "data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": True
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42', [
'body' => '{"data":{"id":42,"person":{"id":42,"first_name":"Lena","last_name":"Hartmann","title":"Beispiel","language":"de","support_description":"Text"},"company":{"id":42,"short_name":"Beispiel","company_name":"Beispiel","secondary_name":"Beispiel","invoice_email":"lena.hartmann@example.org","send_invoice_email":true},"content":"string","content_type":"string","content_type_addition":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/crm/person_log_book_entry/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/crm/person_log_book_entry/42"
payload := strings.NewReader("{\"data\":{\"id\":42,\"person\":{\"id\":42,\"first_name\":\"Lena\",\"last_name\":\"Hartmann\",\"title\":\"Beispiel\",\"language\":\"de\",\"support_description\":\"Text\"},\"company\":{\"id\":42,\"short_name\":\"Beispiel\",\"company_name\":\"Beispiel\",\"secondary_name\":\"Beispiel\",\"invoice_email\":\"lena.hartmann@example.org\",\"send_invoice_email\":true},\"content\":\"string\",\"content_type\":\"string\",\"content_type_addition\":\"string\"}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/crm/person_log_book_entry/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true
},
"content": "string",
"content_type": "string",
"content_type_addition": "string"
}
}),
);
print(response.body);{
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true,
"time_report_email": "lena.hartmann@example.org",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"content": "string",
"content_type": "string",
"content_type_addition": "string",
"start": "2026-10-15T09:30:00+02:00",
"start_billing": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"expiry_warning_sent_at": "2026-10-15T09:30:00+02:00"
}Delete a single PersonLogBookEntry with the given id or token
DELETE/api/crm/person_log_book_entry/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Delete a single PersonLogBookEntry with the given id or tokenPersonLogBookEntry2
Show fields (12)
idintegerPrimary key of the log book entry. Internal ID.
personCRMPerson10Person the entry belongs to.
Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
companyCRMCompanyCompany the entry belongs to.
Show fields (55)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
contentstringContent of the entry.
content_typestringType of the entry.
content_type_additionstringAdditional detail of the entry type.
startstring (date-time)Start of the entry.
start_billingstring (date-time)Start of the billed period.
endstring (date-time)End of the entry.
expiry_warning_sent_atstring (date-time)Set when an expiry warning was sent; cleared when the end date changes so the warning re-arms (see BookableComponentExpiryCheckCommand)
productPredefinedBillingItem9Billing item booked with the entry.
Show fields (55)
idintegerPrimary key of the mapped billing item. Internal ID.
namestringrequiredName of the billing item.
descriptionstringrequiredDescription of the billing item shown to the customer.
internal_descriptionstringInternal description of the billing item, not shown to the customer.
fixed_hoursnumber (float)Fixed number of hours billed.
fixed_pricenumber (float)Fixed price billed.
fixed_price_base_unitnumber (float)Base unit for the fixed price.
price_fixed_hoursnumber (float)Price for the fixed hours.
price_additional_hoursnumber (float)Price for each additional hour.
name_additional_hoursstringName of the additional hours item.
description_additional_hoursstringDescription of the additional hours item.
time_billed_on_ticket_closebooleanWhether the time is billed when the ticket is closed.
billing_typeBillingItemTypeBilling item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
condition_date_afterstring (date-time)The item applies only to dates after this date.
condition_date_beforestring (date-time)The item applies only to dates before this date.
condition_country_codestringCountry code the item applies to.
condition_zip_code_fromstringStart of the postal code range the item applies to.
condition_zip_code_tostringEnd of the postal code range the item applies to.
condition_time_after_hourintegerThe item applies only after this hour of the day.
condition_max_lengthintegerMaximum length the item applies to.
condition_time_before_hourintegerThe item applies only before this hour of the day.
condition_sub_access_tagAccessTagAccess tag a subscription must have for the item to apply.
condition_show_despite_missing_access_tagbooleanWhether the item is shown even if the access tag is missing.
condition_sub_free_logicstringFree-form condition logic for the subscription.
fixed_price_logicstringFree-form logic that calculates the fixed price.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_deletebooleanWhether members can cancel the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
sub_self_service_delete_fixed_pricenumber (float)Fixed price charged when members cancel the subscription themselves.
sub_pre_paidbooleanWhether the subscription is paid in advance.
sub_only_billed_after_startbooleanWhether the subscription is only billed after its start date.
sub_people_age_group_oneintegerUpper age limit of age group one.
sub_people_age_group_one_discountintegerDiscount in percent for age group one.
sub_people_age_group_one_freeintegerNumber of free places for age group one.
sub_people_age_group_twointegerUpper age limit of age group two.
sub_people_age_group_two_discountintegerDiscount in percent for age group two.
sub_people_age_group_two_freeintegerNumber of free places for age group two.
sub_people_age_group_threeintegerUpper age limit of age group three.
sub_people_age_group_three_discountintegerDiscount in percent for age group three.
sub_people_age_group_three_freeintegerNumber of free places for age group three.
sub_people_age_group_fourintegerUpper age limit of age group four.
sub_people_age_group_four_discountintegerDiscount in percent for age group four.
sub_people_age_group_four_freeintegerNumber of free places for age group four.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
companyCRMCompanyCompany the billing item belongs to.
parentPredefinedBillingItem9Parent billing item, for example for variants.
is_preferredbooleanThe item is preferred and shown first.
is_defaultbooleanThe item is the default for its type.
is_discountbooleanThe item is a discount.
- … 32 more fields
- … 16 more fields
curl --request DELETE \
--url https://your-instance.iw-erp.de/api/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm/person_log_book_entry/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/crm_person_log_book_entry_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 CrmPersonLogBookEntryController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"company": {
"id": 42,
"short_name": "Beispiel",
"company_name": "Beispiel",
"secondary_name": "Beispiel",
"invoice_email": "lena.hartmann@example.org",
"send_invoice_email": true,
"time_report_email": "lena.hartmann@example.org",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"content": "string",
"content_type": "string",
"content_type_addition": "string",
"start": "2026-10-15T09:30:00+02:00",
"start_billing": "2026-10-15T09:30:00+02:00",
"end": "2026-10-15T09:30:00+02:00",
"expiry_warning_sent_at": "2026-10-15T09:30:00+02:00"
}