更新出库单交运(揽收)状态

按 OMS 出库单号更新当前客户的交运(揽收)状态,支持直接状态或 TikTok、Lazada、Shopee、SHEIN、Mercado、Temu 原始状态映射。

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

使用范围

本页补录已有的出库单接口。每次按当前鉴权客户及 outboundOrderNo 更新一张既有 OMS 出库单的交运(揽收)状态,不是按平台订单号修改平台订单的处理中、已发货等业务状态。不主动查询平台,不创建订单,不要求订单已有运单号。

Mercado 主/子状态完整请求

Mercado 必须使用 shipment.status / shipment.substatus,不能用订单 PAID 等业务状态代替。

{
  "appKey": "YOUR_APP_KEY",
  "reqTime": "1793325600",
  "data": {
    "requestId": "erp-20261030-0002",
    "outboundOrderNo": "OBS000002",
    "salesPlatform": 10,
    "platformOrderStatus": "READY_TO_SHIP",
    "platformOrderSubStatus": "PICKED_UP",
    "statusTime": "2026-10-30 10:00:00"
  }
}

SHEIN 平台原始状态完整请求

{
  "appKey": "YOUR_APP_KEY",
  "reqTime": "1793325600",
  "data": {
    "requestId": "erp-20261030-0003",
    "outboundOrderNo": "OBS000003",
    "salesPlatform": 31,
    "platformOrderStatus": "4"
  }
}

Temu 平台原始状态完整请求

{
  "appKey": "YOUR_APP_KEY",
  "reqTime": "1793325600",
  "data": {
    "requestId": "erp-20261030-0004",
    "outboundOrderNo": "OBS000004",
    "salesPlatform": 34,
    "platformOrderStatus": "5"
  }
}

上述 AppKey、出库单号、追踪号和时间均为示例。实际调用须替换为已授权 AppKey、所属出库单、当前 reqTime,并重新计算签名;不要直接调用示例。

六平台状态映射

下表为当前服务映射口径,不代表接口会主动拉取平台状态。未知状态或不支持的组合返回参数/业务错误,不猜测或强行推进。

平台(salesPlatform)未揽收 1平台取消 2已揽收 3补充规则
TikTok(20)UNPAID、ON_HOLD、AWAITING_SHIPMENT、PARTIALLY_SHIPPING、AWAITING_COLLECTIONCANCEL、CANCELLEDIN_TRANSIT、DELIVERED、COMPLETED原映射不变
Lazada(3)PENDING、READY_TO_SHIP、PACKED、PROCESSING,可与取消状态混合全部子单 CANCELED/CANCELLED任一子单 SHIPPED/DELIVERED当前全部子单状态去重后用英文逗号拼接,如 ready_to_ship,canceled;任一已交运优先,其次全部取消
Shopee(4)UNPAID、READY_TO_SHIP、PROCESSED、IN_CANCEL、INVOICE_PENDINGCANCELLEDSHIPPED、COMPLETED原映射不变
SHEIN(31)1、2、7未配置4、53、6、8、9 等未映射值拒绝;状态用字符串
Mercado(10)PENDING、HANDLING;READY_TO_SHIP + 无子状态/AUTHORIZED_BY_CARRIERCANCELLED、CANCELEDSHIPPED、DELIVERED、NOT_DELIVERED;READY_TO_SHIP + PICKED_UP/IN_HUB主状态能独立确定时按主状态;READY_TO_SHIP 的未知子状态拒绝
Temu(34)1、235、514、41 不证明实物揽收,拒绝;状态用字符串

响应字段

以下为完整响应,不是仅展示 data。外层使用 code / msg / data,没有外层 success 字段。先判断业务 code,再判断 data.success。HTTP 200 或 code=200 不代表目标状态一定应用成功。

| 字段 | 类型 | 返回保证与含义 |
| --- | --- | --- | --- |
| code | integer | 公共业务码;200 为处理结果返回,24030 为接口业务异常;鉴权/校验错误沿用公共错误码 |
| msg | string | 公共提示,成功默认操作成功,业务异常说明失败原因 |
| data | object/null | 正常处理时为结果对象;业务异常不保证有结果 |
| data.outboundOrderNo | string | 正常结果存在,OMS 出库单号 |
| data.beforeStatus | integer/null | 正常快照时赋值;0 无信息、1 未揽收、2 平台取消、3 已揽收;并发缺失快照时可能为空或省略 |
| data.afterStatus | integer/null | 更新后状态,与 beforeStatus 同一编码及空值边界 |
| data.changed | boolean | 结果对象存在时赋值,揽收状态是否实际变化 |
| data.success| boolean | 结果对象存在时赋值,是否达到请求目标;终态冲突为 false |
| data.message| string | 更新、幂等、缺失快照或冲突说明 |

实际变更成功

{
  "code": 200,
  "data": {
    "outboundOrderNo": "OBS000001",
    "beforeStatus": 1,
    "afterStatus": 3,
    "changed": true,
    "success": true,
    "message": "揽收状态更新成功"
  },
  "msg": "操作成功"
}

相同终态重复提交:幂等成功

{
  "code": 200,
  "data": {
    "outboundOrderNo": "OBS000001",
    "beforeStatus": 3,
    "afterStatus": 3,
    "changed": false,
    "success": true,
    "message": "状态未变化,按幂等处理"
  },
  "msg": "操作成功"
}

冲突示例:已揽收后请求平台取消

{
  "code": 200,
  "data": {
    "outboundOrderNo": "OBS000001",
    "beforeStatus": 3,
    "afterStatus": 3,
    "changed": false,
    "success": false,
    "message": "订单当前揽收状态与请求目标不一致,未覆盖当前状态"
  },
  "msg": "操作成功"
}

业务异常示例

{
  "code": 24030,
  "data": null,
  "msg": "请求销售平台与订单平台不一致"
}

幂等、终态与重试

  • 仅外部允许提交 1/2/3,不能主动回退为 0 无信息。
  • 未揽收等非终态可按统一状态机推进;已揽收与平台取消是受保护终态,不互相覆盖,也不回退为未揽收。
  • 相同状态重复提交返回 changed=false、success=true;不同终态冲突返回 changed=false、success=false,原状态不变。
  • requestId 用于日志追踪,重复请求仍按当前出库单状态处理,不复用旧响应缓存。
  • 网络异常或超时不能直接视为失败;先查询单据状态核对,需要时按相同目标重试。不可通过更换 requestId 绕过终态保护。
  • 已推仓单据沿现有流程同步 WMS 揽收状态;不自动取消/拦截出库单,不改变平台订单履约业务状态。
Query Params
string
required

按站点公共鉴权规则生成的签名;AppSecret不进入请求体或URL。

Body Params

完整JSON请求体,data为单个对象,不是数组;直接模式与平台状态模式必须且只能选择一种。

string
required

开放平台分配的AppKey;示例是占位符。

string
required

秒级Unix时间戳字符串,使用当前请求时间并参与签名。

data
object
required
Response

Language
LoadingLoading…
Response
Choose an example:
application/json