marketplace
GET /v1/marketplace/orders/{sale_id}
The order workspace — one order, from your side of it.
Authentication
Send an API key as a bearer token. This endpoint checks no specific permission, so any key for your organisation can call it.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X GET https://api.zinndigital.com/v1/marketplace/orders/{sale_id} \
-H "Authorization: Bearer zdk_live_…"Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
docs/147 §3. The screen where the work actually happens, for whichever party is asking. Before this there was a buyer's list and a seller's money screen, and nowhere the work happened. The payload leads with turn and waiting_on because the screen does. The anti-jumble device is one question at the top — whose turn is it, and what is it waiting for — and it is computed in the engine so every client answers it identically rather than each deriving it from six columns. paused is the revision clock, made visible. Requesting a revision pauses the acceptance window by clearing its deadline, which is correct and completely unrenderable: a null deadline looks identical to a sale that never had one. The commission split is present for the SELLER and null for the buyer. To a buyer the price is the price.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
sale_id (path) | string | Yes | — |
locale (query) | string | No | BCP-47 language the reader is reading in (the app sends its UI locale). Used to translate communication text for this reader (docs/1067); verbatim text such as anchor texts and… |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
listed_gross_minor | integer | No | L66 (docs/82 §2-fx) — the listed USD price. To a buyer gross_minor/currency are what they were charged (EUR/GBP when converted); to the seller, the listed USD the payable is… |
listed_currency | string | No | — |
sale_id | string | Yes | — |
state | string | Yes | — |
archetype | MarketplaceOrderArchetype | Yes | How this order behaves. Adding a CATEGORY is configuration; adding an ARCHETYPE is a build. Every order-side decision — whether a delivery clock exists, whether auto-accept… |
listing_title | string | No | — |
package_name | string | No | — |
turn | MarketplaceOrderTurn | Yes | Whose move it is. staff is a real answer, not a fallback: a disputed order is genuinely waiting on us, and telling a buyer "waiting for the seller" while a moderator holds it is… |
waiting_on | MarketplaceOrderWaitingOn | Yes | What the order is waiting FOR — the half that makes turn actionable. |
is_yours | boolean | No | Whether the caller is the party being waited on. |
is_buyer | boolean | Yes | — |
deadline | string | No | The clock that is actually running, or null when none is. |
paused | boolean | No | A clock EXISTS but is stopped — the revision pause. Distinct from a null deadline, which also covers an order that never had a clock at all. |
overdue | boolean | No | Never true while delivery_due_at is null: null means the clock has not started, which is exactly the state of an order whose buyer has not written their brief yet. |
handover_confirmed | integer | No | — |
handover_required | integer | No | — |
outstanding | string[] | No | Question keys the buyer still owes. |
revisions_used | integer | No | — |
revisions_included | integer | No | — |
delivery_due_at | string | No | — |
currency | string | No | — |
gross_minor | integer | No | Integer minor units. Money is never a float. |
commission_minor | integer | No | The platform's commission, as its own figure. Present for the SELLER and null for the buyer — to a buyer the price is the price. The platform is merchant of record on every… |
vendor_net_minor | integer | No | What we owe the seller — a trade payable, not money held on trust. |
requirements_schema | object[] | No | The questions AS ASKED, frozen at purchase. A seller who rewrites their questions tomorrow cannot change what this buyer was asked. Every question carries text_class (docs/1067,… |
requirements | object | No | The buyer's answers, in the same {key: {v: …}} envelope. v is exactly what the buyer typed; text answers also carry lang, the BCP-47 language detected from the brief (absent… |
requirements_translations | object | No | Class B (communication) answers translated into the reader's language (?locale=, else the account locale), keyed by question. Never contains a verbatim question. Empty when… |
requirements_submitted_at | string | No | — |
handover_items | MarketplaceHandoverItem[] | No | — |
last_revision_reason | string | No | — |
Errors this endpoint can return
401 · 404