- Dealer-Management-System (DMS)
- Ein Dealer-Management-System ist die zentrale Software eines Autohauses: Fahrzeugbestand, Kundenakte, Werkstattauftrag, Teiledienst, Rechnung und die Ausspielung an die Börsen laufen darin zusammen. Genutzt wird es von Verkauf, Serviceannahme und Buchhaltung, angebunden ist es an Börsen, Herstellerportale und Werkstattsysteme. Diese Seite richtet sich an die Anbieter solcher Systeme und beschreibt, wo die Schnittstelle von tapinomahub das Abtippen aus dem Fahrzeugschein ersetzt und was zurückkommt.
Wo im Prozess Daten fehlen
Ein DMS legt Fahrzeuge an vielen Stellen an: bei der Inzahlungnahme, beim Gebrauchtwagenankauf, bei der Serviceannahme eines Fremdfahrzeugs, beim Import einer Flotte. Jedes Mal liegt eine Zulassungsbescheinigung auf dem Tresen, und jedes Mal überträgt jemand ihre Felder von Hand.
- Inzahlungnahme. Der Kunde sitzt daneben, der Verkäufer tippt Fahrgestellnummer, Erstzulassung und Schlüsselnummern in die Bewertungsmaske. Ein Zahlendreher in der VIN fällt erst auf, wenn die Börse den Datensatz zurückweist.
- Technische Akte. Was der Schein nicht ausweist — Getriebe, Antrieb, Aufbau — wird aus dem Gedächtnis, von einer Herstellerseite oder gar nicht ergänzt. Bei Fremdmarken fehlt der Herstellerzugang ganz.
- Inseratstext. Titel und Beschreibung entstehen aus Textbausteinen, die zum Fahrzeug passen können oder nicht.
- Serviceannahme. Welche Rückrufmaßnahmen für die Baureihe veröffentlicht sind, sucht der Serviceberater in einem Herstellerportal außerhalb des DMS — bei Fremdfahrzeugen oft gar nicht. Ob eine Maßnahme am einzelnen Fahrzeug erledigt ist, beantwortet auch mit Schnittstelle nur das Herstellerportal.
- Teilebestellung. Ob eine OE-Nummer zu genau diesem Fahrzeug passt, entscheidet der Teiledienst nach Katalog und Erfahrung. Bei Bauteilen mit vielen Varianten ist das eine häufige Quelle für Fehlbestellungen.
Was die Schnittstelle liefert
| Prozessschritt | Aufruf | Ergebnis |
|---|---|---|
| Fahrzeugschein auslesen | POST /scanner/document/registration | Strukturierte Felder des deutschen Fahrzeugscheins aus Bild oder PDF, Qualitätsstufe standard |
| Fahrzeugakte in einem Aufruf | POST /vehicles/intake | Dokumentfelder, abgeglichene Fahrzeugdaten mit tapiId, optional Zustandsbericht aus bis zu 5 Rundgang-Fotos |
| Fahrzeugabgleich mit Provider 1 | POST /vin/redirect-sessions | Einmalige Browser-Session mit redirectUrl; Rücksprung auf returnUrl mit status, tapiId und state |
| Fahrzeugdaten lesen | GET /vehicles/{tapiId} | Technische Fahrzeugdaten zur tapiId, im zuvor bezahlten VIN-Ablauf enthalten, ohne VIN und ohne Ausstattung |
| Inseratstext erzeugen | POST /vehicles/{tapiId}/listing | Titel, Beschreibung und Ausstattungs-Highlights in de, en oder fr, ohne Preis- und Zustandsaussagen |
| Rückrufe abgleichen | GET /recalls/vehicles/{vin} | Maßnahmen zur Baureihe: Aktenzeichen, Register, Mangel, Abhilfe, Stop-Drive; nur für zuvor abgeglichene VIN, sonst 404 vin_not_resolvable |
| Teile vor der Bestellung prüfen | POST /vin/cart-check | Bis zu 30 OE-Positionen mit fits je Position; complete sagt, ob ein negatives Ergebnis abschließend ist |
Ein Ablauf von Anfang bis Ende
- Schein fotografieren. Der Verkäufer fotografiert den Fahrzeugschein in der DMS-App. Das DMS legt die Datei auf dem eigenen Server ab und übergibt ihre Adresse als
fileUrlanPOST /vehicles/intake; Rundgang-Fotos, bis zu 5 Aufnahmen, gehen alsphotoUrlsmit. - Antwort in die Akte schreiben. Dokumentfelder füllen Fahrgestellnummer, Erstzulassung und Typangaben; Fahrzeugdaten samt
tapiIdfüllen die technische Akte; der Zustandsbericht wird angehängt.componentssagt je Bestandteil, ob er geliefert wurde; ein nicht gelieferter lässt seine Felder leer und wird anteilig erstattet. Der Abgleich im Intake läuft fest über Provider 2;providerin der Antwort ist immer 2. - Provider-1-Abgleich als Alternative. Soll das Fahrzeug stattdessen über Provider 1 abgeglichen werden, antwortet
GET /vin/{vin}/vehicleeinem Drittsystem mitredirect_required. Das DMS erstellt dann serverseitig mitPOST /vin/redirect-sessionseine Session ausvin, der absoluten HTTPS-returnUrlund einemstatefür den eigenen Vorgang und leitet den Verkäufer auf dieredirectUrl. - Rücksprung verarbeiten. Nach dem Abgleich in der tapinoma-Oberfläche kommt der Verkäufer auf die
returnUrlzurück — mitstatus=completed,tapiIdundstate, oder mitstatus=cancelled. Fahrzeug-, Ausstattungs- oder Zugangsdaten stehen nie im Redirect; die Session verfällt nach zehn Minuten. - Fahrzeugdaten nachladen. Mit der gespeicherten
tapiIdruft das DMSGET /vehicles/{tapiId}als Bestandteil des zuvor bezahlten VIN-Ablaufs ab — ohne VIN und ohne Ausstattung. - Inserat erzeugen.
POST /vehicles/{tapiId}/listingmitlanguageund optionalen Händlernotizen innotesliefert Titel, Beschreibung und Ausstattungs-Highlights. Der Text erfindet keine Eigenschaften und nennt weder Preis noch Zustand. - Service vorbereiten.
GET /recalls/vehicles/{vin}listet Maßnahmen zur Baureihe aus den amtlichen Registern. Voraussetzung: Die VIN wurde zuvor überPOST /vehicles/intakeoder einen VIN-Ablauf dieses Clients abgeglichen, denn sie wird nur aus dem eigenen Bestand aufgelöst, nicht beim Lieferanten; sonst antwortet der Endpunkt mit404 vin_not_resolvable. Die kaufmännische Behandlung richtet sich nach den vor dem Auftrag angezeigten und vertraglich vereinbarten Konditionen. Ob eine Maßnahme am einzelnen Fahrzeug erledigt ist, sagt weiterhin nur der Hersteller. Vor einer Teilebestellung prüftPOST /vin/cart-checkbis zu 30 OE-Positionen gegen das Fahrzeug (mode=vehicle) oder den Typ (mode=type); bei Steuergeräten bleibt die Codierung Sache der Werkstatt, siehe Gebrauchte Steuergeräte: Codierung, Wegfahrsperre, Angebot.
curl \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: <VORGANGSNUMMER>' \
-d '{"fileUrl": "https://dms.example/scheine/4711.pdf", "photoUrls": ["https://dms.example/fotos/4711-front.jpg"]}' \
'https://api.tapinomahub.com/vehicles/intake'Der Einbau
- Schlüssel serverseitig hinterlegen. Der API-Key geht als Header
X-Api-Keyvom DMS-Backend aus und gehört in dessen Konfiguration — nie in die Browser-Oberfläche, nie in eine mobile App, nie in den Quelltext. - Einen Endpunkt wählen.
POST /vehicles/intakeist der naheliegende Einstieg, weil er die Fahrzeugaufnahme in einem Aufruf abdeckt. Wer nur den Schein lesen will, beginnt mitPOST /scanner/document/registration. - Feldzuordnung festlegen. Welches Antwortfeld landet in welchem Feld der Akte? Diese Abbildung ist die eigentliche Arbeit. Die Akte braucht zusätzlich ein Feld für die
tapiIdund einen Vermerk, welche Werte aus der Abfrage stammen. - Leerbefund und Fehler unterscheiden.
404 vehicle_not_foundist kein Fehler, sondern ein Ergebnis: nicht gefunden. Das DMS legt die Akte trotzdem an, lässt die Felder leer und erzeugt eine Nacharbeit — „kein Treffer“ erscheint dem Anwender nie als rote Fehlermeldung. Ein Verbindungsabbruch dagegen darf wiederholt werden, mit demselbenIdempotency-Key. - Lang laufende Vorgänge abholen. Antwortet ein Endpunkt mit
202, nennenLocationundRetry-AfterJob und Wartezeit. Der Status wird am Job-Endpunkt abgeholt, bei der Teileprüfung überGET /vin/cart-check/jobs/{jobId}— nicht durch einen zweiten Aufruf des Ausgangsendpunkts. - Ausrollen und beobachten. Zuerst ein Pilothaus, dann die Fläche.
GET /client/usageund der AntwortheaderX-Tapinoma-Usage-Warningzeigen den Guthabenverbrauch. Den Weg von Vertrag bis Go-live beschreibt der Integrationsleitfaden.
Worauf zu achten ist
- `Idempotency-Key` setzen. Bricht eine Verbindung ab, wiederholt das DMS den Aufruf mit demselben Schlüssel und erhält dieselbe Antwort, erkennbar am Header
X-Tapinoma-Idempotent-Replay. Ausnahme sind Aufrufe, die einen geheimen Schlüssel ausgeben (Unter-Nutzer, Partner-Workspaces): nach einem Timeout den Bestand abgleichen statt blind wiederholen. - Leere Felder leer lassen. Liefert die Antwort
null, bleibt das Feld leer — kein Standardwert, keine Ableitung aus der Weltherstellerkennung. Eine plausible Angabe im Inserat ist gefährlicher als eine sichtbare Lücke. - `tapiId` speichern. Sie ist stabil und der Schlüssel zu
GET /vehicles/{tapiId}undPOST /vehicles/{tapiId}/listing. Wer sie verliert, bezahlt den Abgleich erneut. - Schlüssel nie im Browser. Die Oberfläche spricht mit dem eigenen Backend, das Backend mit der Schnittstelle. Auch die Redirect-Session für Provider 1 entsteht serverseitig; der Browser sieht nur die
redirectUrl. - Rate-Limits je Nutzer setzen.
PUT /client/users/{clientId}/rate-limitsbegrenzt je Nutzer, Schlüssel oder Endpunkt, damit ein fehlerhafter Import nicht das Guthaben des ganzen Hauses aufbraucht. - Ergebnis prüfen lassen. Inseratstext, Rückrufliste und Passungsaussage sind Arbeitshilfen. Der Verkäufer liest den Text vor der Ausspielung, der Serviceberater prüft die baureihenbezogenen Rückrufe gegen das Herstellerportal, und
complete=falseheißt, dass ein Nein nicht abschließend ist.
Was die Schnittstelle nicht tut
Die Schnittstelle liefert keine Bewertung und kein Gutachten: Der Zustandsbericht aus POST /vehicles/intake beschreibt Sichtbares, er kalkuliert weder Reparatur noch Restwert. Sie führt keine Halterabfrage durch und gibt keine Preisgarantie — der Inseratstext nennt bewusst keinen Preis. Provider 1 ist für Drittsysteme nur über den Browser-Redirect erreichbar. Und sie verkauft keinen Datenbestand: Geschuldet ist die Abfrage beziehungsweise Analyse mit ihrem Ergebnis; die Verwendung liegt beim Autohaus. Was das Material nicht hergibt, bleibt eine Lücke — warum, steht in VIN-Abfrage in der Praxis: Ablauf, Ergebnis, Abrechnung.
Häufige Fragen
Warum antwortet `GET /vin/{vin}/vehicle` mit `redirect_required`?
Weil Provider 1 von Drittsystemen nicht direkt abgerufen werden darf. Der Abgleich läuft über eine Browser-Session aus POST /vin/redirect-sessions; beim Rücksprung erhält das DMS die tapiId. Provider 2 und 3 sind direkt abfragbar.
Kostet `GET /vehicles/{tapiId}` Guthaben?
Nein. Die technischen Fahrzeugdaten zu einer tapiId, die das DMS selbst durch einen VIN-Ablauf erhalten hat, sind in dieser bezahlten Ausgangsleistung enthalten. Sie enthalten keine VIN und keine Ausstattung.
Was passiert, wenn der Fahrzeugschein unleserlich ist?
Die nicht erkennbaren Felder bleiben leer; geraten wird nicht. Bei POST /vehicles/intake sagt components, welche Bestandteile geliefert wurden. Die durchgeführte Analyse wird berechnet; ein nicht gelieferter Bestandteil, etwa der Fahrzeugabgleich ohne lesbare VIN, wird anteilig erstattet.
Können wir die Nutzung für unsere Autohäuser bezahlen?
Ja. Beim Anlegen eines Partner-Workspace über POST /client/partner-workspaces kann der Anbieter die Kosten der freigeschalteten Endpunkte übernehmen; für bestehende Konten dient PUT /client/sponsorship-grants/{grantReference}. Gibt der Anbieter partnerTermsAllowed frei und wählt das Autohaus den Modus partner, wird jede abgedeckte Anfrage zu den Konditionen des Anbieters abgerechnet.
