A headlight is removed at the dismantling bay. It looks flawless, and a colleague wants to list it straight away. But nobody has yet decided whether it may be sold as a reusable part — and that decision is precisely what is asked first in a complaint or an audit.
The chain spans three surfaces and fixes the order: the reuse assessment in the Compliance surface comes before the price and marketplace query in the Hub, and only after that does Commerce create an item with an offer. A process that keeps this order creates no offer without a documented release.
| Surface | Roles |
|---|---|
| Compliance + Hub + Commerce | Vehicle recyclers, Parts trading |
What this case requires
- A competent person for the assessment. The reuse assessment is carried out by a signed-in person in the responsible role; an API key is not enough.
- A legible label on the removed part. The OE number comes from the part, not from memory.
- A connected channel for the sale. The offer references a connection and a pricing policy.
- Your own item number. The catalogue item carries your
merchantSku, the offer the concrete stocked piece.
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 |
|---|---|---|
| Assess reuse | POST /compliance/parts/{id}/assessments | reuseSafetyStatus as a statement of its own, separate from condition |
| Read the number | POST /scanner/label/extract-partnumbers | partNumbers from the label of the removed part |
| Evaluate the price | GET /parts/oe/{oeNumber}/price | an indicative valuation for condition used — not a price guarantee |
| Build the marketplace data | GET /parts/oe/{oeNumber}/seo | content.ebayTitle, categoryId and itemSpecifics |
| Create the item | PUT /commerce/v1/catalog/items/{catalogItemId} | merchantSku, condition and identifiers in canonical form |
| Prepare the offer | PUT /commerce/v1/offers/{offerId} | price, pricingPolicyId and publicationState draft |
Why each stage is needed
- Assess reuse.
POST /compliance/parts/{id}/assessmentstakesresult,reuseSafetyStatus,condition,defects,tests,materialsand evidence. Reuse safety is a statement of its own, separate from condition — and a signed-in person carries out the assessment. - Read the number.
POST /scanner/label/extract-partnumbersreturns thepartNumbersfrom the label of the removed part. The number comes from the part itself, not from the donor vehicle’s parts list. - Evaluate the price.
GET /parts/oe/{oeNumber}/pricewithconditionusedreturns an indicative valuation withmin,maxandaverage. It is not a price guarantee. - Build the marketplace data.
GET /parts/oe/{oeNumber}/seoreturnscontent.ebayTitle,categoryIdanditemSpecifics. Part data become selling copy without anyone searching for a category. - Create the item.
PUT /commerce/v1/catalog/items/{catalogItemId}stores the canonical version withmerchantSku,conditionandidentifiers. The item describes, the stocked piece exists — the two stay separate. - Prepare the offer.
PUT /commerce/v1/offers/{offerId}ties togetherstockItemId,connectionId,priceandpricingPolicyId.publicationStatetakesdraft,ready,pausedandwithdrawn; the contract does not describe what these states do. In the example the offer is submitted asdraft.
curl -X PUT \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: angebot-scheinwerfer-88213' \
-d '{"stockItemId":"<stockItemId>","connectionId":"<connectionId>","price":{"amountMinor":12900,"currency":"EUR"},"pricingPolicyId":"<pricingPolicyId>","publicationState":"draft","revision":"<revision>"}' \
'https://commerce-preview.invalid/commerce/v1/offers/<offerId>'What you end up with
What remains is an offer backed by a documented reuse decision by a named person, a number read off the part, a traceable price basis and marketplace copy. The headlight is sold not because it looked good, but because it was released.
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, tapinoma-hub, tapinoma-commerce). All use cases arranged by surface and role: overview of the use cases.
Sources and legal references
Frequently asked
Why does the assessment come before the price?
Because a price for a part that may not be reused has no value. The documented decision is the precondition of the sale, not its appendix.
Can the assessment be recorded with an API key?
No. The contract requires a signed-in person in the responsible role for the reuse assessment.
Is the price evaluation a selling price?
No. It is an indicative valuation and not a purchase, sale or price guarantee. You set the offer price yourself or through your pricing policy.
