Ein Fahrzeug wird auf den Hof gestellt. Wer es gebracht hat, ist notiert, mehr nicht. Später soll ein Verwertungsnachweis ausgestellt werden, und dann fehlt genau das, was niemand dokumentiert hat: wann die Obhut übergegangen ist, auf welcher Grundlage das Fahrzeug als Altfahrzeug gilt und ob der Eigentümer überhaupt gefragt wurde.
Die Compliance-Fläche ist deshalb als Ereigniskette gebaut und nicht als Formular: Jedes erfolgreiche Kommando erzeugt ein Ereignis mit hash und previousHash, und seine Antwort nennt blockers — also das, was noch fehlt. Ein Vorgang läuft nicht stillschweigend durch, nur weil niemand hingesehen hat.
| Fläche | Rollen |
|---|---|
| Compliance | Autoverwerter, Autohaus, Fahrzeughandel |
Was dieser Fall voraussetzt
- Ein anerkannter Betrieb als Absender. Rechtlicher Aussteller ist der anerkannte Demontagebetrieb beziehungsweise die zugelassene Behandlungsanlage — nicht die Plattform.
- Eine Organisationskennung im Aufruf. Die Fläche erwartet sie als Kopfzeile; sie bindet jedes Ereignis an die verantwortliche Organisation.
- Eine Idempotenzkennung. Ein wiederholter Aufruf darf kein zweites Ereignis in die Kette schreiben.
- Der Wille, Blocker zu lesen. Eine Antwort mit harten Blockern ist eine Aufforderung, nicht eine Fehlermeldung, die man wegklickt.
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.
| Stufe | Aufruf | Was danach vorliegt |
|---|---|---|
| Fall anlegen | POST /compliance/cases | facilityId, jurisdiction und legalProfile binden den Fall an Standort und Recht |
| Annahme erfassen | POST /compliance/cases/{id}/intake | transferor und custody halten fest, wer übergeben hat und in wessen Obhut das Fahrzeug nun ist |
| Status feststellen | POST /compliance/cases/{id}/status-determinations | basisCode und outcome — die Einordnung trägt ihren Rechtsgrund mit sich |
| Eigentümer ermitteln | POST /compliance/cases/{id}/owner-identification | status und attempts belegen die Bemühung, nicht nur das Ergebnis |
Warum jede Stufe nötig ist
- Den Fall anlegen.
POST /compliance/casesnimmtfacilityId,jurisdiction,legalProfileund das Fahrzeug. Der Rechtsrahmen wird also am Anfang gesetzt, nicht am Ende angepasst — eine Ereigniskette, die ihr Regelwerk unterwegs wechselt, wäre nicht prüfbar. - Die Annahme erfassen.
POST /compliance/cases/{id}/intaketrägttransferOccurredAt,intakeType,transferorundcustody. Der Übergang der Obhut ist der eigentliche Kern, und deshalb wird er dokumentiert und nicht geschätzt. - Den Status feststellen.
POST /compliance/cases/{id}/status-determinationsnimmtbasisCode,outcomeundeffectiveAt. Die Einordnung trägt ihren Rechtsgrund mit sich — das ist der Unterschied zwischen einer Feststellung, die eine Prüfung übersteht, und einer Behauptung. - Die Eigentümerermittlung dokumentieren.
POST /compliance/cases/{id}/owner-identificationträgtstatusundattempts. Belegt wird die Bemühung, nicht nur das Ergebnis: Bei einem eignerlosen Fahrzeug ist genau das die entscheidende Frage, und es gibt einen eigenen Aufruf für die Weiterleitung an eine Behandlungsanlage.
curl -X POST \
-H 'X-Api-Key: <API_KEY>' \
-H 'X-Compliance-Organisation-Id: <ORGANISATION>' \
-H 'Idempotency-Key: fall-2026-09-12-017' \
-H 'Content-Type: application/json' \
-d '{"facilityId":"<facilityId>","jurisdiction":"DE","legalProfile":"DE_FZV_ANNEX_9_CURRENT","vehicle":{"vin":"<VIN>"}}' \
'https://api.tapinomahub.com/compliance/cases'Was am Ende vorliegt
Am Ende steht ein Fall mit lückenloser Ereigniskette, dessen Einordnung begründet ist und der selbst sagt, was als Nächstes fehlt. Darauf setzen Behandlung, Nachweis und Behördenmeldung auf, ohne dass etwas nachträglich erzählt werden muss.
Wo das in der Dokumentation steht
Die verbindlichen Feldlisten, Fehlercodes und Beispielantworten stehen im OpenAPI-Vertrag dieser Fläche unter docs.tapinomahub.com (tapinoma-compliance). Alle Anwendungsfälle nach Fläche und Rolle geordnet: Übersicht der Anwendungsfälle.
Quellen und Rechtsgrundlagen
Häufige Fragen
Wer ist rechtlich der Aussteller?
Der anerkannte Betrieb beziehungsweise die zugelassene Behandlungsanlage. Jede erfolgreiche Antwort eines Kommandos weist die Rolle der Plattform in platformRole aus; den Abzug der ausstellenden Organisation in issuerSnapshot erzeugt der Server erst bei der Ausstellung des Verwertungsnachweises.
Was bedeutet ein harter Blocker?
Dass eine Voraussetzung fehlt, die nicht übersprungen werden darf. In einer erfolgreichen Antwort trägt jeder Blocker code, message und hard, gegebenenfalls eine requirementId; sperrt ein Hard-Gate die Handlung selbst, antwortet der Server mit dem Status 422 und einer Fehlerantwort.
Muss ich die Ereigniskette selbst prüfen?
Nicht laufend. Für einen Fall oder einen Zeitraum gibt es eine Prüfakte, die Ereignisse mit ihren Hashwerten ausgibt — dort fällt eine Lücke auf.
