ProductLabel
Öffentlicher JSON-Endpunkt: Herstellergarantie, EU-GARAN-Berechtigung und Verfügbarkeit sowie öffentliche URL jedes Etikettentyps. Liefert auch Antworten für unbekannte Produkte (found=false, alle Etiketten nicht verfügbar) mit URLs, die weiterhin auf den Anzeige-Endpunkt verweisen, damit ein Shop sie ohne Prüfung einbetten kann.
GET/api/invoice/predefinedbillingitems/label/info/{identifier}
Pfad-Parameter
identifierPflichtstring | Beliebige eindeutige Produktkennung |
Antworten
default
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/info/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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_product_label_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingProductLabelController.getInfo('42');
if (result.success) {
print(result.data);
}Öffentlicher Bild-Endpunkt: liefert das Etikett des angegebenen Typs für das Produkt, das über einen beliebigen eindeutigen Bezeichner gefunden wird (ID, short_identifier, Slug, SKU, Barcode, Import-IDs). Ein ECS-Produkt wird über beide seiner Import-IDs gefunden, `ecs_118760` und `ecs_{source_system}_item_118760`. Eine nachgestellte Dateiendung (.png, .jpg, .svg, ...) wird ignoriert, sodass die URL wie eine Bilddatei aussehen kann.
GET/api/invoice/predefinedbillingitems/label/{labelType}/{identifier}
Ersatz, wenn das Produkt oder dessen Label fehlt oder noch nicht auf Viren geprüft ist
(?fallback=default|transparent|404, Standard default): der in
billing_product_label_default_<labelType> konfigurierte Standard (Anhang-Download-Link -> Datei, http(s)-URL ->
302), andernfalls ein transparentes 1x1-PNG. 404 nur auf Anfrage.
Pfad-Parameter
labelTypePflichtstring | energy_label | garan_label | garan_label_pictogram (Aliase: energy, garan, garan_pictogram, pictogram, nested) |
identifierPflichtstring | Beliebige eindeutige Produktkennung, eine Bilddateiendung darf angehängt werden |
Query-Parameter
fallbackstring | default | transparent | 404 |
Antworten
default
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/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 mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/label/42/42'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);Öffentlich: das GARAN-Piktogramm ("nested label"), vorab aus der offiziellen EU-Vorlage für eine bestimmte Anzahl Jahre gerendert - unabhängig von einem Produkt, zum Beispiel für einen Shop, der die Jahre selbst kennt. `/garan_pictogram/5`, `/garan_pictogram/5.svg`, `/garan_pictogram/10.png`.
GET/api/invoice/product_label/garan_pictogram/{years}
Verfügbar für 3, 4, 5, 6, 7, 8, 9, 10, 15 und 20 Jahre; alles andere ergibt einen 404.
Pfad-Parameter
yearsPflichtstring | Herstellergarantie in ganzen Jahren (3-10, 15, 20), optionale Dateiendung .png oder .svg |
Antworten
default
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/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://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/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://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/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://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/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://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/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 mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://eure-instanz.iw-erp.de/api/invoice/product_label/garan_pictogram/42'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);Lädt ein Etikett eines Produkts hoch (ersetzt es). Multipart-Formular `attachment[file]`, optional `attachment[producerGuaranteeYears]` (z. B. „5“ oder „2,5“).
POST/api/attachments/product_labels/{identifier}/{labelType}
Pfad-Parameter
identifierPflichtstring | Beliebige eindeutige Produktkennung |
labelTypePflichtstring | energy_label | garan_label | garan_label_pictogram |
Request-Body multipart/form-data
attachment[file]string (binary)Etikettendatei: png, jpeg, webp, svg, gif oder pdf, max. 20 MB
attachment[producerGuaranteeYears]stringOptionale Herstellergarantie in Jahren, ganze Jahre oder Schritte von 0,5
Antworten
200Lädt ein Produktetikett hoch und gibt das Produkt zurückPredefinedBillingItem
Felder anzeigen (53)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
Felder anzeigen (12)
idintegerPrimärschlüssel des Abrechnungspositionstyps. Interne ID.
namestringName des Abrechnungspositionstyps.
fixed_price_addon_one_namestringName des ersten Festpreis-Zusatzes.
fixed_price_addon_two_namestringName des zweiten Festpreis-Zusatzes.
fixed_price_addon_one_name_personstringName des ersten Festpreis-Zusatzes für Personen.
fixed_price_addon_two_name_personstringName des zweiten Festpreis-Zusatzes für Personen.
categorystringPflichtKategorie des Abrechnungspostentyps.
Erlaubt:
projectsubscriptionbookableeventshippinglocationtypestringPflichtArt des Abrechnungspositionstyps.
Erlaubt:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringEinheit des Abrechnungspositionstyps, zum Beispiel Stück oder Stunde.
force_repeatingbooleanEinträge dieses Typs wiederholen sich immer.
can_repeatbooleanEinträge dieses Typs können sich wiederholen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
Felder anzeigen (9)
idintegerPrimärschlüssel der Wiederholung. Interne ID.
namestringName der Wiederholung, zum Beispiel monatlich.
oncebooleanDie Wiederholung findet nur einmal statt.
allow_partial_on_eq_start_billingbooleanErlaubt Teilabrechnung, wenn Beginn und Abrechnungsdatum gleich sind. Wird vor allem für die erste Abrechnung eines Jahresvertrags verwendet
date_stringstringDatumsmuster der Wiederholung als Text.
tolerancenumber (float)Toleranz in Tagen um das Wiederholungsdatum.
deletedbooleanDie Wiederholung wird gelöscht.
rounding_stepsintegerSchritte, mit denen die Wiederholung gerundet wird.
month_factorintegerAnzahl der Monate zwischen zwei Wiederholungen.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
Felder anzeigen (6)
idintegerPrimärschlüssel des Zugriffs-Tags. Interne ID, die als Referenz in den Zugriffsrechten verwendet wird.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
baseBookableBaseBookable3Felder anzeigen (50)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
ucatsarray<UnifiedCategory16>Vereinheitlichte Kategorien des Datensatzes.
secondaryBaseBookableBaseBookable3Felder anzeigen (50)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
ucatsarray<UnifiedCategory16>Vereinheitlichte Kategorien des Datensatzes.
baseEventBaseEvent7Felder anzeigen (22)
ticketSeatingPlanIdintegerID des Sitzplans, auch für die öffentliche Serialisierung und die Kunden-Serialisierung.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimärschlüssel der Veranstaltung. Interne ID.
tokenstringÖffentlicher Token der Veranstaltung. In Links und QR-Codes anstelle der ID verwendet.
moments_modestringSteuert die Funktion Veranstaltungsmomente (digitales Gästebuch): DISABLED = Funktion aus, PARTICIPANTS_ONLY = nur über teilnehmergebundene Momenten-Token, ALL = zusätzlich über das anonyme Momenten-Token der Veranstaltung zugänglich
moments_designstringVisuelles Design der Momente-Seiten (digitales Gästebuch) und Exporte.
public_keywordsstringSchlüsselwörter, die in der öffentlichen Event-Liste angezeigt werden.
public_subtitlestringUntertitel, der in der öffentlichen Veranstaltungsliste angezeigt wird.
event_typestringArt des Events, zum Beispiel Kurs, Fahrt oder Turnier.
age_groupstringAltersgruppe, für die die Veranstaltung gedacht ist, zum Beispiel Kinder oder Erwachsene.
min_ageintegerMindestalter der Teilnehmenden in Jahren.
max_ageintegerMaximales Alter der Teilnehmer in Jahren.
min_age_monthsintegerMindestalter der Teilnehmenden in Monaten, für Veranstaltungen für Säuglinge.
max_age_monthsintegerMaximales Alter der Teilnehmer in Monaten, für Events für Säuglinge.
min_grade_levelintegerMindestschulstufe der Teilnehmenden.
max_grade_levelintegerMaximale Klassenstufe der Teilnehmer.
age_toleranceintegerJahre, um die Teilnehmende außerhalb der Altersspanne liegen dürfen und sich dennoch anmelden können.
event_people_limitintegermaximale Anzahl Personen, die an der Veranstaltung teilnehmen können
- … 78 weitere Felder
- … 45 weitere Felder
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42 \
--header 'content-type: multipart/form-data' \
--header 'x-iw-jwt-token: <TOKEN>' \
--form attachment[file]='@datei.pdf'const form = new FormData();
form.append('attachment[file]', 'datei.pdf');
const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
options.body = form;
fetch('https://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42"
files = { "attachment[file]": ("datei.pdf", open("datei.pdf", "rb"), "application/pdf") }
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, files=files, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42', [
'multipart' => [
[
'name' => 'attachment[file]',
'filename' => 'datei.pdf',
'contents' => null,
'headers' => [
'Content-Type' => 'application/pdf'
]
]
]
'headers' => [
'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://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new MultipartFormDataContent
{
new StringContent("")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/pdf"),
ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "attachment[file]",
FileName = "datei.pdf",
}
}
},
},
};
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("multipart/form-data; boundary=---011000010111000001101001");
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachment[file]\"; filename=\"datei.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n-----011000010111000001101001--");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/attachments/product_labels/42/42"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachment[file]\"; filename=\"datei.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_product_label_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingProductLabelController.upload('42', '42', Stream<List<int>>.fromJson({}), 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"
}Automatischer Abgleich beim Upload: Der Dateiname nennt das Produkt (SKU, EAN / Barcode, Kurzkennung, ...) und optional den Etikettentyp (`..._piktogramm.png`, Standard `attachment[labelType]`, sonst das GARAN-Etikett). Das Etikett wird verknüpft, wenn genau ein Produkt passt und es noch kein hochgeladenes Etikett dieses Typs hat – ein vorhandenes Etikett wird nie ersetzt. Geschäftliche Ergebnisse (kein Produkt, mehrdeutig, Etikett vorhanden, ungültige Datei) werden mit 200 und einem Status beantwortet.
POST/api/attachments/product_labels/auto_match
Multipart-Formular attachment[file], optional attachment[labelType].
Request-Body multipart/form-data
attachment[file]string (binary)Etikettendatei, benannt nach dem Produkt: png, jpeg, webp, svg, gif oder pdf, max. 20 MB
attachment[labelType]stringEtikettentyp, wenn der Dateiname keinen nennt: energy_label | garan_label | garan_label_pictogram (Standard garan_label)
Antworten
200Ergebnis des Abgleichs: filename, status (linked | label_exists | not_found | ambiguous | error), matched, label_type, product_id, product_name, candidates, messageobject
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match \
--header 'content-type: multipart/form-data' \
--header 'x-iw-jwt-token: <TOKEN>' \
--form attachment[file]='@datei.pdf'const form = new FormData();
form.append('attachment[file]', 'datei.pdf');
const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
options.body = form;
fetch('https://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match"
files = { "attachment[file]": ("datei.pdf", open("datei.pdf", "rb"), "application/pdf") }
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, files=files, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match', [
'multipart' => [
[
'name' => 'attachment[file]',
'filename' => 'datei.pdf',
'contents' => null,
'headers' => [
'Content-Type' => 'application/pdf'
]
]
]
'headers' => [
'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://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new MultipartFormDataContent
{
new StringContent("")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/pdf"),
ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "attachment[file]",
FileName = "datei.pdf",
}
}
},
},
};
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("multipart/form-data; boundary=---011000010111000001101001");
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachment[file]\"; filename=\"datei.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n-----011000010111000001101001--");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/attachments/product_labels/auto_match"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachment[file]\"; filename=\"datei.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
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 mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_product_label_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingProductLabelController.autoMatchUpload(Stream<List<int>>.fromJson({}), 42, '…');
if (result.success) {
print(result.data);
}{}Lädt ein Etikett eines Produkts hoch (ersetzt es). Multipart-Formular `attachment[file]`, optional `attachment[producerGuaranteeYears]` (z. B. „5“ oder „2,5“).
POST/api/invoice/predefinedbillingitems/{identifier}/label/{labelType}
Pfad-Parameter
identifierPflichtstring | Beliebige eindeutige Produktkennung |
labelTypePflichtstring | energy_label | garan_label | garan_label_pictogram |
Request-Body multipart/form-data
attachment[file]string (binary)Etikettendatei: png, jpeg, webp, svg, gif oder pdf, max. 20 MB
attachment[producerGuaranteeYears]stringOptionale Herstellergarantie in Jahren, ganze Jahre oder Schritte von 0,5
Antworten
200Lädt ein Produktetikett hoch und gibt das Produkt zurückPredefinedBillingItem
Felder anzeigen (53)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
Felder anzeigen (12)
idintegerPrimärschlüssel des Abrechnungspositionstyps. Interne ID.
namestringName des Abrechnungspositionstyps.
fixed_price_addon_one_namestringName des ersten Festpreis-Zusatzes.
fixed_price_addon_two_namestringName des zweiten Festpreis-Zusatzes.
fixed_price_addon_one_name_personstringName des ersten Festpreis-Zusatzes für Personen.
fixed_price_addon_two_name_personstringName des zweiten Festpreis-Zusatzes für Personen.
categorystringPflichtKategorie des Abrechnungspostentyps.
Erlaubt:
projectsubscriptionbookableeventshippinglocationtypestringPflichtArt des Abrechnungspositionstyps.
Erlaubt:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringEinheit des Abrechnungspositionstyps, zum Beispiel Stück oder Stunde.
force_repeatingbooleanEinträge dieses Typs wiederholen sich immer.
can_repeatbooleanEinträge dieses Typs können sich wiederholen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
Felder anzeigen (9)
idintegerPrimärschlüssel der Wiederholung. Interne ID.
namestringName der Wiederholung, zum Beispiel monatlich.
oncebooleanDie Wiederholung findet nur einmal statt.
allow_partial_on_eq_start_billingbooleanErlaubt Teilabrechnung, wenn Beginn und Abrechnungsdatum gleich sind. Wird vor allem für die erste Abrechnung eines Jahresvertrags verwendet
date_stringstringDatumsmuster der Wiederholung als Text.
tolerancenumber (float)Toleranz in Tagen um das Wiederholungsdatum.
deletedbooleanDie Wiederholung wird gelöscht.
rounding_stepsintegerSchritte, mit denen die Wiederholung gerundet wird.
month_factorintegerAnzahl der Monate zwischen zwei Wiederholungen.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
Felder anzeigen (6)
idintegerPrimärschlüssel des Zugriffs-Tags. Interne ID, die als Referenz in den Zugriffsrechten verwendet wird.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
baseBookableBaseBookable3Felder anzeigen (50)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
ucatsarray<UnifiedCategory16>Vereinheitlichte Kategorien des Datensatzes.
secondaryBaseBookableBaseBookable3Felder anzeigen (50)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
ucatsarray<UnifiedCategory16>Vereinheitlichte Kategorien des Datensatzes.
baseEventBaseEvent7Felder anzeigen (22)
ticketSeatingPlanIdintegerID des Sitzplans, auch für die öffentliche Serialisierung und die Kunden-Serialisierung.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimärschlüssel der Veranstaltung. Interne ID.
tokenstringÖffentlicher Token der Veranstaltung. In Links und QR-Codes anstelle der ID verwendet.
moments_modestringSteuert die Funktion Veranstaltungsmomente (digitales Gästebuch): DISABLED = Funktion aus, PARTICIPANTS_ONLY = nur über teilnehmergebundene Momenten-Token, ALL = zusätzlich über das anonyme Momenten-Token der Veranstaltung zugänglich
moments_designstringVisuelles Design der Momente-Seiten (digitales Gästebuch) und Exporte.
public_keywordsstringSchlüsselwörter, die in der öffentlichen Event-Liste angezeigt werden.
public_subtitlestringUntertitel, der in der öffentlichen Veranstaltungsliste angezeigt wird.
event_typestringArt des Events, zum Beispiel Kurs, Fahrt oder Turnier.
age_groupstringAltersgruppe, für die die Veranstaltung gedacht ist, zum Beispiel Kinder oder Erwachsene.
min_ageintegerMindestalter der Teilnehmenden in Jahren.
max_ageintegerMaximales Alter der Teilnehmer in Jahren.
min_age_monthsintegerMindestalter der Teilnehmenden in Monaten, für Veranstaltungen für Säuglinge.
max_age_monthsintegerMaximales Alter der Teilnehmer in Monaten, für Events für Säuglinge.
min_grade_levelintegerMindestschulstufe der Teilnehmenden.
max_grade_levelintegerMaximale Klassenstufe der Teilnehmer.
age_toleranceintegerJahre, um die Teilnehmende außerhalb der Altersspanne liegen dürfen und sich dennoch anmelden können.
event_people_limitintegermaximale Anzahl Personen, die an der Veranstaltung teilnehmen können
- … 78 weitere Felder
- … 45 weitere Felder
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42 \
--header 'content-type: multipart/form-data' \
--header 'x-iw-jwt-token: <TOKEN>' \
--form attachment[file]='@datei.pdf'const form = new FormData();
form.append('attachment[file]', 'datei.pdf');
const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
options.body = form;
fetch('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42"
files = { "attachment[file]": ("datei.pdf", open("datei.pdf", "rb"), "application/pdf") }
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, files=files, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42', [
'multipart' => [
[
'name' => 'attachment[file]',
'filename' => 'datei.pdf',
'contents' => null,
'headers' => [
'Content-Type' => 'application/pdf'
]
]
]
'headers' => [
'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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new MultipartFormDataContent
{
new StringContent("")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/pdf"),
ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "attachment[file]",
FileName = "datei.pdf",
}
}
},
},
};
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("multipart/form-data; boundary=---011000010111000001101001");
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachment[file]\"; filename=\"datei.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n-----011000010111000001101001--");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachment[file]\"; filename=\"datei.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
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 mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final request = http.MultipartRequest('POST', Uri.parse('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42'));
request.headers['x-iw-jwt-token'] = '<TOKEN>';
request.files.add(await http.MultipartFile.fromPath('attachment[file]', 'datei.pdf'));
final response = await request.send();
print(await response.stream.bytesToString());{
"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"
}Ein Etikett eines Produkts entfernen (Datei und Anhang werden gelöscht).
DELETE/api/invoice/predefinedbillingitems/{identifier}/label/{labelType}
Pfad-Parameter
identifierPflichtstring | Beliebige eindeutige Produktkennung |
labelTypePflichtstring | energy_label | garan_label | garan_label_pictogram |
Antworten
200Entfernt ein Produktetikett und gibt das Produkt zurück.PredefinedBillingItem
Felder anzeigen (53)
idintegerPrimärschlüssel der zugeordneten Abrechnungsposition. Interne ID.
namestringPflichtName der Abrechnungsposition.
descriptionstringPflichtBeschreibung des Abrechnungspostens, die dem Kunden angezeigt wird.
internal_descriptionstringInterne Beschreibung der Abrechnungsposition, wird dem Kunden nicht angezeigt.
fixed_hoursnumber (float)Feste Anzahl abgerechneter Stunden.
fixed_pricenumber (float)Fester abgerechneter Preis.
fixed_price_base_unitnumber (float)Basiseinheit für den Festpreis.
price_fixed_hoursnumber (float)Preis für die Pauschalstunden.
price_additional_hoursnumber (float)Preis für jede weitere Stunde.
name_additional_hoursstringName des Zusatzstunden-Postens.
description_additional_hoursstringBeschreibung des Zusatzstundenpostens.
time_billed_on_ticket_closebooleanOb die Zeit beim Schließen des Tickets abgerechnet wird.
billing_typeBillingItemTypeTyp der Abrechnungsposition.
Felder anzeigen (12)
idintegerPrimärschlüssel des Abrechnungspositionstyps. Interne ID.
namestringName des Abrechnungspositionstyps.
fixed_price_addon_one_namestringName des ersten Festpreis-Zusatzes.
fixed_price_addon_two_namestringName des zweiten Festpreis-Zusatzes.
fixed_price_addon_one_name_personstringName des ersten Festpreis-Zusatzes für Personen.
fixed_price_addon_two_name_personstringName des zweiten Festpreis-Zusatzes für Personen.
categorystringPflichtKategorie des Abrechnungspostentyps.
Erlaubt:
projectsubscriptionbookableeventshippinglocationtypestringPflichtArt des Abrechnungspositionstyps.
Erlaubt:
subscriptionbookable-hourevent-fixedslahoursdaysfixedinternalunitstringEinheit des Abrechnungspositionstyps, zum Beispiel Stück oder Stunde.
force_repeatingbooleanEinträge dieses Typs wiederholen sich immer.
can_repeatbooleanEinträge dieses Typs können sich wiederholen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
buying_pricenumber (float)Einkaufspreis der Position.
recurrenceCRMRecurrenceWiederholung, der die Abrechnungsposition folgt.
Felder anzeigen (9)
idintegerPrimärschlüssel der Wiederholung. Interne ID.
namestringName der Wiederholung, zum Beispiel monatlich.
oncebooleanDie Wiederholung findet nur einmal statt.
allow_partial_on_eq_start_billingbooleanErlaubt Teilabrechnung, wenn Beginn und Abrechnungsdatum gleich sind. Wird vor allem für die erste Abrechnung eines Jahresvertrags verwendet
date_stringstringDatumsmuster der Wiederholung als Text.
tolerancenumber (float)Toleranz in Tagen um das Wiederholungsdatum.
deletedbooleanDie Wiederholung wird gelöscht.
rounding_stepsintegerSchritte, mit denen die Wiederholung gerundet wird.
month_factorintegerAnzahl der Monate zwischen zwei Wiederholungen.
deletedbooleanOb die Abrechnungsposition gelöscht ist.
condition_date_afterstring (date-time)Der Posten gilt nur für Termine nach diesem Datum.
condition_date_beforestring (date-time)Der Posten gilt nur für Termine vor diesem Datum.
condition_country_codestringLändercode, für den der Posten gilt.
condition_zip_code_fromstringBeginn des PLZ-Bereichs, für den die Position gilt.
condition_zip_code_tostringEnde des PLZ-Bereichs, auf den der Posten zutrifft.
condition_time_after_hourintegerDer Posten gilt nur ab dieser Tagesstunde.
condition_max_lengthintegerMaximale Länge, für die der Eintrag gilt.
condition_time_before_hourintegerDer Posten gilt nur bis zu dieser Tagesstunde.
condition_sub_access_tagAccessTagZugriffs-Tag, das ein Abonnement haben muss, damit der Eintrag gilt.
Felder anzeigen (6)
idintegerPrimärschlüssel des Zugriffs-Tags. Interne ID, die als Referenz in den Zugriffsrechten verwendet wird.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
condition_show_despite_missing_access_tagbooleanOb die Position auch dann angezeigt wird, wenn das Zugriffs-Tag fehlt.
condition_sub_free_logicstringFreie Bedingungslogik für das Abo.
fixed_price_logicstringFreie Logik, die den Festpreis berechnet.
sub_self_service_addbooleanOb Mitglieder das Abonnement selbst hinzufügen können.
sub_self_service_deletebooleanOb Mitglieder das Abonnement selbst kündigen können.
sub_self_service_add_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst hinzufügen.
sub_self_service_delete_fixed_pricenumber (float)Fester Preis, der berechnet wird, wenn Mitglieder das Abo selbst kündigen.
sub_pre_paidbooleanOb das Abonnement im Voraus bezahlt wird.
sub_only_billed_after_startbooleanOb das Abonnement erst nach seinem Beginn abgerechnet wird.
sub_people_age_group_oneintegerObere Altersgrenze der Altersgruppe eins.
sub_people_age_group_one_discountintegerRabatt in Prozent für Altersgruppe eins.
sub_people_age_group_one_freeintegerAnzahl der freien Plätze für Altersgruppe eins.
sub_people_age_group_twointegerObere Altersgrenze der Altersgruppe zwei.
sub_people_age_group_two_discountintegerRabatt in Prozent für Altersgruppe zwei.
sub_people_age_group_two_freeintegerAnzahl der freien Plätze für Altersgruppe zwei.
sub_people_age_group_threeintegerObere Altersgrenze der Altersgruppe drei.
sub_people_age_group_three_discountintegerRabatt in Prozent für Altersgruppe drei.
sub_people_age_group_three_freeintegerAnzahl der freien Plätze für Altersgruppe drei.
sub_people_age_group_fourintegerObere Altersgrenze der Altersgruppe vier.
sub_people_age_group_four_discountintegerRabatt in Prozent für Altersgruppe vier.
sub_people_age_group_four_freeintegerAnzahl der freien Plätze für Altersgruppe vier.
price_is_bruttobooleanOb die Preise Bruttopreise inklusive Steuer sind.
skustringArtikelnummer (Stock Keeping Unit)
barcodestringBarcode (ISBN, UPC, GTIN usw.)
baseBookableBaseBookable3Felder anzeigen (50)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
ucatsarray<UnifiedCategory16>Vereinheitlichte Kategorien des Datensatzes.
secondaryBaseBookableBaseBookable3Felder anzeigen (50)
ticketSeatingPlanIdintegerID des Platzplans des Raums, auch für die öffentliche Serialisierung.
idintegerPrimärschlüssel der buchbaren Ressource. Interne ID.
tokenstringÖffentlicher Token der buchbaren Ressource. In Links anstelle der ID verwendet.
bookable_typestringArt der Buchungsressource, zum Beispiel Raum, Platz oder Fahrzeug.
floor_levelstringEtage, auf der das Buchbare liegt.
floor_sizeintegerGrundfläche in Quadratmetern.
pets_allowedbooleanHaustiere sind erlaubt.
barrier_freebooleanDer Buchungsgegenstand ist barrierefrei.
cargo_volumeintegerLadevolumen in Litern.
fuel_typestringKraftstoffart des Fahrzeugs.
seating_capacityintegerAnzahl der Plätze.
has_wait_listbooleanDer Buchungsgegenstand hat eine Warteliste, sobald er voll belegt ist.
booking_limitintegerMaximale Anzahl Buchungen.
billing_modestringWie Buchungen zu diesem Buchbaren abgerechnet werden: BILLING_MODE_UPFRONT (null = vorab, Rechnung zum Buchungszeitpunkt) oder BILLING_MODE_USAGE (kostenlose Reservierung, nachgelagerte Abrechnung anhand der realen Nutzungsdaten) Auch im Standard: Die Mitglieder-App zeigt "Nutzung erfassen" nur für nutzungsabgerechnete Buchbare an.
max_active_bookings_per_userintegerMaximale Anzahl aktiver (zukünftiger, nicht stornierter) Selbstbedienungsbuchungen, die eine Person gleichzeitig für dieses buchbare Objekt halten darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
max_advance_booking_hoursintegerMaximale Anzahl Stunden, die eine Selbstbedienungsbuchung in der Zukunft beginnen darf. Null = unbegrenzt. Admin-Buchungen sind nicht begrenzt.
inventory_managedbooleanAls Inventar erfasst (Inventar-Ausleihe): Die Geschäftsstelle übergibt den Eintrag und nimmt ihn zurück, mit Kaution und Erinnerungen. Wird nur verwendet, solange die Einstellung event_inventory_enabled aktiv ist.
inventory_depositnumber (float)Kaution pro Stück, die bei der Übergabe verlangt wird. Null = keine Kaution.
require_addressbooleanDie Adresse muss bei der Buchung eingegeben werden.
require_contactbooleanKontaktdaten müssen bei der Buchung eingegeben werden.
require_billingbooleanBeim Buchen müssen Abrechnungsdaten eingegeben werden.
require_booking_titlebooleanBeim Buchen muss ein Titel eingegeben werden.
allow_direct_billingbooleanrequire_agebooleanDas Alter muss bei der Buchung eingegeben werden.
counter_update_modestringWie die Nutzungszähler des Buchbaren aktualisiert werden.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
namestringName der Einheit.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
short_identifierstringKurzkennung der Entität.
image_urlstringURL des Bildes des Datensatzes.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
ucatsarray<UnifiedCategory16>Vereinheitlichte Kategorien des Datensatzes.
baseEventBaseEvent7Felder anzeigen (22)
ticketSeatingPlanIdintegerID des Sitzplans, auch für die öffentliche Serialisierung und die Kunden-Serialisierung.
bib_numbers_enabledbooleantiming_enabledbooleanbaseBookableBaseBookable3secondaryBaseBookableBaseBookable3idintegerPrimärschlüssel der Veranstaltung. Interne ID.
tokenstringÖffentlicher Token der Veranstaltung. In Links und QR-Codes anstelle der ID verwendet.
moments_modestringSteuert die Funktion Veranstaltungsmomente (digitales Gästebuch): DISABLED = Funktion aus, PARTICIPANTS_ONLY = nur über teilnehmergebundene Momenten-Token, ALL = zusätzlich über das anonyme Momenten-Token der Veranstaltung zugänglich
moments_designstringVisuelles Design der Momente-Seiten (digitales Gästebuch) und Exporte.
public_keywordsstringSchlüsselwörter, die in der öffentlichen Event-Liste angezeigt werden.
public_subtitlestringUntertitel, der in der öffentlichen Veranstaltungsliste angezeigt wird.
event_typestringArt des Events, zum Beispiel Kurs, Fahrt oder Turnier.
age_groupstringAltersgruppe, für die die Veranstaltung gedacht ist, zum Beispiel Kinder oder Erwachsene.
min_ageintegerMindestalter der Teilnehmenden in Jahren.
max_ageintegerMaximales Alter der Teilnehmer in Jahren.
min_age_monthsintegerMindestalter der Teilnehmenden in Monaten, für Veranstaltungen für Säuglinge.
max_age_monthsintegerMaximales Alter der Teilnehmer in Monaten, für Events für Säuglinge.
min_grade_levelintegerMindestschulstufe der Teilnehmenden.
max_grade_levelintegerMaximale Klassenstufe der Teilnehmer.
age_toleranceintegerJahre, um die Teilnehmende außerhalb der Altersspanne liegen dürfen und sich dennoch anmelden können.
event_people_limitintegermaximale Anzahl Personen, die an der Veranstaltung teilnehmen können
- … 78 weitere Felder
- … 45 weitere Felder
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/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://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.delete(
Uri.parse('https://eure-instanz.iw-erp.de/api/invoice/predefinedbillingitems/42/label/42'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
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"
}