SANDBOX / ZUSAMMENHÄNGENDE TESTFÄLLE

Eine Identität.
Ein ganzer Ablauf.

Der Fahrzeugschein, die VIN-Abfrage und der Kaufvertrag gehören zum selben Testfahrzeug. Eine OE aus dessen Teileliste führt zum passenden Teilefall und Etikett. Alle Angaben sind vollständig synthetisch.

So starten Sie

Verwenden Sie Ihren Sandbox-Key serverseitig im Header x-api-key gegen https://api.tapinomahub.com. JSON-Anfragen verwenden Content-Type: application/json. Übernehmen Sie die Bild-URLs aus der Galerie exakt, einschließlich Pfad und Dateiname.

In den folgenden Abläufen wird jeweils die Antwort des vorherigen Schritts weiterverwendet. So fällt auf, wenn Ihre Anwendung eine VIN, OE oder Fahrzeugreferenz versehentlich vertauscht.

Fahrzeugschein / KaufvertragVIN / FahrzeugreferenzTeileliste / OEEtikett / Teileabfrage

22 vollständige Prozessbeispiele als JSON enthalten alle Anfragen und vollständigen Soll-Antworten. Der Datenkatalog beschreibt die Identitäten und Verbindungen. Beide Dateien sind auch im Testpaket enthalten. Die bisherigen Bilder, Dokumente und 154 Einzelbeispiele bleiben erhalten.

ABLAUF 01

Vom Fahrzeugschein zur Teileabfrage

Beispiel vehicle-03: TAPSANDBX00000103. Dieselbe VIN ist im Fahrzeugschein, im Kaufvertrag und in den gespeicherten Antworten enthalten.

  1. Fahrzeugschein auslesen

    Übernehmen Sie data.vehicle.vin aus der Antwort in die nächsten VIN-Anfragen.

    Anfrage und relevante Antwortfelder · HTTP 200

    POST /scanner/document/registration

    {
      "fileUrl": "https://tapinomahub.com/sandbox/fixtures/vehicle-03/registration.png"
    }

    Antwortauszug · vollständige Antwort in processes.json

    {
      "data": {
        "vehicle": {
          "vin": "TAPSANDBX00000103"
        },
        "registrationNumber": "SBX-TE 103"
      }
    }
  2. Kaufvertrag zuordnen

    vehicle.vin muss mit data.vehicle.vin des Fahrzeugscheins übereinstimmen. Kennzeichen und Modell gehören ebenfalls zu demselben Fall.

    Anfrage und relevante Antwortfelder · HTTP 200

    POST /scanner/document/purchase-contract

    {
      "fileUrl": "https://tapinomahub.com/sandbox/fixtures/vehicle-03/purchase-contract.png"
    }

    Antwortauszug · vollständige Antwort in processes.json

    {
      "vehicle": {
        "vin": "TAPSANDBX00000103",
        "licensePlate": "SBX-TE 103",
        "model": "Kivo"
      }
    }
  3. Fahrzeug über die gelesene VIN abrufen

    Die Antwort muss dieselbe vin liefern. Übernehmen Sie tapiId für den späteren Abruf der Fahrzeugreferenz.

    Anfrage und relevante Antwortfelder · HTTP 200

    GET /vin/TAPSANDBX00000103/vehicle?provider=2

    Antwortauszug · vollständige Antwort in processes.json

    {
      "vin": "TAPSANDBX00000103",
      "tapiId": "5b1a1000-0000-4000-8000-000000000103",
      "displayName": "Sandbox Avelun Kivo 1.0"
    }
  4. Teileliste derselben VIN abrufen

    Jede parts[].number lässt sich anschließend unverändert mit GET /parts/oe/{oeNumber} abfragen und ist mit einem Etikett in der Tabelle unten verbunden.

    Anfrage und relevante Antwortfelder · HTTP 200

    GET /vin/TAPSANDBX00000103/parts?provider=2

    Antwortauszug · vollständige Antwort in processes.json

    {
      "vin": "TAPSANDBX00000103",
      "tapiId": "5b1a1000-0000-4000-8000-000000000103",
      "parts": [
        {
          "number": "SBX1101A",
          "name": "Sandbox Stossfaenger vorn"
        },
        {
          "number": "SBX1201A",
          "name": "Sandbox Bremsscheibe vorn"
        },
        {
          "number": "SBX1701A",
          "name": "Sandbox Aussenspiegel links"
        }
      ]
    }
  5. Fahrzeugreferenz weiterverwenden

    Die tapiId aus der VIN-Antwort wird in den Pfad eingesetzt. Die Fahrzeugreferenz muss zum selben Modell gehören.

    Anfrage und relevante Antwortfelder · HTTP 200

    GET /vehicles/5b1a1000-0000-4000-8000-000000000103

    Antwortauszug · vollständige Antwort in processes.json

    {
      "tapiId": "5b1a1000-0000-4000-8000-000000000103",
      "make": "Sandbox Avelun",
      "model": "Kivo"
    }

Wählen Sie anschließend eine OE aus der gelieferten Teileliste, beispielsweise SBX1101A, und setzen Sie den Teileprozess unten fort. Die übrigen Fahrzeugfälle funktionieren nach demselben Muster.

ABLAUF 02

Vom Etikett zur geprüften Zuordnung

Beispiel part-03: Die OE SBX1101A steht sowohl auf dem Etikett als auch in der Teileliste von vehicle-03. Das Etikett nennt zusätzlich die eigene Ersatz-OE SBX1101B.

  1. OE vom Etikett lesen

    Übernehmen Sie data.primaryPartNumber in die Normalisierung. Weitere gelesene Nummern sind eigene, ebenfalls hinterlegte OE-Fälle.

    Anfrage und relevante Antwortfelder · HTTP 200

    POST /scanner/label/extract-all

    {
      "imageUrl": "https://tapinomahub.com/sandbox/fixtures/part-03/label.png"
    }

    Antwortauszug · vollständige Antwort in processes.json

    {
      "status": "ok",
      "data": {
        "primaryPartNumber": "SBX1101A",
        "otherPartNumbers": [
          "SBX1101B"
        ],
        "manufacturer": "Sandbox Avelun",
        "notes": [
          "Synthetisches Testetikett"
        ]
      }
    }
  2. Gelesene Nummer normalisieren

    Übernehmen Sie normalizedOeNumber in die OE-Abfrage, Identifikation und Passungsprüfung. Eine Ersatznummer bleibt als eigener Datensatz erhalten.

    Anfrage und relevante Antwortfelder · HTTP 200

    GET /parts/oe/normalize?oeNumber=SBX1101A

    Antwortauszug · vollständige Antwort in processes.json

    {
      "normalizedOeNumber": "SBX1101A",
      "equivalentOeNumbers": [
        "SBX1101B"
      ]
    }
  3. Genau dieses Teil abrufen

    oeNumber und part.number müssen zur gelesenen Nummer passen. Der Teiletyp und die Beschreibung bleiben in den folgenden Schritten zugeordnet.

    Anfrage und relevante Antwortfelder · HTTP 200

    GET /parts/oe/SBX1101A

    Antwortauszug · vollständige Antwort in processes.json

    {
      "oeNumber": "SBX1101A",
      "part": {
        "number": "SBX1101A",
        "name": "Sandbox Stossfaenger vorn"
      },
      "replacementChain": [
        {
          "from": "SBX1101A",
          "to": "SBX1101B"
        }
      ]
    }
  4. Teil mit einem passenden Fahrzeug verbinden

    Verwenden Sie die OE zusammen mit einer VIN aus der Liste passender Fahrzeuge. Eine wörtliche Listenposition und ein passendes Ersatzteil werden getrennt ausgewiesen.

    Anfrage und relevante Antwortfelder · HTTP 200

    POST /parts/identify

    {
      "vin": "TAPSANDBX00000103",
      "customerOeNumbers": [
        "SBX1101A"
      ]
    }

    Antwortauszug · vollständige Antwort in processes.json

    {
      "normalizedOeNumber": "SBX1101A",
      "vinPart": {
        "name": "Sandbox Stossfaenger vorn",
        "number": "SBX1101A",
        "tapiGenArt": "TGA-001101",
        "category": "ST",
        "listPrice": 299
      }
    }
  5. Passende Kombination prüfen

    Die normalisierte OE wird mit einer passenden VIN im Typmodus geprüft. Erwartet wird fits: true.

    Anfrage und relevante Antwortfelder · HTTP 200

    POST /vin/cart-check

    {
      "vin": "TAPSANDBX00000103",
      "mode": "type",
      "oeNumbers": [
        "SBX1101A"
      ]
    }

    Antwortauszug · vollständige Antwort in processes.json

    {
      "vin": "TAPSANDBX00000103",
      "mode": "type",
      "complete": true,
      "results": [
        {
          "oe": "SBX1101A",
          "fits": true
        }
      ]
    }
  6. Unpassende Kombination prüfen

    Nur die VIN wird auf ein bekanntes, unpassendes Testfahrzeug gewechselt; die OE bleibt gleich. Erwartet wird fits: false.

    Anfrage und relevante Antwortfelder · HTTP 200

    POST /vin/cart-check

    {
      "vin": "TAPSANDBX00000104",
      "mode": "type",
      "oeNumbers": [
        "SBX1101A"
      ]
    }

    Antwortauszug · vollständige Antwort in processes.json

    {
      "vin": "TAPSANDBX00000104",
      "mode": "type",
      "complete": true,
      "results": [
        {
          "oe": "SBX1101A",
          "fits": false
        }
      ]
    }

ABLAUF 03

VIN mit Browser-Rücksprung verwenden

Übernehmen Sie die aus dem Fahrzeugschein gelesene VIN für POST /vin/redirect-sessions. Setzen Sie als returnUrl eine eigene erreichbare HTTPS-Adresse ein; die Beispieladresse unten ist nur ein Platzhalter.

{
  "vin": "TAPSANDBX00000103",
  "returnUrl": "https://ihre-anwendung.example/callback",
  "state": "vehicle-03-prozesstest"
}
  1. Öffnen Sie die neu zurückgegebene redirectUrl im Browser. Den API-Key nur für die serverseitige Sitzungserstellung verwenden.
  2. Führen Sie den Fahrzeugabgleich aus und bestätigen Sie ihn.
  3. Am Rücksprung müssen status=completed, der unveränderte state und tapiId=5b1a1000-0000-4000-8000-000000000103 ankommen.
  4. Rufen Sie /vehicles/5b1a1000-0000-4000-8000-000000000103 ab. Die Fahrzeugreferenz ist identisch mit derjenigen aus der direkten VIN-Abfrage.

Bei Abbruch kommt status=cancelled ohne tapiId. Verwenden Sie für jeden Durchlauf eine neue Sitzung. Abgelaufene oder bereits verbrauchte Sitzungen sind eigene Negativtests. Die zusätzliche Muster-Ausstattung im Browser demonstriert die Anzeige und ist keine belegte Konfiguration der hier beschriebenen VIN-Stammdaten.

DATENKARTE

Alle Fahrzeuge und ihre Teile

Die OE-Spalte zeigt die wörtliche VIN-Teileliste. Klicken Sie auf eine OE, um zum Etikett und den zugehörigen Fahrzeugen zu gelangen.

10 zusätzliche Fahrzeugfälle
Fall / FahrzeugVIN / FahrzeugreferenzDokumenteOE in der Teileliste
vehicle-03Sandbox Avelun Kivo 1.0TAPSANDBX000001035b1a1000-0000-4000-8000-000000000103Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1101A
SBX1201A
SBX1701A
vehicle-04Sandbox Avelun Lanos Tour 1.6 DTAPSANDBX000001045b1a1000-0000-4000-8000-000000000104Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1201A
SBX1601A
vehicle-05Sandbox Seltryn Evaro 64 ElectricTAPSANDBX000001055b1a1000-0000-4000-8000-000000000105Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1301A
SBX1401A
SBX1501A
vehicle-06Sandbox Avelun Velta 1.8 HybridTAPSANDBX000001065b1a1000-0000-4000-8000-000000000106Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1801A
SBX2001A
vehicle-07Sandbox Avelun Sero 1.5 Plug-inTAPSANDBX000001075b1a1000-0000-4000-8000-000000000107Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1801A
SBX1901A
vehicle-08Sandbox Avelun Cargo 150 2.0 DTAPSANDBX000001085b1a1000-0000-4000-8000-000000000108Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1601A
vehicle-09Sandbox Avelun Luna 1.6TAPSANDBX000001095b1a1000-0000-4000-8000-000000000109Fahrzeugschein vergleichenKaufvertrag vergleichenSBX2001A
vehicle-10Sandbox Avelun Grandis 2.0 DTAPSANDBX000001105b1a1000-0000-4000-8000-000000000110Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1601A
SBX1901A
vehicle-11Sandbox Avelun Canto 1.2TAPSANDBX000001115b1a1000-0000-4000-8000-000000000111Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1701A
vehicle-12Sandbox Seltryn Nivor E 82 ElectricTAPSANDBX000001125b1a1000-0000-4000-8000-000000000112Fahrzeugschein vergleichenKaufvertrag vergleichenSBX1301B
SBX1401A
SBX1501A

Alle OE-Nummern und passenden Fahrzeuge

Eine Passung bedeutet nicht zwingend, dass die OE wörtlich in der ursprünglichen Teileliste steht. Ersatzteile sind als eigene Fälle erhalten.

12 zusätzliche Teilefälle
Fall / TeilOE / EtikettPassende FahrzeugfälleWeitere OE der Ersatzfamilie
Sandbox Stossfaenger vornpart-03SBX1101AEtikett und OE-Antwort vergleichenvehicle-03SBX1101B
Sandbox Bremsscheibe vornpart-04SBX1201AEtikett und OE-Antwort vergleichenvehicle-03
vehicle-04
Keine weitere OE hinterlegt
Sandbox Stossfaenger vorn, ueberarbeitete Befestigungpart-05SBX1101BEtikett und OE-Antwort vergleichenvehicle-03SBX1101A
Sandbox LED-Scheinwerfer linkspart-06SBX1301AEtikett und OE-Antwort vergleichenvehicle-05SBX1301B
Sandbox LED-Scheinwerfer links, ueberarbeitete Ausfuehrungpart-07SBX1301BEtikett und OE-Antwort vergleichenvehicle-05
vehicle-12
SBX1301A
Sandbox Elektrischer Fahrmotorpart-08SBX1401AEtikett und OE-Antwort vergleichenvehicle-05
vehicle-12
Keine weitere OE hinterlegt
Sandbox Antriebswechselrichterpart-09SBX1501AEtikett und OE-Antwort vergleichenvehicle-05
vehicle-12
Keine weitere OE hinterlegt
Sandbox Diesel-Einspritzventilpart-10SBX1601AEtikett und OE-Antwort vergleichenvehicle-04
vehicle-08
vehicle-10
Keine weitere OE hinterlegt
Sandbox Aussenspiegel linkspart-11SBX1701AEtikett und OE-Antwort vergleichenvehicle-03
vehicle-11
Keine weitere OE hinterlegt
Sandbox Rueckleuchte rechtspart-12SBX1801AEtikett und OE-Antwort vergleichenvehicle-06
vehicle-07
Keine weitere OE hinterlegt
Sandbox Rueckfahrkamerapart-13SBX1901AEtikett und OE-Antwort vergleichenvehicle-07
vehicle-10
Keine weitere OE hinterlegt
Sandbox Innenraumgeblaesepart-14SBX2001AEtikett und OE-Antwort vergleichenvehicle-06
vehicle-09
Keine weitere OE hinterlegt

Ersatzteile und absichtlich unpassende Kombinationen

SBX1101A → SBX1101B und SBX1301A → SBX1301B bilden zwei Ersatzbeziehungen ab. Die ursprünglichen A-Nummern bleiben in den Fahrzeug-Teilelisten von vehicle-03 beziehungsweise vehicle-05. Die B-Nummern bleiben eigenständig abrufbar und passen als Ersatz. vehicle-12 enthält SBX1301B bereits wörtlich.

Bewahren Sie die ursprünglich gelesene OE in Ihrer Anwendung auf. Die reine OE-Abfrage liefert genau diesen Datensatz. Die Identifikation im Fahrzeugkontext kann dagegen die zugehörige Listenposition liefern: SBX1101B mit vehicle-03 wird zu vinPart.number = SBX1101A; entsprechend wird SBX1301B mit vehicle-05 der vorhandenen A-Position zugeordnet. normalizedOeNumber des Identifikationsergebnisses bezeichnet dann ebenfalls diese Listenposition. Vergleichen Sie vinPart.number mit der VIN-Teileliste und nutzen Sie die Ersatzbeziehung aus der OE-Abfrage, um die abweichende Eingangsnummer zu erklären.

Für Negativtests ist zum Beispiel SBX1101A mit vehicle-04 unpassend. SBX1301A ist mit vehicle-03 unpassend. Beide Seiten sind bekannte Testdaten; allein die Zuordnung stimmt absichtlich nicht. Die einzelnen Teileabläufe in processes.json enthalten jeweils einen positiven und einen negativen Warenkorbtest.

Grenzen für reproduzierbare Tests