A vehicle without papers stands on the premises, left there overnight. The same day an employee takes in a vehicle although the site is not authorised for it. Both happen, and in an audit both are judged not by whether they happened but by how they were handled.
The Compliance surface gives each of these special cases its own command with its own evidence. Which branch applies depends on the individual case; the event chain records that and how a decision was made — with time, organisation and acting person.
| Surface | Roles |
|---|---|
| Compliance | Vehicle recyclers |
What this case requires
- A created case. All commands except the receipt delivery refer to a case; each of the five commands requires the current ETag version in
If-Match. - The organisation in the call.
X-Compliance-Organisation-Idbinds every event to the responsible organisation. - A signed-in person for the disposal decision. The owner’s decision is only recorded in a human session; an API key is not enough.
- A target facility for ownerless vehicles. The routing names the receiving treatment facility explicitly.
The sequence
The table names the responsible call per stage and what exists afterwards. The reasoning for why a stage cannot be skipped follows below it.
| Stage | Call | What exists afterwards |
|---|---|---|
| Document an impermissible intake | POST /compliance/cases/{id}/unauthorized-receipt-incidents | receivedAt, location, reason and safeguards — what was taken in and how it is secured |
| Identify the owner | POST /compliance/cases/{id}/owner-identification | status identified, pending or not_identifiable, plus attempts |
| Record the disposal decision | POST /compliance/cases/{id}/owner-disposition-decisions | the owner’s decision with an attestation — recorded only by a signed-in person |
| Route an ownerless vehicle | POST /compliance/cases/{id}/ownerless-routing | targetAtfFacilityId and plannedTransferAt |
| Deliver the collection receipt | POST /compliance/collection-receipts/{id}/deliveries | deliveryType receipt with recipient, medium and time |
Why each stage is needed
- Document the impermissible intake.
POST /compliance/cases/{id}/unauthorized-receipt-incidentstakesreceivedAt,location,reasonand at least one entry insafeguards. What is recorded is not only that something went wrong, but how the vehicle is secured until clarification. - Identify the owner.
POST /compliance/cases/{id}/owner-identificationtakesstatuswithidentified,pendingornot_identifiableand theattemptsmade. What is evidenced is the effort, not only the result — withnot_identifiablein particular, that effort is the actual evidence. - Record the disposal decision.
POST /compliance/cases/{id}/owner-disposition-decisionstakesownerPartyId,decision,effectiveAtand anattestationId. Only a signed-in person can record this; an API key alone is not enough. - Route the ownerless vehicle.
POST /compliance/cases/{id}/ownerless-routingnames the target facility intargetAtfFacilityIdand the planned transfer inplannedTransferAt. The routing is planned and named, not a pick-up on request. - Deliver the collection receipt.
POST /compliance/collection-receipts/{id}/deliveriescarriesdeliveryTypereceipt,recipientPartyId,mediumanddeliveredAt. Whoever handed over a vehicle receives the receipt verifiably — in a special case too.
curl -X POST \
-H 'X-Api-Key: <API_KEY>' \
-H 'X-Compliance-Organisation-Id: <ORGANISATION>' \
-H 'If-Match: "<etag>"' \
-H 'Idempotency-Key: eignerlos-weiterleitung-0417' \
-H 'Content-Type: application/json' \
-d '{"targetAtfFacilityId":"<facilityId>","plannedTransferAt":"2026-09-15T08:00:00Z"}' \
'https://api.tapinomahub.com/compliance/cases/<id>/ownerless-routing'What you end up with
In the end every special case has its evidence: the impermissible intake with its safeguards, the owner search with its attempts, the disposal with its person, the ownerless vehicle with its target facility and the person handing over with their receipt.
Where to find this in the documentation
The binding field lists, error codes and sample responses live in this surface’s OpenAPI contract at docs.tapinomahub.com (tapinoma-compliance). All use cases arranged by surface and role: overview of the use cases.
Sources and legal references
Frequently asked
Do I have to go through all five branches?
No. Each branch belongs to a particular special case. An ownerless vehicle needs owner identification and routing; a declaration of disposal needs the owner’s decision.
Can I record the disposal decision with an API key?
No. The contract requires a signed-in person for it. The other branches can also be recorded with an API key holding the right role.
Why are unsuccessful identification attempts recorded?
Because when an owner cannot be found, the effort itself is the evidence. A bare “not identifiable” does not survive an audit.
