PredefinedBillingItem
Returns a list of PredefinedBillingItem objects
GET/api/invoice/predefinedbillingitems
Query parameters
deletedstring | Default value: false |
billingTypestring | , PUBLIC_LIST |
companystring | |
baseBookablestring | , PUBLIC_LIST |
baseEventstring | , PUBLIC_LIST |
billingTypeCategorystring | , PUBLIC_LIST |
isPreferredboolean | , PUBLIC_LIST |
isDefaultboolean | , PUBLIC_LIST |
isGlobalboolean | , PUBLIC_LIST |
isDiscountboolean | , PUBLIC_LIST |
isFreeboolean | , PUBLIC_LIST |
isPassiveboolean | , PUBLIC_LIST |
unifiedCatEmptystring | |
orderinteger | , PUBLIC_LIST |
namestring | , PUBLIC_LIST |
createdstring | , PUBLIC_LIST |
conditionDateAfterstring | , PUBLIC_LIST |
conditionDateBeforestring | , PUBLIC_LIST |
conditionCountryCodestring | , PUBLIC_LIST |
conditionZipCodeFromstring | , PUBLIC_LIST |
conditionZipCodeTostring | , PUBLIC_LIST |
conditionTimeAfterHourstring | , PUBLIC_LIST |
conditionTimeBeforeHourstring | , PUBLIC_LIST |
conditionMaxLengthstring | , PUBLIC_LIST |
conditionBookingContentTypestring | Item applies only to bookings with this content type (e.g. flight type). Null = all content types. |
usageTimeBasestring | Section time pair used for usage billing: BaseBookingRealUsage::BILLING_TYPE_BLOCK_TIME or BILLING_TYPE_FLIGHT_TIME. Null = follow the usage record's billingType. |
baseLocationstring | Location this charge belongs to (e.g. airport landing/takeoff fee), category CATEGORY_LOCATION |
conditionDayOfWeekMaskstring | Day-of-week bitmask (Mon=1 ... Sun=64, see DayOfWeekBitmaskHelper). Null = every day. |
conditionFirstUsageOnlystring | Charge applies only once per usage record (first matching section, quantity 1) |
skustring | , PUBLIC_LIST |
barcodestring | , PUBLIC_LIST |
producerGuaranteeYearsstring | Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label. | , PUBLIC_LIST |
producerBrandstring | Hersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability. | , PUBLIC_LIST |
cancellationTermUnitstring | Allowed cancellation terms for this subscription product. Null / empty = inherit the club default from settings. See CancellationTermCalculator::TERM_UNITS. |
cancellationNoticeValuestring | Numeric value of the notice period before the cancellation term. Null = inherit from settings. |
cancellationNoticeUnitstring | Unit of the notice period: DAYS, WEEKS or MONTHS. Null = inherit from settings. |
externalAccessModestring | Access granted by an external purchase, independently of billing recurrence or event budgets. |
externalAccessDurationDaysstring | |
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 PredefinedBillingItem objectsarray<PredefinedBillingItem>
Show fields (53)
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.
Show fields (12)
idintegerPrimary key of the billing item type. Internal ID.
namestringName of the billing item type.
fixed_price_addon_one_namestringName of the first fixed price addon.
fixed_price_addon_two_namestringName of the second fixed price addon.
fixed_price_addon_one_name_personstringName of the first fixed price addon for persons.
fixed_price_addon_two_name_personstringName of the second fixed price addon for persons.
categorystringrequiredCategory of the billing item type.
Allowed:
projectsubscriptionbookableeventshippinglocationtypestringrequiredType of the billing item type.
Allowed:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringUnit of the billing item type, for example piece or hour.
force_repeatingbooleanItems of this type always repeat.
can_repeatbooleanItems of this type can repeat.
deletedbooleanThis property is used to mark an entity as deleted / archived
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
Show fields (9)
idintegerPrimary key of the recurrence. Internal ID.
namestringName of the recurrence, for example monthly.
oncebooleanThe recurrence happens only once.
allow_partial_on_eq_start_billingbooleanAllows partial billing if start and billed date are equal. primarily used for the first billing of a yearly contract
date_stringstringDate pattern of the recurrence as text.
tolerancenumber (float)Tolerance in days around the recurrence date.
deletedbooleanThe recurrence is deleted.
rounding_stepsintegerSteps used to round the recurrence.
month_factorintegerNumber of months between two recurrences.
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.
Show fields (6)
idintegerPrimary key of the access tag. Internal ID, used as the reference in access rights.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
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.)
baseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
secondaryBaseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
baseEventBaseEvent7Show fields (22)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
- … 78 more fields
- … 45 more fields
curl --request GET \
--url https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems', 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/invoice/predefinedbillingitems"
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/invoice/predefinedbillingitems', [
'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/invoice/predefinedbillingitems"),
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/invoice/predefinedbillingitems")
.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/invoice/predefinedbillingitems"
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/billing_predefined_billing_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingPredefinedBillingItemController.getAll();
if (result.success) {
print(result.data);
}[
{
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
}
]Creates a single PredefinedBillingItem
POST/api/invoice/predefinedbillingitems
Request body application/json
predefinedbillingitemPredefinedBillingItem2Show fields (23)
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.
billing_typeBillingItemType4Billing item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment12Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment12Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment12"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
ucatsarray<UnifiedCategory11>Unified categories of the entity.
slug_identifierstringSlug used in URLs of the entity.
accounting_software_numberstringNumber of the entity in the accounting software.
Responses
200Creates a single PredefinedBillingItemPredefinedBillingItem
Show fields (53)
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.
Show fields (12)
idintegerPrimary key of the billing item type. Internal ID.
namestringName of the billing item type.
fixed_price_addon_one_namestringName of the first fixed price addon.
fixed_price_addon_two_namestringName of the second fixed price addon.
fixed_price_addon_one_name_personstringName of the first fixed price addon for persons.
fixed_price_addon_two_name_personstringName of the second fixed price addon for persons.
categorystringrequiredCategory of the billing item type.
Allowed:
projectsubscriptionbookableeventshippinglocationtypestringrequiredType of the billing item type.
Allowed:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringUnit of the billing item type, for example piece or hour.
force_repeatingbooleanItems of this type always repeat.
can_repeatbooleanItems of this type can repeat.
deletedbooleanThis property is used to mark an entity as deleted / archived
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
Show fields (9)
idintegerPrimary key of the recurrence. Internal ID.
namestringName of the recurrence, for example monthly.
oncebooleanThe recurrence happens only once.
allow_partial_on_eq_start_billingbooleanAllows partial billing if start and billed date are equal. primarily used for the first billing of a yearly contract
date_stringstringDate pattern of the recurrence as text.
tolerancenumber (float)Tolerance in days around the recurrence date.
deletedbooleanThe recurrence is deleted.
rounding_stepsintegerSteps used to round the recurrence.
month_factorintegerNumber of months between two recurrences.
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.
Show fields (6)
idintegerPrimary key of the access tag. Internal ID, used as the reference in access rights.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
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.)
baseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
secondaryBaseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
baseEventBaseEvent7Show fields (22)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
- … 78 more fields
- … 45 more fields
curl --request POST \
--url https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
predefinedbillingitem: {
name: 'Beispiel',
description: 'Text',
internal_description: 'Text',
fixed_hours: 1.5,
fixed_price: 49.9,
fixed_price_base_unit: 49.9
}
})
};
fetch('https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems', 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/invoice/predefinedbillingitems"
payload = { "predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
} }
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/invoice/predefinedbillingitems', [
'body' => '{"predefinedbillingitem":{"name":"Beispiel","description":"Text","internal_description":"Text","fixed_hours":1.5,"fixed_price":49.9,"fixed_price_base_unit":49.9}}',
'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/invoice/predefinedbillingitems"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}")
{
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, "{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems")
.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/invoice/predefinedbillingitems"
payload := strings.NewReader("{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}")
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/billing_predefined_billing_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/predefined_billing_item.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingPredefinedBillingItemController.post(PredefinedBillingItem.fromJson({
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
}));
if (result.success) {
print(result.data);
}{
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
}This method will get a single PredefinedBillingItem Object with the given id
GET/api/invoice/predefinedbillingitems/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single PredefinedBillingItemPredefinedBillingItem
Show fields (53)
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.
Show fields (12)
idintegerPrimary key of the billing item type. Internal ID.
namestringName of the billing item type.
fixed_price_addon_one_namestringName of the first fixed price addon.
fixed_price_addon_two_namestringName of the second fixed price addon.
fixed_price_addon_one_name_personstringName of the first fixed price addon for persons.
fixed_price_addon_two_name_personstringName of the second fixed price addon for persons.
categorystringrequiredCategory of the billing item type.
Allowed:
projectsubscriptionbookableeventshippinglocationtypestringrequiredType of the billing item type.
Allowed:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringUnit of the billing item type, for example piece or hour.
force_repeatingbooleanItems of this type always repeat.
can_repeatbooleanItems of this type can repeat.
deletedbooleanThis property is used to mark an entity as deleted / archived
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
Show fields (9)
idintegerPrimary key of the recurrence. Internal ID.
namestringName of the recurrence, for example monthly.
oncebooleanThe recurrence happens only once.
allow_partial_on_eq_start_billingbooleanAllows partial billing if start and billed date are equal. primarily used for the first billing of a yearly contract
date_stringstringDate pattern of the recurrence as text.
tolerancenumber (float)Tolerance in days around the recurrence date.
deletedbooleanThe recurrence is deleted.
rounding_stepsintegerSteps used to round the recurrence.
month_factorintegerNumber of months between two recurrences.
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.
Show fields (6)
idintegerPrimary key of the access tag. Internal ID, used as the reference in access rights.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
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.)
baseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
secondaryBaseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
baseEventBaseEvent7Show fields (22)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
- … 78 more fields
- … 45 more fields
curl --request GET \
--url https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/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/billing_predefined_billing_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingPredefinedBillingItemController.get('42');
if (result.success) {
print(result.data);
}{
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
}This method will update a PredefinedBillingItem Object
PUT/api/invoice/predefinedbillingitems/{id}
Path parameters
idrequiredstring |
Request body application/json
predefinedbillingitemPredefinedBillingItem2Show fields (23)
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.
billing_typeBillingItemType4Billing item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment12Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment12Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment12"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
ucatsarray<UnifiedCategory11>Unified categories of the entity.
slug_identifierstringSlug used in URLs of the entity.
accounting_software_numberstringNumber of the entity in the accounting software.
Responses
200Update a PredefinedBillingItemPredefinedBillingItem
Show fields (53)
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.
Show fields (12)
idintegerPrimary key of the billing item type. Internal ID.
namestringName of the billing item type.
fixed_price_addon_one_namestringName of the first fixed price addon.
fixed_price_addon_two_namestringName of the second fixed price addon.
fixed_price_addon_one_name_personstringName of the first fixed price addon for persons.
fixed_price_addon_two_name_personstringName of the second fixed price addon for persons.
categorystringrequiredCategory of the billing item type.
Allowed:
projectsubscriptionbookableeventshippinglocationtypestringrequiredType of the billing item type.
Allowed:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringUnit of the billing item type, for example piece or hour.
force_repeatingbooleanItems of this type always repeat.
can_repeatbooleanItems of this type can repeat.
deletedbooleanThis property is used to mark an entity as deleted / archived
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
Show fields (9)
idintegerPrimary key of the recurrence. Internal ID.
namestringName of the recurrence, for example monthly.
oncebooleanThe recurrence happens only once.
allow_partial_on_eq_start_billingbooleanAllows partial billing if start and billed date are equal. primarily used for the first billing of a yearly contract
date_stringstringDate pattern of the recurrence as text.
tolerancenumber (float)Tolerance in days around the recurrence date.
deletedbooleanThe recurrence is deleted.
rounding_stepsintegerSteps used to round the recurrence.
month_factorintegerNumber of months between two recurrences.
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.
Show fields (6)
idintegerPrimary key of the access tag. Internal ID, used as the reference in access rights.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
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.)
baseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
secondaryBaseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
baseEventBaseEvent7Show fields (22)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
- … 78 more fields
- … 45 more fields
curl --request PUT \
--url https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
predefinedbillingitem: {
name: 'Beispiel',
description: 'Text',
internal_description: 'Text',
fixed_hours: 1.5,
fixed_price: 49.9,
fixed_price_base_unit: 49.9
}
})
};
fetch('https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/42"
payload = { "predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
} }
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/invoice/predefinedbillingitems/42', [
'body' => '{"predefinedbillingitem":{"name":"Beispiel","description":"Text","internal_description":"Text","fixed_hours":1.5,"fixed_price":49.9,"fixed_price_base_unit":49.9}}',
'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/invoice/predefinedbillingitems/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}")
{
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, "{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/42"
payload := strings.NewReader("{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}")
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/billing_predefined_billing_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/predefined_billing_item.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingPredefinedBillingItemController.put(PredefinedBillingItem.fromJson({
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
}));
if (result.success) {
print(result.data);
}{
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
}This method will update a PredefinedBillingItem Object
PATCH/api/invoice/predefinedbillingitems/{id}
Path parameters
idrequiredstring |
Request body application/json
predefinedbillingitemPredefinedBillingItem2Show fields (23)
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.
billing_typeBillingItemType4Billing item type.
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
deletedbooleanWhether the billing item is deleted.
sub_self_service_addbooleanWhether members can add the subscription themselves.
sub_self_service_add_fixed_pricenumber (float)Fixed price charged when members add the subscription themselves.
price_is_bruttobooleanWhether the prices are gross prices including tax.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
producer_guarantee_yearsnumber (float)Herstellergarantie in Jahren (ganze Jahre oder ,5-Schritte, siehe ProductGuaranteeYears). Grundlage fuer das EU GARAN Label (nur bei Garantie > 2 Jahre zulaessig). Producer guarantee of durability in years (whole or .5 steps), basis for the EU GARAN label.
producer_brandstringHersteller / Marke, die die Haltbarkeitsgarantie gibt - editierbares Feld "Brand/Trademark" des EU GARAN Labels. Producer / brand offering the commercial guarantee of durability.
energy_label_attachmentAttachment12Energielabel (EU Energieverbrauchskennzeichnung) als Bild/PDF fuer Shop, Warenkorb und Mail. EU energy label image/PDF of this product.
garan_label_attachmentAttachment12Grosses EU GARAN Label (DVO 2025/1960): kostenlose Haltbarkeitsgarantie des Herstellers von mehr als zwei Jahren, mit Jahren, Marke und Modell. Full EU GARAN label (commercial guarantee of durability > 2 years).
garan_label_pictogram_attachmentAttachment12"Nested label" / Piktogramm des EU GARAN Labels: zeigt nur die Jahre, beim Klick/Hover muss das grosse Label (garanLabelAttachment) erscheinen. EU GARAN "nested label" pictogram showing only the years; links to the full label online.
ucatsarray<UnifiedCategory11>Unified categories of the entity.
slug_identifierstringSlug used in URLs of the entity.
accounting_software_numberstringNumber of the entity in the accounting software.
Responses
200Update a PredefinedBillingItemPredefinedBillingItem
Show fields (53)
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.
Show fields (12)
idintegerPrimary key of the billing item type. Internal ID.
namestringName of the billing item type.
fixed_price_addon_one_namestringName of the first fixed price addon.
fixed_price_addon_two_namestringName of the second fixed price addon.
fixed_price_addon_one_name_personstringName of the first fixed price addon for persons.
fixed_price_addon_two_name_personstringName of the second fixed price addon for persons.
categorystringrequiredCategory of the billing item type.
Allowed:
projectsubscriptionbookableeventshippinglocationtypestringrequiredType of the billing item type.
Allowed:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringUnit of the billing item type, for example piece or hour.
force_repeatingbooleanItems of this type always repeat.
can_repeatbooleanItems of this type can repeat.
deletedbooleanThis property is used to mark an entity as deleted / archived
buying_pricenumber (float)Purchase price of the item.
recurrenceCRMRecurrenceRecurrence the billing item follows.
Show fields (9)
idintegerPrimary key of the recurrence. Internal ID.
namestringName of the recurrence, for example monthly.
oncebooleanThe recurrence happens only once.
allow_partial_on_eq_start_billingbooleanAllows partial billing if start and billed date are equal. primarily used for the first billing of a yearly contract
date_stringstringDate pattern of the recurrence as text.
tolerancenumber (float)Tolerance in days around the recurrence date.
deletedbooleanThe recurrence is deleted.
rounding_stepsintegerSteps used to round the recurrence.
month_factorintegerNumber of months between two recurrences.
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.
Show fields (6)
idintegerPrimary key of the access tag. Internal ID, used as the reference in access rights.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
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.)
baseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
secondaryBaseBookableBaseBookable3Show fields (50)
ticketSeatingPlanIdintegerId of the seating plan of the room, also for the public serialization.
idintegerPrimary key of the bookable. Internal ID.
tokenstringPublic token of the bookable. Used in links instead of the ID.
bookable_typestringType of the bookable, for example room, court or vehicle.
floor_levelstringFloor the bookable is on.
floor_sizeintegerFloor size in square meters.
pets_allowedbooleanPets are allowed.
barrier_freebooleanThe bookable is barrier-free.
cargo_volumeintegerCargo volume in liters.
fuel_typestringFuel type of the vehicle.
seating_capacityintegerNumber of seats.
has_wait_listbooleanThe bookable has a waiting list once it is fully booked.
booking_limitintegerMaximum number of bookings.
billing_modestringHow bookings on this bookable are billed: BILLING_MODE_UPFRONT (null = upfront, invoice at booking time) or BILLING_MODE_USAGE (free reservation, deferred billing from real usage data) Also in Default: the member app shows "Nutzung erfassen" only for usage-billed bookables.
max_active_bookings_per_userintegerMaximum number of active (future, not cancelled) self-service bookings one person may hold on this bookable at the same time. Null = unlimited. Admin bookings are not limited.
max_advance_booking_hoursintegerMaximum number of hours a self-service booking may start in the future. Null = unlimited. Admin bookings are not limited.
inventory_managedbooleanKept as inventory (Inventar-Ausleihe): the office hands the item over and takes it back, with deposit and reminders. Only used while the setting event_inventory_enabled is on.
inventory_depositnumber (float)Deposit (Kaution) per piece asked on hand-over. Null = no deposit.
require_addressbooleanThe address must be entered when booking.
require_contactbooleanContact details must be entered when booking.
require_billingbooleanBilling details must be entered when booking.
require_booking_titlebooleanA title must be entered when booking.
allow_direct_billingbooleanrequire_agebooleanThe age must be entered when booking.
counter_update_modestringHow the usage counters of the bookable are updated.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
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.
namestringName of the entity.
deletedbooleanThis property is used to mark an entity as deleted / archived
short_identifierstringShort identifier of the entity.
image_urlstringURL of the image of the entity.
slug_identifierstringSlug used in URLs of the entity.
ucatsarray<UnifiedCategory16>Unified categories of the entity.
baseEventBaseEvent7Show fields (22)
ticketSeatingPlanIdintegerId of the seating plan, also for the public and the customer serialization.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimary key of the event. Internal ID.
tokenstringPublic token of the event. Used in links and QR codes instead of the ID.
moments_modestringControls the event moments (digital guestbook) feature: DISABLED = feature off, PARTICIPANTS_ONLY = only via participant-bound moments tokens, ALL = additionally open via the anonymous event moments token
moments_designstringVisual theme of the moments (digital guestbook) pages and exports.
public_keywordsstringKeywords shown in the public event listing.
public_subtitlestringSubtitle shown in the public event listing.
event_typestringType of the event, for example course, trip or tournament.
age_groupstringAge group the event is intended for, for example children or adults.
min_ageintegerMinimum age in years of participants.
max_ageintegerMaximum age in years of participants.
min_age_monthsintegerMinimum age in months of participants, for events for infants.
max_age_monthsintegerMaximum age in months of participants, for events for infants.
min_grade_levelintegerMinimum school grade level of participants.
max_grade_levelintegerMaximum school grade level of participants.
age_toleranceintegerYears by which participants may be outside the age range and still sign up.
event_people_limitintegermaximum number of people that can attend the event
- … 78 more fields
- … 45 more fields
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
predefinedbillingitem: {
name: 'Beispiel',
description: 'Text',
internal_description: 'Text',
fixed_hours: 1.5,
fixed_price: 49.9,
fixed_price_base_unit: 49.9
}
})
};
fetch('https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/42"
payload = { "predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
} }
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/invoice/predefinedbillingitems/42', [
'body' => '{"predefinedbillingitem":{"name":"Beispiel","description":"Text","internal_description":"Text","fixed_hours":1.5,"fixed_price":49.9,"fixed_price_base_unit":49.9}}',
'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/invoice/predefinedbillingitems/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}")
{
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, "{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/invoice/predefinedbillingitems/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/invoice/predefinedbillingitems/42"
payload := strings.NewReader("{\"predefinedbillingitem\":{\"name\":\"Beispiel\",\"description\":\"Text\",\"internal_description\":\"Text\",\"fixed_hours\":1.5,\"fixed_price\":49.9,\"fixed_price_base_unit\":49.9}}")
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/invoice/predefinedbillingitems/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"predefinedbillingitem": {
"name": "Beispiel",
"description": "Text",
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9
}
}),
);
print(response.body);{
"name": "Beispiel",
"description": "Text",
"id": 42,
"internal_description": "Text",
"fixed_hours": 1.5,
"fixed_price": 49.9,
"fixed_price_base_unit": 49.9,
"price_fixed_hours": 49.9,
"price_additional_hours": 49.9,
"name_additional_hours": "string"
}