Endpoints / addLeadOffer

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

POST https://dev.vitabyte.ch/v1/sales/addLeadOffer
Auth basicAuth apiKey

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
Payload
{
    "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
        }
    ]
}
Response
{
    "status": true,
    "msg": "Success",
    "result": {
        "historyId": 4567,
        "pdfMd5": "abc123def4567890abc123def4567890",
        "totalAmount": 268.5
    }
}