POST – Anlage von Aufträgen über API
Sie können den API-Endpunkt zur Anlage von neuen Aufträgen nutzen. Der Body wird als JSON Object erwartet.
Endpunkt:
https://ihre-catama-url/api/invoices/create
Pflichtparameter:
token – String = Token für den API-Aufruf
Header
key: Content-Type
value: application/json; charset=utf-8
Request Body:
Body:
{
„token“: „IHR_GEHEIMER_TOKEN“,
„invoice_type“: „normal“, OR internal OR warranty
„customer_id“: CUSTOMER_ID,
„typecast_id“: 1,
„mobile_id“: 1, // Bestandsfahrzeug für interne Aufträge
„vehicle_id“: 1, // Kundenfahrzeug für Aufträge
„foreign_vehicle_id“: 1, // Fremdfahrzeug-Verknüpfung
„document_date“: „14.01.2026“,
„delivery_date“: „20.01.2026“,
„intro_text“: „Vielen Dank für Ihren Auftrag“,
„foot_text“: „Zahlung innerhalb 14 Tagen ohne Abzug“,
„intern_notes“: „Interner Vermerk für das Team“,
„branch_id“: 1,
„positions“: [{
„article_id“: „text“,
„name“: „— Ersatzteile —“
},
{
„article_id“: ARTICLE_ID,
„quantity“: 1
},
{
„article_id“: „divers“,
„name“: „Thermostatgehäuse“,
„article_number“: „V40-99-1102“,
„quantity“: 1,
„price“: 47.28,
„unit“: „Stk.“
},
{
„article_id“: „text“,
„name“: „— Arbeitsleistungen —“
},
{
„article_id“: „divers“,
„name“: „Fehlerdiagnose OBD“,
„quantity“: 1,
„price“: 49.00,
„purchase_price“: 0,
„unit“: „AW“
},
{
„article_id“: „divers“,
„name“: „Montagearbeiten“,
„quantity“: 2.5,
„price“: 85.00,
„unit“: „Std.“
}]
Response:
{ „data“: {
„id“: 10516,
„intern_id“: „WA001234“,
„branch_id“: 1
},
„status“: 1,
„message“: „Invoice created successfully“
}
Divers-Positionen (
article_id: "divers") haben keinen Artikelstamm. Mit dem optionalen Feld article_number hinterlegen Sie trotzdem eine Artikelnummer – genau wie bei der manuellen Erfassung im Beleg. Diese Nummer erscheint im Beleg und wird beim Abruf über /api/invoices/list im Feld id der Position ausgegeben. Ohne article_number liefert der Abruf dort weiterhin den Platzhalter "divers".Mit dem optionalen Feld
branch_id legen Sie den Auftrag in einer bestimmten Filiale an. Die gültigen IDs liefert /api/branches. Eine unbekannte oder inaktive Filiale beantwortet die API mit HTTP 422. Fehlt branch_id, wird der Auftrag wie bisher in Filiale 1 angelegt. Die verwendete Filiale steht in der Antwort.Mit
invoice_type: "internal" legen Sie einen internen Auftrag an; customer_id kann dabei 0 sein. Beim späteren Abruf über /api/invoices/list beachten Sie bitte, dass interne Aufträge den Belegtyp -4 haben und deshalb nur mit typecastid=-4, typecastid=1,2,-4 oder typecastid=all zurückgeliefert werden.