# 修改物流信息

> 接口应在服务器端调用，不可在前端（小程序、网页、APP等）直接调用，具体可参考[接口调用指南](/doc/oplatform/developers/dev/guide.md)。

接口英文名：changedeliveryinfo

可通过该接口修改物流信息。

注：订单未完成状态下调用changedeliveryinfo接口最多可以允许修改三次物流信息

相关事件通知：[订单其他信息更新](/doc/store/shop/notify/order_callback/channels_ec_order_ext_info)

## 1. 调用方式

### HTTPS 调用

```bash
POST https://api.weixin.qq.com/channels/ec/order/deliveryinfo/update?access_token=ACCESS_TOKEN
```

### 云调用

- 调用方法：channels.ec.order.deliveryinfo.update

- 出入参和 HTTPS 调用相同，调用方式可查看 [云调用](/doc/oplatform/developers/dev/cloudCall.md) 说明文档。

### 第三方调用

- 本接口支持第三方平台代微信小店商家调用。[第三方服务商调用模式介绍](/doc/store/shop/dev_before/third_party_platforms)

- 该接口所属的权限集 id 为：131

- 服务商获得其中之一权限集授权后，可通过使用 [authorizer_access_token](/doc/oplatform/developers/dev/AuthorizerAccessToken.md) 代微信小店商家进行调用，具体可查看 [第三方调用](/doc/oplatform/Third-party_Platforms/2.0/Before_Develop/call_interface.md) 说明文档。

## 2. 请求参数

### 查询参数 `Query String Parameters`

```json
[
  {
    "参数名": "access_token",
    "类型": "string",
    "必填": "是",
    "示例": "ACCESS_TOKEN",
    "说明": "接口调用凭证，可使用 [access_token](/doc/store/shop/API/apimgnt/common/api_getaccesstoken)（微信小店商家）、[authorizer_access_token](/doc/oplatform/openApi/ticket-token/api_getauthorizeraccesstoken.md)（服务商代调用）"
  }
]
```

### 请求体 `Request Payload`

```json
[
  {
    "参数名": "order_id",
    "类型": "number",
    "必填": "是",
    "示例": "12345",
    "说明": "订单id，可通过[获取订单列表](api_getorderlist)接口获取"
  },
  {
    "参数名": "delivery_list",
    "类型": "objarray",
    "必填": "否",
    "示例": "",
    "说明": "整单物流信息，不支持拆单"
  },
  {
    "参数名": "change_infos",
    "类型": "objarray",
    "必填": "否",
    "示例": "-",
    "说明": "更新包裹物流信息，支持拆单"
  }
]
```

">

### Body.delivery_list(Array) `Object Payload`

整单物流信息，不支持拆单

```json
[
  {
    "参数名": "deliver_type",
    "类型": "number",
    "必填": "是",
    "示例": "1",
    "说明": "发货方式，1:自寄快递发货，目前仅支持1"
  },
  {
    "参数名": "delivery_id",
    "类型": "string",
    "必填": "是",
    "示例": "",
    "说明": "快递公司id，通过[获取快递公司列表](/doc/store/shop/API/channels-shop-delivery/delivery/api_getdeliverycompanylist)接口获得，非主流快递公司可以填OTHER"
  },
  {
    "参数名": "waybill_id",
    "类型": "string",
    "必填": "是",
    "示例": "",
    "说明": "快递单号"
  },
  {
    "参数名": "product_infos",
    "类型": "objarray",
    "必填": "是",
    "示例": "",
    "说明": "包裹中的商品信息"
  }
]
```

">

### Body.change_infos(Array) `Object Payload`

更新包裹物流信息，支持拆单

```json
[
  {
    "参数名": "old",
    "类型": "object",
    "必填": "是",
    "说明": "包裹原物流信息"
  },
  {
    "参数名": "new",
    "类型": "object",
    "必填": "是",
    "说明": "包裹新物流信息"
  }
]
```

__product_infos">

### Body.delivery_list(Array).product_infos `Object Payload`

包裹中的商品信息

```json
[
  {
    "参数名": "product_id",
    "类型": "string",
    "必填": "是",
    "说明": "商品id"
  },
  {
    "参数名": "sku_id",
    "类型": "string",
    "必填": "是",
    "说明": "商品sku"
  },
  {
    "参数名": "product_cnt",
    "类型": "number",
    "必填": "是",
    "说明": "商品数量"
  }
]
```

__old">

### Body.change_infos(Array).old `Object Payload`

包裹原物流信息

```json
[
  {
    "参数名": "delivery_id",
    "类型": "string",
    "必填": "是",
    "说明": "快递公司id，通过[获取快递公司列表](/doc/store/shop/API/channels-shop-delivery/delivery/api_getdeliverycompanylist)接口获得，非主流快递公司可以填OTHER"
  },
  {
    "参数名": "waybill_id",
    "类型": "string",
    "必填": "是",
    "说明": "快递单号"
  },
  {
    "参数名": "product_infos",
    "类型": "objarray",
    "必填": "是",
    "说明": "包裹中的商品信息"
  }
]
```

__old__product_infos">

### Body.change_infos(Array).old.product_infos `Object Payload`

包裹中的商品信息

```json
[
  {
    "参数名": "product_id",
    "类型": "string",
    "必填": "是",
    "说明": "商品id"
  },
  {
    "参数名": "sku_id",
    "类型": "string",
    "必填": "是",
    "说明": "商品sku"
  },
  {
    "参数名": "product_cnt",
    "类型": "number",
    "必填": "是",
    "说明": "商品数量"
  }
]
```

__new">

### Body.change_infos(Array).new `Object Payload`

包裹新物流信息

```json
[
  {
    "参数名": "delivery_id",
    "类型": "string",
    "必填": "是",
    "说明": "快递公司id，通过[获取快递公司列表](/doc/store/shop/API/channels-shop-delivery/delivery/api_getdeliverycompanylist)接口获得，非主流快递公司可以填OTHER"
  },
  {
    "参数名": "waybill_id",
    "类型": "string",
    "必填": "是",
    "说明": "快递单号"
  },
  {
    "参数名": "product_infos",
    "类型": "objarray",
    "必填": "是",
    "说明": "包裹中的商品信息"
  }
]
```

__new__product_infos">

### Body.change_infos(Array).new.product_infos `Object Payload`

包裹中的商品信息

```json
[
  {
    "参数名": "product_id",
    "类型": "string",
    "必填": "是",
    "说明": "商品id"
  },
  {
    "参数名": "sku_id",
    "类型": "string",
    "必填": "是",
    "说明": "商品sku"
  },
  {
    "参数名": "product_cnt",
    "类型": "number",
    "必填": "是",
    "说明": "商品数量"
  }
]
```

## 3. 返回参数

### 返回体 `Response Payload`

```json
[
  {
    "参数名": "errcode",
    "类型": "number",
    "示例": "0",
    "说明": "错误码"
  },
  {
    "参数名": "errmsg",
    "类型": "string",
    "示例": "ok",
    "说明": "错误信息"
  }
]
```

## 4. 注意事项

- 虚拟商品订单暂不允许修改物流。

## 5. 代码示例

请求示例

```json
{
	"order_id": "12345",
	"delivery_list": [{
		"delivery_id": "EMS",
		"waybill_id": "1234",
		"deliver_type": 1,
		"product_infos": [{
			"product_cnt": 1,
			"product_id": "112233",
			"sku_id": "445566"
		}]
	}]
}
```

返回示例

```json
{
    "errcode": 0,
    "errmsg": "ok"
}
```

## 6. 错误码

以下是本接口的错误码列表，其他错误码可参考 [通用错误码](/doc/store/shop/dev_before/commErrCode)；调用接口遇到报错，可使用官方提供的 [API 诊断工具](https://developers.weixin.qq.com/console/devtools/debug?utm_source=api_errcode) 辅助定位和分析问题。

```json
[
  {
    "错误码": "40097",
    "错误描述": "请求体参数不正确，请检查各个参数是否按规范填写，具体原因请查看errmsg"
  },
  {
    "错误码": "47001",
    "错误描述": "请求体格式不正确，请检查请求体中各个参数的类型是否正确"
  },
  {
    "错误码": "48001",
    "错误描述": "无权调用本api，请开发者获取权限后再试"
  },
  {
    "错误码": "100002",
    "错误描述": "订单不存在"
  },
  {
    "错误码": "100003",
    "错误描述": "订单更新过于频繁，更新订单失败，请重试"
  },
  {
    "错误码": "101100",
    "错误描述": "当前订单状态不允许发货，请检查订单状态"
  },
  {
    "错误码": "606004",
    "错误描述": "delivery_id不合法，请使用获取快递公司列表接口获取delivery_id"
  },
  {
    "错误码": "606005",
    "错误描述": "waybill_id不合法，请检查waybill_id是否填写有误"
  },
  {
    "错误码": "606034",
    "错误描述": "当前请求方不能对该订单进行发货或修改物流，请使用特定第三方服务商身份进行操作"
  },
  {
    "错误码": "606040",
    "错误描述": "拆单发货暂不支持修改物流"
  },
  {
    "错误码": "606041",
    "错误描述": "修改物流次数已达上限"
  },
  {
    "错误码": "606042",
    "错误描述": "商品信息有误，请检查商品id，商品数量是否正确"
  },
  {
    "错误码": "606064",
    "错误描述": "当前店铺的自行寄件额度已达上限。为保障用户的收件体验，请使用电子面单、在线寄件等平台官方工具，及时规范完成发货。"
  },
  {
    "错误码": "6060479",
    "错误描述": "快递单号与物流公司提供的正则表达式不匹配"
  }
]
```

## 7. 适用范围

本接口支持「微信小店」账号类型调用。其他账号类型如无特殊说明，均不可调用。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/56617deb-b17d-4cf1-bccd-71d2c41ccc76.svg)接口变更日志（4条）
2026 年 06 月 01 日新增「606064」错误码
2026 年 05 月 11 日更新注意事项
2025 年 12 月 02 日修改物流支持拆单
2025 年 11 月 24 日新增错误码 6060479
