Kundenfahrzeugdaten

API Dokumentation – Kundenfahrzeuge

Alle Endpunkte unter /api/customerscars/ zum Abruf, zur Suche und zur Anlage von Kundenfahrzeugen – also der Fahrzeuge, die einem Kunden gehören. Die API gibt die Daten als JSON zurück und antwortet mit den Keys „data“ (mit den Fahrzeugdaten), „status“ (1 oder 0) für den Erfolg des Abrufs sowie „message“, das ggf. eine Fehlermeldung enthält.

Authentifizierung
Alle Endpunkte erfordern den Parameter token mit dem gültigen API-Token.
Bei ungültigem Token wird {"status": 0, "message": "Invalid Token"} zurückgegeben.
Abgrenzung zu den Bestandsfahrzeugen: Kundenfahrzeuge und Fahrzeugbestand sind in CATAMA zwei getrennte Datenbestände. Diese Seite beschreibt ausschließlich die Kundenfahrzeuge. Der Fahrzeugbestand des Händlers wird über /api/vehicles/ gepflegt und ist im Artikel Bestandsfahrzeuge dokumentiert. Die Endpunkte greifen nicht ineinander: /api/vehicles/create und /api/vehicles/update wirken nicht auf Kundenfahrzeuge.
GET
/api/customerscars/list

Gibt eine paginierbare Liste der Kundenfahrzeuge zurück, inklusive Stammdaten, technischer Daten, Garantie- und Schlüsseldaten. Optional lassen sich die Daten des zugeordneten Kunden mitliefern.

Parameter

Name Typ Beschreibung
token string API-Token Pflicht
take integer Anzahl an Datensätzen, die selektiert werden sollen (nur in Kombination mit offset) optional
offset integer Angabe, ab welchem Datensatz die Datenselektion erfolgen soll (nur in Kombination mit take) optional
statusid integer Filteroption, um ggf. auch deaktivierte Fahrzeuge zu erhalten (Status: inaktiv, ID = 2). Standard: 1 optional
withcustomerdata integer 1 = Kundendaten als Objekt customer_data mitsenden, 0 = ohne (Standard) optional
branch_id integer Nur Fahrzeuge dieser Filiale. Ohne Angabe werden alle Filialen gemischt. IDs liefert /api/branches. optional
Paginierung: Ohne take und offset werden alle Fahrzeuge ausgegeben. Für große Datenmengen empfohlen: z. B. offset=0&take=50, dann offset=50&take=50 usw.
Beispiel-Aufrufe
GET /api/customerscars/list?token=IHRGEHEIMERCATAMATOKEN
    (sämtliche Kundenfahrzeuge)

GET /api/customerscars/list?token=IHRGEHEIMERCATAMATOKEN&take=50&offset=0
    (die ersten 50 Fahrzeuge)

GET /api/customerscars/list?token=IHRGEHEIMERCATAMATOKEN&statusid=2
    (nur inaktive Fahrzeuge)

GET /api/customerscars/list?token=IHRGEHEIMERCATAMATOKEN&withcustomerdata=1
    (mit den Daten des zugeordneten Kunden)

GET /api/customerscars/list?token=IHRGEHEIMERCATAMATOKEN&branch_id=2
    (nur Fahrzeuge der Filiale 2)
Erfolgreiche Antwort
{
  "data": {
    "1085": {
      "id": 1085,
      "customer_id": 200,
      "intern_id": "KFZ-001",
      "branch_id": 1,
      "fabricator_id": "3",
      "fabricator": "Volkswagen",
      "kind_id": "2",
      "name": "Golf VII",
      "modell": "1.4 TSI",
      "chassis_number": "WVWZZZ3CZWE123456",
      "plate": "B-AB 1234",
      "registration_date": "15.03.2019",
      "mileage": 85000,
      "power_ps": "150",
      "power_kw": "110",
      "cubic": "1395",
      "gas": "Benzin",
      "general_inspection": "01.03.2026",
      "nextservice_at": "01.09.2026",
      "color": "Silber metallic",
      "basic_color": "Silber",
      "category_id": "3",
      "description_html": "<p>Scheckheftgepflegt</p>",
      "..."
    },
    "1086": { "..." }
  },
  "status": 1,
  "message": "Success"
}
Reihenfolge der Felder: Die Felder je Fahrzeug werden alphabetisch sortiert ausgegeben. Verlassen Sie sich beim Auslesen auf die Feldnamen, nicht auf die Position. Der Schlüssel im data-Objekt ist die Fahrzeug-ID.

Felder im Fahrzeug-Objekt

Die folgenden 68 Felder liefern alle drei Lese-Endpunkte (list, byid, byparam) identisch. Leere Datumsfelder kommen als leerer String.

Identifikation und Fahrzeugbezeichnung (11 Felder) anzeigen
Feld Beschreibung
id Fahrzeug-ID (identisch mit dem Schlüssel im data-Objekt)
customer_id ID des zugeordneten Kunden
intern_id Interne Fahrzeugnummer
branch_id Filial-ID. IDs und Anschriften liefert /api/branches
fabricator_id Fabrikat-ID (Hersteller), IDs siehe /api/mobiles/fabricators
fabricator Fabrikatsname im Klartext, z. B. Volkswagen
kind_id Fahrzeugart (PKW, Motorrad …)
name Fahrzeugbezeichnung
modell Modell / Ausführung
chassis_number Fahrgestellnummer (VIN)
plate Kennzeichen
Technische Daten (20 Felder) anzeigen
Feld Beschreibung
registration_date Erstzulassung, Format dd.mm.YYYY
mileage Kilometerstand
power_ps Leistung in PS
power_kw Leistung in kW
cubic Hubraum in ccm
gas Kraftstoffart
emission_id Schadstoffklasse
geartype_id Getriebeart
drivetype_id Antriebsart
motor_code Motorcode
motor_type Motortyp
motor_cylinder Anzahl Zylinder
vehicle_motor Motorbezeichnung / Motorinfo
vehicle_vents Ventile
exchange_engine Austauschmotor
rate_of_rotation Drehzahl
seats Anzahl Sitzplätze
weight Gewicht
case_id Gehäuse- / Aufbaukennung
code_number Codenummer
Farben (3 Felder) anzeigen
Feld Beschreibung
color Farbe (Herstellerbezeichnung)
basic_color Grundfarbe
interiorcolor Innenausstattung / Innenfarbe
Termine und Prüfungen (7 Felder) anzeigen
Feld Beschreibung
general_inspection HU/AU, Format dd.mm.YYYY
nextservice_at Nächster Service, Format dd.mm.YYYY
handoverinspection Übergabeinspektion, Format dd.mm.YYYY
purchased_at Kaufdatum, Format dd.mm.YYYY
added_time Angelegt am, Format dd.mm.YYYY
expected_delivery_date Voraussichtliches Lieferdatum, Format dd.mm.YYYY
last_check Letzte Prüfung. Achtung: Dieses Feld wird als Rohwert geliefert, nicht als dd.mm.YYYY
Garantie und Gewährleistung (9 Felder) anzeigen
Feld Beschreibung
guaranteestart Garantie-Beginn, Format dd.mm.YYYY
guaranteeend Garantie-Ende, Format dd.mm.YYYY
warrantystart Gewährleistung-Beginn, Format dd.mm.YYYY
warrantyend Gewährleistung-Ende, Format dd.mm.YYYY
additional_warranty Zusatzgarantie akzeptiert
warrantyid ID der Garantie
warranty_elig_status_id Garantieberechtigung (Status-ID)
warranty_package_id ID des Garantiepakets
warranty_description Garantiebeschreibung, z. B. Motor, Getriebe, Differential
Schlüssel und Codes (5 Felder) anzeigen
Feld Beschreibung
key_code Schlüsselcode
vehicle_key_code Fahrzeug-Schlüsselcode
vehicle_registration_code Fahrzeugbrief-Code
keys_amount Anzahl Schlüssel
radio_code Radiocode
Service- und Werkstattinformationen (8 Felder) anzeigen
Feld Beschreibung
oil_drain_screw_torque Ölablassschrauben-Drehmoment
engine_oil_info Motoröl-Info
cambelt_info Zahnriemen-Info
service_record_info Scheckheft-Info
vehicle_title_info Info zum Fahrzeugbrief
size_info Größen-/Maßangaben
saison_info Saisonkennzeichen-Info
tax_info Steuer-Info
Kaufmännische Daten und Sonstiges (5 Felder) anzeigen
Feld Beschreibung
salestype Verkaufstyp-ID
deliverer_id Lieferanten-ID
category_id Fahrzeugkategorie(n); mehrere Werte kommagetrennt. Beim Anlegen hat category_id eine andere Bedeutung – siehe Abschnitt Warengruppe und Fahrzeugkategorie
contract_notes Vertragsnotizen
description_html Beschreibungstext, HTML
GET
/api/customerscars/byid

Ruft ein Kundenfahrzeug anhand der Fahrzeug-ID ab – oder alle Fahrzeuge eines Kunden anhand der Kunden-ID. Die Feldstruktur entspricht /api/customerscars/list.

Parameter

Name Typ Beschreibung
token string API-Token Pflicht
id integer Fahrzeug-ID (entweder id oder customerid)
customerid integer Kunden-ID – gibt alle Fahrzeuge dieses Kunden zurück (entweder id oder customerid)
statusid integer Nach Status filtern, Standard 1. Wirkt nur in Kombination mit customerid optional
withcustomerdata integer 1 = Kundendaten mitsenden (Standard 0) optional
Genau ein Suchparameter: Es muss entweder id oder customerid angegeben werden. Werden beide oder keiner übergeben, antwortet der Endpunkt mit Car or Customer ID is missing OR both provided. Beim Abruf über id greift der Statusfilter nicht – das Fahrzeug wird auch dann geliefert, wenn es inaktiv ist.
Beispiel-Aufrufe
GET /api/customerscars/byid?token=IHRGEHEIMERCATAMATOKEN&id=1085
    (ein bestimmtes Fahrzeug)

GET /api/customerscars/byid?token=IHRGEHEIMERCATAMATOKEN&customerid=200&withcustomerdata=1
    (alle Fahrzeuge des Kunden 200, mit Kundendaten)

Fehlerfälle

message Ursache
Invalid Token Token fehlt oder ist ungültig
Invalid Customer ID Zu customerid existiert kein Kunde
Car or Customer ID is missing OR both provided Weder id noch customerid übergeben – oder beide
GET
/api/customerscars/byparam

Sucht Kundenfahrzeuge anhand der Fahrgestellnummer (VIN) und/oder des Kennzeichens. Die Feldstruktur der Antwort entspricht /api/customerscars/list.

Parameter

Name Typ Beschreibung
token string API-Token Pflicht
vin string Fahrgestellnummer oder Teil davon (mindestens vin oder plate)
plate string Kennzeichen oder Teil davon (mindestens vin oder plate)
withcustomerdata integer 1 = Kundendaten mitsenden (Standard 0) optional
Suchlogik: Die Suche läuft als Teilstring-Suche und ist nicht auf Groß- und Kleinschreibung angewiesen. Werden vin und plate gemeinsam übergeben, werden Fahrzeuge gefunden, die auf einen der beiden Werte passen (ODER-Verknüpfung) – nicht auf beide zugleich. Ein Statusfilter greift hier nicht.
Beispiel-Aufrufe
GET /api/customerscars/byparam?token=IHRGEHEIMERCATAMATOKEN&vin=WVWZZZ3CZWE123456
    (Suche über die vollständige Fahrgestellnummer)

GET /api/customerscars/byparam?token=IHRGEHEIMERCATAMATOKEN&vin=ZZZ3CZ
    (Teilstring der Fahrgestellnummer)

GET /api/customerscars/byparam?token=IHRGEHEIMERCATAMATOKEN&plate=B-AB

Fehlerfälle

message Ursache
Invalid Token Token fehlt oder ist ungültig
vin or plate parameter is required Weder vin noch plate übergeben
POST
/api/customerscars/create

Legt ein neues Kundenfahrzeug an und ordnet es einem bestehenden Kunden zu. Der Kunde und das Fabrikat müssen bereits im System existieren. Die Felder werden form-encoded (application/x-www-form-urlencoded) oder als JSON-Body übergeben.

Pflichtfelder

Name Typ Beschreibung
token string API-Token Pflicht
customer_id integer ID des Kunden, dem das Fahrzeug zugeordnet wird Pflicht
fabricator integer Fabrikat-ID (nicht der Name). IDs liefert /api/mobiles/fabricators Pflicht
name string Fahrzeugbezeichnung, z. B. Golf VII Pflicht
Hersteller-IDs: Anders als bei den Bestandsfahrzeugen erwartet fabricator hier die ID und akzeptiert keinen Klartextnamen. Die gültigen IDs liefert /api/mobiles/fabricators, siehe Hersteller und Warengruppen.

Optionale Felder – Text

Name Beschreibung
intern_id Interne Fahrzeugnummer
modell Modell / Ausführung
chassis_number Fahrgestellnummer (VIN)
mobile_sign Kennzeichen (wird beim Lesen als plate geliefert)
color Farbe
color_code Farbcode
color_designation Farbbezeichnung
interiorcolor Innenausstattung / Innenfarbe
mobile_gas Kraftstoffart (wird beim Lesen als gas geliefert)
motor_code Motorcode
motor_type Motortyp
constructiontype Aufbauart
serial_number Seriennummer
tsnumber TSN / Schlüsselnummer
code_number Codenummer
key_code Schlüsselcode
vehicle_key_code Fahrzeug-Schlüsselcode
vehicle_registration_code Fahrzeugbrief-Code
mobile_desc Kurzbeschreibung
mobile_notes Notizen
description_html Beschreibungstext
HTML in Textfeldern: Alle Textfelder werden serverseitig von HTML-Tags befreit. Auch description_html nimmt beim Anlegen daher reinen Text auf.

Optionale Felder – Zahlen

Name Beschreibung
mileage Kilometerstand
power_ps Leistung in PS
power_kw Leistung in kW
cubic Hubraum in ccm
mobile_kind Fahrzeugart, Standard 2 (wird beim Lesen als kind_id geliefert)
geartype Getriebeart (wird beim Lesen als geartype_id geliefert)
drivetype Antriebsart (wird beim Lesen als drivetype_id geliefert)
emission_id Schadstoffklasse
co2 CO2-Ausstoß in g/km
seats Anzahl Sitzplätze
previous_owner Anzahl Vorbesitzer
weight Gewicht in kg
model_year Modelljahr
wheelbase Radstand
roofheight Dachhöhe
branch_id Filial-ID
category_id Warengruppe, Standard 1 – siehe Hinweis unten

Optionale Felder – Datum

Name Beschreibung
ez Erstzulassung. Formate: 15.03.2019, 03.2019 oder 2019. Ein Monat ohne Tag wird auf den 1. gesetzt, eine Jahresangabe auf den 1. Januar. Wird beim Lesen als registration_date geliefert
general_inspection HU/AU. Formate: 01.03.2026 oder 03.2026. Eine reine Jahresangabe ist hier – anders als bei ez – nicht zulässig und führt zu einem falschen Datum
Achtung, category_id bedeutet beim Anlegen etwas anderes als beim Lesen: Beim Anlegen setzt category_id die Warengruppe des Fahrzeugs (Standard 1, IDs über /api/articles/categories). Beim Lesen liefert das Feld category_id dagegen die Fahrzeugkategorie. Ein angelegtes Fahrzeug gibt also unter category_id nicht den Wert zurück, den Sie beim Anlegen gesendet haben. In der Bestandsfahrzeug-API sind diese beiden Angaben getrennt benannt (category_id = Warengruppe, vehicle_category_id = Fahrzeugkategorie).
Automatisch gesetzte Werte: Neu angelegte Kundenfahrzeuge erhalten immer den Bestandsstatus „verfügbar“ und das aktuelle Datum als Anlagedatum. Ohne mobile_kind wird die Fahrzeugart 2 gesetzt.
Beispiel-Aufruf
POST /api/customerscars/create
Content-Type: application/x-www-form-urlencoded

token=IHRGEHEIMERCATAMATOKEN
&customer_id=200
&fabricator=3
&name=Golf VII
&modell=1.4 TSI
&chassis_number=WVWZZZ3CZWE123456
&mobile_sign=B-AB 1234
&ez=15.03.2019
&general_inspection=03.2026
&mileage=85000
Erfolgreiche Antwort
{
  "data": {
    "clientmobile_id": 1085,
    "customer_id": 200,
    "fabricator": 3,
    "name": "Golf VII",
    "branch_id": 1,
    "modell": "1.4 TSI",
    "chassis_number": "WVWZZZ3CZWE123456",
    "mobile_sign": "B-AB 1234",
    "ez": "15.03.2019",
    "general_inspection": "03.2026",
    "mileage": "85000"
  },
  "status": 1,
  "message": "Success",
  "clientmobile_id": 1085
}
Zur Antwort: Das data-Objekt spiegelt die gesendeten Werte unverändert zurück, also z. B. das Datum in der übergebenen Schreibweise. branch_id steht immer in der Antwort (mitgesendet oder Standard 1). Die neue Fahrzeug-ID steht in clientmobile_id. Für die gespeicherten und normalisierten Werte rufen Sie /api/customerscars/byid?id=… ab.

Fehlerfälle

message Ursache
Invalid Token Token fehlt oder ist ungültig
customer_id is required customer_id fehlt oder ist 0
fabricator is required fabricator fehlt oder ist 0
name is required name fehlt oder ist leer
Customer not found Zu customer_id existiert kein Kunde
Fabricator not found Zu fabricator existiert kein Fabrikat
Failed to create client mobile Anlage in CATAMA fehlgeschlagen

Kundendaten-Objekt (withcustomerdata=1)

Wird bei list, byid oder byparam der Parameter withcustomerdata=1 gesetzt, enthält die Antwort zusätzlich das Objekt customer_data mit den Stammdaten des zugeordneten Kunden.

Felder im Objekt customer_data (28 Felder) anzeigen
Feld Beschreibung
id Kunden-ID
title_id Anrede-ID
title Anrede im Klartext, z. B. Herr
company Firmenname
forename Vorname
lastname Nachname
extra Zusatz
street Straße
zip PLZ
city Stadt
country Land im Klartext
phone_mobile Mobilnummer
phone_primary Telefon (privat)
phone_secondary Telefon (geschäftlich)
email_primary E-Mail
email_secondary E-Mail 2
email_tertiary E-Mail 3
kind_id Kundenart-ID
kind_name Kundenart im Klartext
type_id Kundentyp-ID
type_name Kundentyp im Klartext
type_shortcode Kundentyp-Kürzel
bank_name Bankname
bank_account_holder Kontoinhaber
bank_iban IBAN
bank_bic BIC
birthday Geburtstag, Format dd.mm.YYYY
online_invoice Online-Rechnung (0/1)
Die vollständige Dokumentation der Kundenstammdaten samt Schreib-Endpunkt steht im Artikel Kundendaten (/api/customers/).

Feldnamen beim Lesen und beim Schreiben

Einige Felder heißen beim Anlegen anders als in der Leseantwort. Diese Tabelle listet alle Abweichungen:

Beim Lesen Beim Anlegen Inhalt
plate mobile_sign Kennzeichen
registration_date ez Erstzulassung
gas mobile_gas Kraftstoffart
kind_id mobile_kind Fahrzeugart
geartype_id geartype Getriebeart
drivetype_id drivetype Antriebsart
fabricator_id fabricator Fabrikat-ID
category_id — Fahrzeugkategorie (nur lesbar)
— category_id Warengruppe (nur schreibbar)
Nur schreibbar, nicht in der Leseantwort: color_code, color_designation, serial_number, tsnumber, constructiontype, mobile_desc, mobile_notes, co2, previous_owner, model_year, wheelbase, roofheight. branch_id ist schreibbar und steht jetzt auch in den Leseantworten. Alle übrigen Felder der Leseantwort (Garantien, Schlüsseldaten, Service-Infos …) sind derzeit nicht über die API beschreibbar.
Feldnamen im Kunden-Endpunkt: /api/customers/list liefert je Kunde ein Array cars. Dort heißen dieselben Angaben noch einmal anders (fabricator_name, model, license_plate, first_registration, next_service) und das Array ist auf aktive Fahrzeuge im Bestand des Kunden gefiltert. Für die vollständigen Fahrzeugdaten nutzen Sie /api/customerscars/byid?customerid=….

Änderungen und Löschen

Für Kundenfahrzeuge gibt es derzeit keinen Endpunkt zum Ändern oder Löschen. Bestehende Fahrzeuge werden in CATAMA über die Kundenakte gepflegt. Ein Teil-Update wie bei den Bestandsfahrzeugen (/api/vehicles/update) existiert hier nicht.

Antwortformat

Alle vier Endpunkte antworten mit Content-Type: application/json; charset=utf-8 und einem Objekt mit den Schlüsseln status (1 = Erfolg, 0 = Fehler), message und data. Der HTTP-Statuscode ist immer 200, auch im Fehlerfall – maßgeblich ist das Feld status. Das unterscheidet die Kundenfahrzeug-Endpunkte von den Schreib-Endpunkten der Bestandsfahrzeuge, die zusätzlich sprechende HTTP-Codes setzen.

Bei Fragen zur API steht Ihnen unser Support jederzeit zur Verfügung.

Ähnliche Artikel