使用此端点之前,请完成入门指南以获取您的 API 密钥和公司 ID。
前提条件
- ✅ 已批准工作区成员的有效 Bearer 令牌
- ✅ 从
GET {{URL}}/accounts/companies获取的公司 ID - ✅ 您要更新的订单的订单 ID(项目 ID,
pid)
端点
multipart/form-data — 即使没有附件文件,也请使用此格式以满足服务器的 multipart 解析器要求。
标头
| 标头 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer <ACCESS_TOKEN> — 已登录成员的访问令牌。 |
companyid | 是 | 订单所属公司的 Mongo ObjectId。 |
clientid | 可选 | 实时客户端 socket ID。提供后,通知将包含此 ID。 |
查询参数
要更新的订单 / 项目 ID。作为查询字符串参数传递。
请求主体字段
更新订单标题。最少 2 个字符。
订单的新状态。必须为以下之一:
Pending、Ongoing、Review、Completed、Cancelled。允许的状态转换:Review只能在Ongoing或另一个Review之后设置。从Pending直接跳转到Review将返回400 ValidationError。- 已处于
Completed或Cancelled状态的订单无法更新。 - 客户无法取消已超过
Pending状态的订单。
总预算金额。必须
≥ 0。若未同时提供 currency,则使用订单的现有货币。预算的货币代码。示例:
USD、CAD、EUR。套餐购买的单位数量。必须
≥ 1。订单截止日期的 ISO 8601 日期字符串。示例:
"2025-12-31T00:00:00.000Z"。项目开始日期的 ISO 8601 日期字符串。
您的团队可见的内部备注。
客户简报或项目摘要。
分配到此订单的项目经理成员 ID 完整列表。新 ID 将被添加到团队;已移除的 ID 将被删除。每个 ID 必须属于同一公司内具有
projectManager 角色的成员。当
status 为 Completed 或 Cancelled 时必填。为 true 时,状态变更后订单中的所有任务将被标记为已完成。为 false 时,任务保持当前状态。仅在
status 为 Completed 或 Cancelled 时允许使用。为 true 时,状态更新后所有待处理的客户请求任务将被拒绝。仅在变更订阅订单的重复频率时需要。与
repeatDuration 配合使用。订阅订单中与
repeatCount 配合使用的必填字段。以下之一:day、week、month、year。定期计费周期的可选限制。默认为
0(无限制)。每个计费周期的处理方式。以下之一:
createOrderWithTask、noChange。零个或多个文件附件。文件将被追加到订单的系统文件夹;现有文件不会被覆盖。使用
multipart/form-data 编码,并将每个文件附在 files 字段下。示例请求
响应
| HTTP 状态码 | 说明 |
|---|---|
200 OK | 更新成功。 |
400 ValidationError | 无效的订单 ID、受限的状态转换或格式错误的负载。相关时响应中包含 fieldName。 |
403 PermissionError | 调用方不是已批准成员、缺少公司角色、工作区订阅已过期,或客户尝试了禁止的取消操作。 |
500 Internal Server Error | 未处理的异常 — 请检查服务器日志。 |
成功响应
业务规则和副作用
- 状态转换受到限制。
Review只能在Ongoing或另一个Review之后设置。尝试Pending → Review将返回400 ValidationError。 - 将状态从
Pending变更为Ongoing、Review或Completed会激活订单的文件文件夹,使上传的文件对项目团队可访问。 - 将
status设置为Completed或Cancelled需要将markTasksAsDone明确设置为true或false。 - 状态变更为
Review、Completed或Cancelled会自动触发客户通知:- Review — 通知客户需要进行审查。
- Completed — 向客户发送
orderCompletion通知。 - Cancelled — 向客户发送
orderCancellation通知。
- 每次成功更新都会触发一个
ORDER.UPDATEDWebhook 事件,附带更新后的订单文档和附件元数据(前提是您有订阅该事件的有效 Webhook)。

