marketplace
POST /v1/marketplace/orders/{sale_id}/requirements
The buyer's brief — and the thing that starts the delivery clock.
身份验证
请将 API 密钥作为 bearer 令牌发送。此端点在规范中未指明具体的权限,因此请为您的密钥赋予所需的最小权限,并通过检查响应来确认,而不是盲目假设。
此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。
免费试用
将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。
curl -X POST https://api.zinndigital.com/v1/marketplace/orders/{sale_id}/requirements \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "requirements": <object> }'已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点
详细信息
docs/147 §2. A paid order used to arrive carrying a package name and nothing else: the seller could not start, the clock was running, and there was no channel to ask. **Submitting is what starts the delivery clock.** Until this call the seller's deadline does not exist, so the days a buyer spends writing their brief are never billed against the seller's deadline and a seller is never late for work they could not begin. The questions come from the order's own frozen `requirements_schema` — a snapshot taken at purchase, so a seller who rewrites their questions tomorrow cannot change what this buyer was asked. Buyer only. A seller gets a 404, the same way acceptance is the buyer's act alone.
参数
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
sale_id (path) | string | 是 | — |
请求正文
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
requirements | object | 是 | Answer per question key, validated against the frozen schema. |
响应
| 名称 | 类型 | 必填 | 内容简介 |
|---|---|---|---|
sale_id | string | 是 | — |
state | string | 是 | — |
archetype | MarketplaceOrderArchetype | 是 | 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 appl… |
listing_title | string | 否 | — |
package_name | string | 否 | — |
turn | MarketplaceOrderTurn | 是 | 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… |
waiting_on | MarketplaceOrderWaitingOn | 是 | What the order is waiting FOR — the half that makes `turn` actionable. |
is_yours | boolean | 否 | Whether the caller is the party being waited on. |
is_buyer | boolean | 是 | — |
deadline | string | 否 | The clock that is actually running, or null when none is. |
paused | boolean | 否 | 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 | 否 | 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 | 否 | — |
handover_required | integer | 否 | — |
outstanding | string[] | 否 | Question keys the buyer still owes. |
revisions_used | integer | 否 | — |
revisions_included | integer | 否 | — |
delivery_due_at | string | 否 | — |
currency | string | 否 | — |
gross_minor | integer | 否 | Integer minor units. Money is never a float. |
commission_minor | integer | 否 | 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 mark… |
vendor_net_minor | integer | 否 | What we owe the seller — a trade payable, not money held on trust. |
requirements_schema | object[] | 否 | The questions AS ASKED, frozen at purchase. A seller who rewrites their questions tomorrow cannot change what this buyer was asked. |
requirements | object | 否 | The buyer's answers, in the same `{key: {v: …}}` envelope. |
requirements_submitted_at | string | 否 | — |
handover_items | MarketplaceHandoverItem[] | 否 | — |
last_revision_reason | string | 否 | — |
此端点可能返回的错误
401 · 404 · 422