拦截改址接口说明
对运输中且未签收的快件发起拦截改址,支持退回寄件网点、退回寄件地址、修改收件地址三种拦截类型。
一、拦截改址接口
1.1 接口说明
本接口用于对运输中且未签收的快件进行拦截改址处理,支持服务平台、商家、在线用户直接对接快递公司发起拦截申请。
1.2 基本信息
| 名称 | 值 |
|---|---|
| 请求方式 | POST / GET |
| 请求地址 | https://api.kuaidi100.com/label/order |
| Content-Type | application/x-www-form-urlencoded |
| 返回格式 | JSON |
| 鉴权方式 | MD5 签名 MD5(param + t + key + secret) |
| 业务类型 | interceptOrder |
1.3 请求头
本接口无特殊请求头要求,使用标准 HTTP 表单提交即可。
| Header | 是否必填 | 说明 |
|---|---|---|
Content-Type | 必填 | 固定为 application/x-www-form-urlencoded |
1.4 请求参数
1.4.1 顶层参数
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| method | 必填 | string | 业务类型,固定值:interceptOrder |
| key | 必填 | string | 授权码,需申请企业版获取 |
| sign | 必填 | string | 32 位大写 MD5 签名,用于身份验证 |
| t | 必填 | string | 时间戳(毫秒),如 1576123932000 |
| param | 必填 | object | 业务参数 JSON 字符串,结构见 1.4.2 |
签名算法
按
param + t + key + secret顺序拼接后进行 MD5 加密,结果转 32 位大写。拼接时不需要加号,secret在企业管理后台查看。sign = MD5(param + t + key + secret).toUpperCase()
1.4.2 param 数据结构
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| kuaidicom | 必填 | string | 快递公司编码,一律小写,详见参数字典 |
| kuaidinum | 必填 | string | 快递单号 |
| interceptType | 必填 | string | 拦截类型,枚举值:RETURN_SEND_STATION — 退回寄件网点;RETURN_SEND_ADDR — 退回寄件地址;MODIFY_ADDR — 修改地址 |
| partnerId | 选填 | string | 电子面单客户账户或月结账号,是否必填详见参数字典 |
| partnerKey | 选填 | string | 电子面单密码,是否必填详见参数字典 |
| net | 选填 | string | 收件网点名称,由快递公司当地网点分配,是否必填详见参数字典 |
| reason | 选填 | string | 拦截原因 |
| orderId | 选填 | string | 订单 ID |
| recManInfo | 条件必填 | object | 收件人信息,interceptType 为 MODIFY_ADDR 时必填,结构见 1.4.3 |
| salt | 选填 | string | 签名随机字符串,用于回调拦截结果中验证签名 sign |
| callbackUrl | 条件必填 | string | 回调地址。中通、极兔必填,其他快递公司选填。所有快递公司的拦截状态均通过回调返回 |
| appKey | 选填 | string | 仅适用于中通拦截场景,若拦截的中通订单并非通过快递100电子面单接口生成时,该字段为必填 |
| appSecret | 选填 | string | 仅适用于中通拦截场景,若拦截的中通订单并非通过快递100电子面单接口生成时,该字段为必填 |
中通 appKey / appSecret 获取方式
需通过中通开放平台获取,从中通开放平台后台服务商模式下授权至 ISV(快递100管家)后可获得,参考中通服务商系统用户接入指南第四点。
1.4.3 recManInfo 数据结构
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| name | 必填 | string | 收件人姓名 |
| mobile | 条件必填 | string | 收件人手机号,手机号和电话号二者其一必填 |
| tel | 条件必填 | string | 收件人电话号,手机号和电话号二者其一必填 |
| printAddr | 必填 | string | 收件人完整地址,如:广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 |
| company | 选填 | string | 收件人所在公司名称 |
1.5 请求示例
以下为 MODIFY_ADDR(修改地址)场景下的完整请求示例:
POST /label/order HTTP/1.1
Host: api.kuaidi100.com
Content-Type: application/x-www-form-urlencoded
method=interceptOrder
&key=kytRsteof
&sign=4BBDE07660E5EFF90873642CFAE9A8DD
&t=1470304729724
¶m={
"orderId": "",
"kuaidicom": "debangkuaidi",
"kuaidinum": "2222",
"partnerId": "22222",
"partnerKey": "",
"interceptType": "MODIFY_ADDR",
"net": "",
"reason": "",
"recManInfo": {
"name": "测试",
"mobile": "13888888888",
"printAddr": "广东深圳市南山区金蝶软件园"
}
}
1.6 返回参数
| 字段名 | 类型 | 说明 |
|---|---|---|
| success | boolean | 提交结果,true 提交成功,false 提交失败 |
| code | string | 返回编码,详见错误码 |
| message | string | 返回报文描述 |
| data | string | 响应数据,具体结构见1.7 |
1.7 响应示例
1.7.1 成功响应
{
"code": 200,
"message": "success",
"time": 0,
"success": true
}
1.7.2 失败响应
{
"code": 30005,
"message": "快递公司返回异常: 拦截失败运单拦截,计价失败,未查询到该运单信息",
"time": 0,
"success": false
}
1.8 错误码
| 错误码 | 信息描述 | 原因及建议 |
|---|---|---|
| 200 | 提交成功 | 请求已成功受理,拦截结果请关注回调通知 |
| -1 | 服务器错误 | 快递100服务器出现间歇或临时性异常;也可能是请求不规范(如快递公司参数错误)导致。建议检查参数后重试 |
| 30001 | 参数错误 | 请根据技术文档核对参数类型及必填项 |
| 30002 | 验证签名失败 | 检查加密方式:按 param + t + key + secret 顺序 MD5 加密,结果转 32 位大写,拼接时不加 + 号 |
| 30003 | 账号信息不正确 | 检查 key 是否正确 |
| 30004 | 账号单量不足需要充值 | 账号单量不足,需要充值 |
| 30005 | 快递公司返回异常 | 按照描述自行检查参数数据类型是否正确,或联系快递公司确认运单状态 |
1.9 拦截结果回调
快递100通过回调方式异步通知拦截结果,所有快递公司的拦截状态均通过回调返回。
| 名称 | 值 |
|---|---|
| 回调方式 | POST |
| Content-Type | application/x-www-form-urlencoded |
| 回调地址 | 请求参数中 callbackUrl |
1.9.1 回调参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sign | string | 签名。salt 不为 null 时包含,加密方式:md5(param + salt).toUpperCase()。salt 为空串时也会返回 sign,此时可忽略校验 |
| param | string | 回调结果 JSON 字符串,结构见 1.9.2 |
1.9.2 param 数据结构(回调)
| 字段名 | 类型 | 说明 |
|---|---|---|
| kuaidicom | string | 快递公司编码 |
| kuaidinum | string | 快递单号 |
| interceptResult | int | 拦截结果,枚举值:0 — 拦截失败;1 — 拦截成功;2 — 拦截中;-1 — 取消拦截 |
| interceptResultDesc | string | 拦截结果描述,拦截失败时返回 |
| returnKuaidiNum | string | 退回单号,拦截成功后产生的退回单号,仅拦截成功状态时回传 |
1.9.3 回调请求示例
POST {callbackUrl} HTTP/1.1
Content-Type: application/x-www-form-urlencoded
sign=XXXX
¶m={
"interceptResult": 1,
"kuaidicom": "jtexpress",
"kuaidinum": "JT12345675",
"returnKuaidiNum": "JT12345676"
}
1.9.4 回调响应要求
接收方需先将回调数据保存至数据库,再返回成功响应。成功状态码为 200,响应体格式如下:
{
"result": true,
"code": "200",
"message": "成功"
}
1.10 回调重推机制
若接收方超时未返回或未按规范返回响应报文,快递100将自动重推拦截结果。
重推规则: 最大重推 8 次,间隔时间呈递增策略,请确保回调接口稳定可用。
| 重推次数 | 间隔时间 | 说明 |
|---|---|---|
| 第 1 次 | 1 分钟 | 首次失败后立即进入重推队列 |
| 第 2 次 | 1 分钟 | |
| 第 3 次 | 1 分钟 | |
| 第 4 次 | 2 分钟 | |
| 第 5 次 | 3 分钟 | |
| 第 6 次 | 7 分钟 | |
| 第 7 次 | 15 分钟 | |
| 第 8 次 | 30 分钟 | 最后一次重推,之后不再推送 |
二、取消拦截接口
取消已发起的快递拦截操作,支持取消拦截的快递公司见参数字典。
2.1 接口说明
本接口用于对已发起的拦截申请进行撤销操作,支持部分快递公司取消拦截。
2.2 基本信息
| 名称 | 值 |
|---|---|
| 请求方式 | GET |
| 请求地址 | https://api.kuaidi100.com/label/order |
| 返回格式 | JSON |
| 鉴权方式 | MD5 签名 MD5(param + t + key + secret) |
| 业务类型 | cancelInterceptOrder |
2.3 请求头
本接口无特殊请求头要求,使用标准 HTTP GET 请求即可。
| Header | 是否必填 | 说明 |
|---|---|---|
Content-Type | 选填 | 无特殊要求,GET 请求无需指定 |
2.4 请求参数
2.4.1 顶层参数
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| method | 必填 | string | 业务类型,固定值:cancelInterceptOrder |
| key | 必填 | string | 授权码,需申请企业版获取 |
| sign | 必填 | string | 32 位大写 MD5 签名,用于身份验证 |
| t | 必填 | string | 时间戳(毫秒),如 1786955868281 |
| param | 必填 | object | 业务参数 JSON 字符串,结构见 2.4.2 |
签名算法
按
param + t + key + secret顺序拼接后进行 MD5 加密,结果转 32 位大写。拼接时不需要加号,secret在企业管理后台查看。param为业务参数 JSON 字符串原文,计算签名时须与请求中的param逐字符一致(含字段顺序、标点、中文编码);放入 URL Query 前需做 URL 编码,但签名基于未编码前的原文计算。sign = MD5(param + t + key + secret).toUpperCase()
2.4.2 param 数据结构
| 参数名 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| kuaidicom | 必填 | string | 快递公司编码,一律小写,详见参数字典 |
| kuaidinum | 必填 | string | 快递单号 |
| partnerId | 条件必填 | string | 月结账号,圆通、京东必填 |
| partnerKey | 条件必填 | string | 用户密钥,圆通必填 |
| orderId | 条件必填 | string | 业务单号,中通必填 |
| remark | 选填 | string | 备注 |
各快递公司必填项说明
快递公司 必填参数 圆通( yuantong)partnerId、partnerKey京东( jd)partnerId中通( zhongtong)orderId其余快递公司按普通参数提交,无额外必填项。
2.5 请求示例
以下为圆通取消拦截场景下的完整请求示例:
GET /label/order?key=your-key&method=cancelInterceptOrder&t=1786955868281&sign=4BBDE07660E5EFF90873642CFAE9A8DD¶m={"partnerId":"your-partner-id","partnerKey":"your-partner-key","kuaidicom":"yuantong","kuaidinum":"YT1234567890","remark":"取消退回寄件网点"} HTTP/1.1
Host: api.kuaidi100.com
curl --location -g --request GET \
'https://api.kuaidi100.com/label/order?key=your-key&method=cancelInterceptOrder&t=1786955868281&sign=4BBDE07660E5EFF90873642CFAE9A8DD¶m={"partnerId":"your-partner-id","partnerKey":"your-partner-key","kuaidicom":"yuantong","kuaidinum":"YT1234567890","remark":"取消退回寄件网点"}'
说明: -
param以 JSON 原文置于 URL Query 中,示例使用-g关闭 curl 转义;正式调用时建议对param做 URL 编码; -sign基于param原文(URL 编码前)计算:MD5(param + t + key + secret)转大写; - 示例为固定时间戳与签名,仅作格式参考,实际调用需用当前时间戳t并重新计算sign。
2.6 返回参数
| 字段名 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码,详见错误码 |
| message | string | 返回报文描述,快递公司有明确返回时会携带具体原因 |
| data | object | 响应数据,含 taskId(本次请求的任务号),可用于问题定位 |
2.7 响应示例
2.7.1 成功响应
{
"code": 200,
"message": "取消成功",
"data": {
"taskId": "xxxxxxxxxxxx"
}
}
2.7.2 失败响应
{
"code": 30005,
"message": "快递公司返回取消失败",
"data": {
"taskId": "xxxxxxxxxxxx"
}
}
2.8 错误码
| 错误码 | 信息描述 | 原因及建议 |
|---|---|---|
| 200 | 取消成功 | 取消拦截请求处理成功 |
| -1 | 系统繁忙/异常 | 请求超时、调用异常等,message 会给出具体提示 |
| 30001 | 参数错误 | 必填项缺失或参数不合法,请根据技术文档检查参数类型及是否必填 |
| 30002 | 验证签名失败 | 检查加密方式:按 param + t + key + secret 顺序 MD5 加密,结果转 32 位大写,拼接时不加 + 号 |
| 30005 | 取消失败 | 接口调用完成但快递公司返回取消失败,可按 message 提示用户或稍后重试 |
当外部快递接口返回非
200业务状态时,code会透传外部返回的状态码(如4000参数错误、500外部系统异常)。