Passt das Teil zum Fahrzeug? Den Warenkorb gegen die VIN prüfenAlle Beiträge

Passt das Teil zum Fahrzeug? Den Warenkorb gegen die VIN prüfen

Fehlbestellungen sind der teuerste Teil des Teileversands. Dieser Fall zeigt, wie ein Shop den Warenkorb an der Kasse gegen das Fahrzeug prüft, statt die Rücksendung zu bezahlen.

Veröffentlicht: 2026-09-12Lesezeit: 4 mintapinomahub API & Prozesse
API & ProzesseVINAutomotive AftermarketAPIMarktplätzeTeilehandelWerkstatt

Ein Kunde legt drei Teile in den Warenkorb und tippt seine Fahrgestellnummer ein. Zwei Teile passen, eines passt zu einer anderen Motorisierung derselben Baureihe. Fällt das nicht an der Kasse auf, fällt es beim Einbau auf — und dann kostet es Versand, Rücksendung, Gutschrift und einen verärgerten Kunden.

Passt das Teil zum Fahrzeug? Der Warenkorb gegen die VINEingang: der Warenkorb eines Kunden und die Fahrgestellnummer seines Fahrzeugs 1. Nummern normalisieren (GET /parts/oe/normalize): Aus abgetippten Schreibweisen wird je Position ein lookupKey 2. Warenkorb prüfen (POST /vin/cart-check): Ein Aufruf für den ganzen Korb; 202 mit jobId nur, wenn die Fahrzeugprüfung nicht sofort abschließt 3. Ergebnis abholen (GET /vin/cart-check/jobs/{jobId}): Je Position fits, dazu complete für den ganzen Korb Ausgang: weniger Rücksendungen, weil die Fehlbestellung vor dem Versand auffällt Ein negatives Ergebnis bei complete=false ist kein abschließender Ausschluss. Es gehört als Hinweis an die Kasse, nicht in eine erfundene Zusage.Passt das Teil zum Fahrzeug? Der Warenkorb gegen die VINEingang: der Warenkorb eines Kunden und die Fahrgestellnummer seines Fahrzeugs01Nummern normalisierenGET /parts/oe/normalizeAus abgetippten Schreibweisen wird je Position ein lookupKey02Warenkorb prüfenPOST /vin/cart-checkEin Aufruf für den ganzen Korb; 202 mit jobId nur, wenn die Fahrzeugprüfung nicht sofortabschließt03Ergebnis abholenGET /vin/cart-check/jobs/{jobId}Je Position fits, dazu complete für den ganzen KorbAusgang: weniger Rücksendungen, weil die Fehlbestellung vor dem Versand auffälltEin negatives Ergebnis bei complete=false ist kein abschließender Ausschluss. Es gehört als Hinweis an dieKasse, nicht in eine erfundene Zusage.
Erst normalisieren, dann prüfen, bei einer 202-Antwort abholen. Bei unvollständiger Teileliste ist ein negatives Einzelergebnis kein abschließender Ausschluss.

Der Warenkorbcheck nimmt den ganzen Korb in einem Aufruf an. Liegt das Ergebnis sofort vor, kommt es direkt mit 200 zurück. Kann eine Fahrzeugprüfung nicht unmittelbar abgeschlossen werden, antwortet die API mit 202 und einer jobId, und das Ergebnis wird über den Status-Endpunkt abgeholt.

FlächeRollen
HubTeilehandel, Werkstatt, Plattform und Marktplatz

Was dieser Fall voraussetzt

  • Eine Fahrgestellnummer vom Kunden. Ohne sie gibt es keinen Bezug, gegen den geprüft werden kann.
  • Die Positionen des Warenkorbs als Nummern. Freitext im Warenkorb ist kein Prüfgegenstand; deshalb steht die Normalisierung am Anfang.
  • Eine Stelle in der Kasse, die auf das Ergebnis warten kann. Antwortet die API mit 202, liegt das Ergebnis erst über den Status-Endpunkt vor — die Oberfläche muss das abbilden können.
  • Eine Festlegung, was bei `fits=false` und `complete=false` passiert. Bestellung zulassen mit Hinweis oder blockieren: Das ist eine kaufmännische Entscheidung.
  • Die Berechtigung zur Fahrzeugabfrage. Mit dem Aufruf bestätigen Sie, Halter, Eigentümer oder nachweislich bevollmächtigt beziehungsweise anderweitig rechtlich berechtigt zu sein und die Fahrgestellnummer ausschließlich für den angegebenen zulässigen Zweck zu verwenden.

Der Ablauf

Die Tabelle nennt je Stufe den zuständigen Aufruf und das, was danach vorliegt. Die Begründung, warum die Stufe nicht übersprungen werden kann, steht darunter.

Die Aufrufkette dieses Anwendungsfalls
StufeAufrufWas danach vorliegt
Nummern normalisierenGET /parts/oe/normalizeAus abgetippten Schreibweisen wird je Position ein lookupKey
Warenkorb prüfenPOST /vin/cart-checkEin Aufruf für den ganzen Korb; 202 mit jobId nur, wenn die Fahrzeugprüfung nicht sofort abschließt
Ergebnis abholenGET /vin/cart-check/jobs/{jobId}Je Position fits, dazu complete für den ganzen Korb

Warum jede Stufe nötig ist

  1. Die Nummern normalisieren. GET /parts/oe/normalize macht aus einer abgetippten Schreibweise einen lookupKey. Ohne diesen Schritt prüft man Bindestriche und Leerzeichen mit, und der Korb fällt aus Formgründen durch.
  2. Den Korb prüfen. POST /vin/cart-check nimmt eine bis 30 Positionen auf einmal als oeNumbers, dazu vin und das Pflichtfeld mode mit type oder vehicle. Ein Aufruf für den ganzen Korb ersetzt die Abfrage je Position; die Antwort behält Reihenfolge und Duplikate der Eingabe bei.
  3. Das Ergebnis abholen. Nach einer 202-Antwort liefert GET /vin/cart-check/jobs/{jobId} den Status; bei succeeded enthält result je Position oe und fits sowie für den Korb complete. Ist complete=false, ist ein negatives Einzelergebnis kein abschließender Ausschluss.
Einen Warenkorb gegen die Fahrgestellnummer prüfen
curl -X POST \
  -H 'X-Api-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: korb-88213' \
  -d '{"vin":"<VIN>","country":"de","mode":"vehicle","oeNumbers":["8K0959455K","1K0121207AK"]}' \
  'https://api.tapinomahub.com/vin/cart-check'

Was am Ende vorliegt

Am Ende steht eine Kasse, die den Kunden warnt, bevor er bezahlt. Das senkt die Rücksendequote, und es senkt sie am richtigen Ende: nicht durch strengere Rückgabebedingungen, sondern durch weniger falsche Bestellungen.

Wo das in der Dokumentation steht

Die verbindlichen Feldlisten, Fehlercodes und Beispielantworten stehen im OpenAPI-Vertrag dieser Fläche unter docs.tapinomahub.com (tapinoma-hub). Alle Anwendungsfälle nach Fläche und Rolle geordnet: Übersicht der Anwendungsfälle.

Quellen und Rechtsgrundlagen

Häufige Fragen

Kommt das Ergebnis immer über einen Auftrag?

Nein. Liegt das Ergebnis sofort vor, kommt es direkt mit 200. Kann eine Fahrzeugprüfung nicht unmittelbar abgeschlossen werden, antwortet die API mit 202 und einer jobId, und das Ergebnis wird über den Status-Endpunkt abgeholt.

Was zeige ich dem Kunden bei einem negativen Ergebnis mit unvollständiger Teileliste?

Am besten den Befund selbst: dass die Teileliste nicht vollständig vorlag und das negative Ergebnis deshalb kein abschließender Ausschluss ist. Ein pauschales „passt nicht" wäre falsch, ein pauschales „passt" wäre riskant.

Kann ich die Prüfung nachts über offene Aufträge laufen lassen?

Ja, jede Prüfung ist ein eigener Aufruf. Antwortet die API mit 202, wird das Ergebnis über GET /vin/cart-check/jobs/{jobId} abgeholt; eine eigene Betriebsart für Sammelläufe legt der Vertrag nicht fest.