addLeadOffer
Angebot erstellen (Items + Template → PDF + History-Eintrag)
Stateless: alle Items werden im Call übergeben, PDF wird via TBS+LibreOffice generiert und als History-Eintrag (type=OFF) gespeichert. Template-IDs via getReferenceData(kinds=['offerTemplates']).
HTTP Request
https://dev.vitabyte.ch/v1/sales/addLeadOffer
Request Parameters
Pro Item genau ein Identifier: barcode (Artikelstamm), erfCode (Inventar-Kürzel) oder itemId (Inventar-ID). Optional je Item: anzahl (Default 1), preis und bezeichnung (überschreiben die Werte aus der Datenbank) sowie zusatz als Freitext.
| Parameter | Pflicht | Typ | Beispiel / Default |
|---|---|---|---|
leadId
|
required | integer | |
templateId
|
required | string | |
offerDate
Default: heute |
optional | string | |
items
|
required | array |
Response Parameters
Fehler: HTTP 400 bei fehlender leadId, templateId oder leeren Items; HTTP 422 bei Template not found. oder wenn ein Item nicht aufgelöst werden kann.
| Field | Typ | Beschreibung |
|---|---|---|
historyId |
integer | History-Eintrag des Angebots |
pdfMd5 |
string | Identifier des generierten PDFs |
totalAmount |
number | Summe des Angebots |
Demo
Beispiel-Response handgepflegt — die OpenAPI-Spec liefert für diesen Endpoint noch kein Response-Example.
POST
https://dev.vitabyte.ch/v1/sales/addLeadOffer
{
"leadId": 12345,
"templateId": "6f1c9a2be4d80f3a5c7b19e04d2a8f31",
"offerDate": "2026-05-30",
"items": [
{
"barcode": "1234567890123",
"anzahl": 2,
"preis": 89.5,
"zusatz": "Sonderpreis"
},
{
"erfCode": "K01",
"anzahl": 1,
"bezeichnung": "Konsultation"
},
{
"itemId": 42,
"anzahl": 1
}
]
}
{
"status": true,
"msg": "Success",
"result": {
"historyId": 4567,
"pdfMd5": "abc123def4567890abc123def4567890",
"totalAmount": 268.5
}
}