快递订阅查询快递api接口技术文档
一、订阅接口
通过订阅接口提交快递单号,接口接收到后便对这些运单进行跟踪,当运单状态发生变化的时候,通过调用回调接口将运单的跟踪信息推送给贵公司,直到这些运单号的生命周期结束(一般以“已签收”为准)。
注意:对于同一快递公司同一个快递单号,每月最大订阅次数为4次,超过4次的订阅在提交时会报重复订阅。
1.1 订阅请求地址
https://poll.kuaidi100.com/poll
1.2 订阅请求类型
post
1.3 订阅输入参数
请求参数(header)
名称 | 类型 | 默认值 |
---|---|---|
Content-Type | string | application/x-www-form-urlencoded |
请求参数(body)
名称 | 类型 | 是否必需 | 示例值 | 描述 |
---|---|---|---|---|
schema | String | 否 | json | 返回的数据格式,json(默认) ,xml |
Θparam | param | 是 | 由其他字段拼接 | |
└ company | String | 是 | ems | 订阅的快递公司的编码,一律用小写字母,下载编码表格 |
└ number | String | 是 | 1136281381675 | 订阅的快递单号, 单号的最小长度6个字符,最大长度32个字符 |
└ from | String | 否 | 广东省深圳市南山区 | 出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供 |
└ to | String | 否 | 北京市朝阳区 | 目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供 |
└ key | String | 是 | 授权码,请申请企业版获取 | |
Θparameters | parameters | 是 | 附加参数信息 | |
└- callbackurl | String | 是 | 回调接口的地址,默认仅支持http,如需兼容https请联系快递100技术人员处理 | |
└- salt | String | 否 | XXXXXXXXXX | 签名用随机字符串 |
└- resultv2 | String | 否 | 1 | 添加此字段表示开通行政区域解析功能。空:关闭(默认),1:开通行政区域解析功能以及物流轨迹增加物流状态名称 4: 开通行政解析功能以及物流轨迹增加物流高级状态名称、状态值并且返回出发、目的及当前城市信息 |
└- autoCom | String | 否 | 1 | 添加此字段且将此值设为1,则表示开启智能判断单号所属公司的功能,开启后,需确保company字段为空,即只传运单号(number字段),我方收到后会根据单号判断出其所属的快递公司(即company字段)。建议只有在无法知道单号对应的快递公司(即company的值)的情况下才开启此功能。 |
└- interCom | String | 否 | 1 | 添加此字段表示开启国际版,开启后,若订阅的单号(即number字段)属于国际单号,会返回出发国与目的国两个国家的跟踪信息,本功能暂时只支持邮政体系(国际类的邮政小包、EMS)内的快递公司,若单号我方识别为非国际单,即使添加本字段,也不会返回destResult元素组 |
└- departureCountry | String | 否 | CN | 出发国家编码 |
└- departureCom | String | 否 | ems | 出发的快递公司的编码 |
└- destinationCountry | String | 否 | JP | 目的国家编码 |
└- destinationCom | String | 否 | japanposten | 目的的快递公司的编码 |
└- phone | String | 否 | 13488888888 | 收、寄件人的电话号码(手机和固定电话均可,只能填写一个,顺丰速运、顺丰快运必填,其它快递公司选填;如座机号码有分机号,分机号无需上传;如号码是电商虚拟号码需传入“-“后的后四位。查看详情) |
1.4 订阅请求参数示例
schema = json
param = {
"company": "yuantong",
"number": "YT6186594166532",
"key": "XXX ",
"parameters": {
"callbackurl": "您的回调接口的地址,如http://www.您的域名.com/kuaidi?callbackid=...",
"salt": "XXXXXXXXXX",
"phone": "13868688888",
"resultv2": "4"
}
}
1.5 订阅返回信息代码含义
result: true表示成功,false表示失败
信息代码 | 信息内容描述 | 原因及建议处理方式 |
---|---|---|
200 | 提交成功 | 订阅提交成功 |
500 | 服务器错误 | 快递100的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误 |
501 | 重复订阅 | 此单已经订阅成功且目前还在跟踪过程中。若要提交多次订阅,请在收到单号的status=abort或shutdown后隔半小时再提交订阅 |
502 | 提交内容含有敏感关键字,被安全防护拦截 | 回调地址、提交内容包含敏感词,请联系快递100工作人员 |
600 | 您不是合法的订阅者(即授权Key出错) | 账号无可用单量,需要充值 |
601 | POLL: KEY 已过期 | 账号无可用单量,需要充值 |
700 | 不支持的快递公司 | 拒绝订阅的快递公司,检查快递公司编码是否有误 |
701 | 订阅方的订阅数据存在错误(如不支持的快递公司、单号为空、单号超长等)或错误的回调地址 | 请检查快递公司编码、对照技术文档检查参数、在后台调试工具测试回调地址 |
702 | POLL:识别不到该单号对应的快递公司 | 快递公司编码错误或者无可用单量,需要充值 |
1.6 订阅返回示例(JSON格式)
{
"result": true,
"returnCode": "200",
"message": "提交成功"
}
二、推送接口
2.1 推送请求地址
由贵司在订阅请求中通过callbackurl字段提供
2.2 推送请求类型
post
2.3 推送输入参数
请求参数(header)
名称 | 类型 | 默认值 |
---|---|---|
Content-Type | string | application/x-www-form-urlencoded |
请求参数(body)
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
sign | String | 订阅参数salt值不为null时,推送数据将包含该加密签名,加密方式:md5(param+salt),注意加密后字符串一定要转32位大写。注意: salt值为空串时,推送的数据也会包含sign。 | |
Θparam | 由其他字段拼接 | ||
└ status | String | polling | 监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于status=abort的状态,需要增加额外的处理逻辑 |
└ billstatus | String | got | 包括got、sending、check三个状态,由于意义不大,已弃用,请忽略 |
└ message | String | 监控状态相关消息,如:3天查询无记录,60天无变化 | |
└ autoCheck | String | 1 | 快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。一个单如果我们连续3天都查不到结果,我方会(1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空;(2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码);并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld=原来的公司编码、comNew=纠正后的快递公司编码。 |
└ comOld | String | yuantong | 贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
└ comNew | String | ems | 我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 |
ΘlastResult | lastResult | 最新查询结果,若在订阅报文中通过interCom字段开通了国际版,则此lastResult表示出发国的查询结果,全量,倒序(即时间最新的在最前) | |
└- message | String | 消息体,请忽略 | |
└- state | String | 0 | 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值 |
└- status | String | 200 | 通讯状态,请忽略 |
└- condition | String | F00 | 快递单明细状态标记,暂未实现,请忽略 |
└- ischeck | String | 0 | 是否签收标记,0未签收,1已签收 |
└- com | String | yuantong | 快递公司编码,一律用小写字母 |
└- nu | String | V030344422 | 单号 |
└- data | Object | 数组,包含多个对象,每个对象字段如展开所示 | |
└-- context | String | 上海分拨中心/装件入车扫描 | 内容 |
└-- time | String | 2012-08-28 16:33:19 | 时间,原始格式 |
└-- ftime | String | 2012-08-28 16:33:19 | 格式化后时间 |
└-- status | String | 在途 | 物流状态名称或者高级状态名称,提交resultv2=1或者resultv2=4标记后才会出现 |
└-- statusCode | String | 1002 | 本数据元对应的高级物流状态值,提交resultv2=4标记后才会出现 |
└-- areaCode | String | 310000000000 | 本数据元对应的行政区域的编码,提交resultv2=1或者resultv2=4标记后才会出现 |
└-- areaName | String | 上海市 | 本数据元对应的行政区域的名称,提交resultv2=1或者resultv2=4标记后才会出现 |
└--areaCenter | String | 17.200983,39.084158 | 本数据元对应的行政区域经纬度,提交resultv2=4标记后才会出现 |
└--location | String | 深圳中心 | 本数据元对应的快件当前位置,提交resultv2=4标记后才会出现 |
└--areaPinYin | String | tianjin | 本数据元对应的行政区域拼音,提交resultv2=4标记后才会出现 |
Θ destResult | destResult | 表示最新的目的国家的查询结果,只有在订阅报文中通过interCom=1字段开通了国际版才会显示此数据元,全量,倒序(即时间最新的在最前) | |
└- message | String | 消息体,请忽略 | |
└- state | String | 0 | 快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值 |
└- status | String | 200 | 通讯状态,请忽略 |
└- condition | String | F00 | 快递单明细状态标记,暂未实现,请忽略 |
└- ischeck | String | 0 | 是否签收标记,0未签收,1已签收 |
└- com | String | yuantong | 快递公司编码,一律用小写字母 |
└- nu | String | V030344422 | 单号 |
Θ data | data | 数组,包含多个对象,每个对象字段如展开所示 | |
└-- context | String | 上海分拨中心/装件入车扫描 | 内容 |
└-- time | String | 2012-08-28 16:33:19 | 时间,原始格式 |
└-- ftime | String | 2012-08-28 16:33:19 | 格式化后时间 |
└-- status | String | 在途 | 本数据元对应的物流状态名称或者高级状态名称,提交resultv2=1或者resultv2=4标记后才会出现 |
└-- statusCode | String | 1002 | 本数据元对应的高级物流状态值,提交resultv2=4标记后才会出现 |
└-- areaCode | String | 310000000000 | 本数据元对应的行政区域的编码,提交resultv2=1或者resultv2=4标记后才会出现 |
└-- areaName | String | 上海市 | 本数据元对应的行政区域的名称,提交resultv2=1或者resultv2=4标记后才会出现 |
└--areaCenter | String | 17.200983,39.084158 | 本数据元对应的行政区域经纬度,提交resultv2=4标记后才会出现 |
└--location | String | 深圳中心 | 本数据元对应的快件当前位置,提交resultv2=4标记后才会出现 |
└--areaPinYin | String | tianjin | 本数据元对应的行政区域拼音,提交resultv2=4标记后才会出现 |
2.4 推送输入参数示例
sign = ******
param = {
"status": "polling",
"billstatus": "got",
"message": "寄件",
"lastResult": {
"message": "ok",
"nu": "YT6186594166532",
"ischeck": "0",
"com": "yuantong",
"status": "200",
"data": [{
"time": "2021-12-15 20:15:14",
"context": "【苏州转运中心】 已发出 下一站 【无锡转运中心公司】",
"ftime": "2021-12-15 20:15:14",
"areaCode": "CN320500000000",
"areaName": "江苏,苏州市",
"status": "干线",
"location": "",
"areaCenter": "120.585315,31.298886",
"areaPinYin": "su zhou shi",
"statusCode": "1002"
},
{
"time": "2021-12-15 20:11:25",
"context": "【苏州转运中心公司】 已收入",
"ftime": "2021-12-15 20:11:25",
"areaCode": "CN320500000000",
"areaName": "江苏,苏州市",
"status": "干线",
"location": "",
"areaCenter": "120.585315,31.298886",
"areaPinYin": "su zhou shi",
"statusCode": "1002"
},
{
"time": "2021-12-15 19:18:27",
"context": "【江苏省无锡市锡新开发区公司】 已收入",
"ftime": "2021-12-15 19:18:27",
"areaCode": "CN320200000000",
"areaName": "江苏,无锡市",
"status": "在途",
"location": "",
"areaCenter": "120.31191,31.491169",
"areaPinYin": "wu xi shi",
"statusCode": "0"
},
{
"time": "2021-12-15 17:10:09",
"context": "【江苏省苏州市北桥公司】 已揽收",
"ftime": "2021-12-15 17:10:09",
"areaCode": "CN320507004000",
"areaName": "江苏,苏州市,相城区,北桥",
"status": "揽收",
"location": "",
"areaCenter": "120.606531,31.505825",
"areaPinYin": "bei qiao jie dao",
"statusCode": "1"
}
],
"state": "0",
"condition": "F00",
"routeInfo": {
"from": {
"number": "CN320507004000",
"name": "江苏,苏州市,相城区,北桥"
},
"cur": {
"number": "CN320200000000",
"name": "江苏,无锡市"
},
"to": null
},
"isLoop": false
}
}
2.5 运单签收状态(state)说明
物流状态值 | 物流状态名称 | 高级物流状态值 | 高级物流状态名称 | 含义 |
---|
1 | 揽收 | 1 | 揽收 | 快件揽件 |
101 | 已下单 | 已经下快件单 | ||
102 | 待揽收 | 待快递公司揽收 | ||
103 | 已揽收 | 快递公司已经揽收 | ||
0 | 在途 | 0 | 在途 | 快件在途中 |
1001 | 到达派件城市 | 快件到达收件人城市 | ||
1002 | 干线 | 快件处于运输过程中 | ||
1003 | 转递 | 快件发往到新的收件地址 | ||
5 | 派件 | 5 | 派件 | 快件正在派件 |
501 | 投柜或驿站 | 快件已经投递到快递柜或者快递驿站 | ||
3 | 签收 | 3 | 签收 | 快件已签收 |
301 | 本人签收 | 收件人正常签收 | ||
302 | 派件异常后签收 | 快件显示派件异常,但后续正常签收 | ||
303 | 代签 | 快件已被代签 | ||
304 | 投柜或站签收 | 快件已从快递柜或者驿站取出签收 | ||
6 | 退回 | 6 | 退回 | 快件正处于返回发货人的途中 |
4 | 退签 | 4 | 退签 | 此快件单已退签 |
401 | 已销单 | 此快件单已撤销 | ||
14 | 拒签 | 收件人拒签快件 | ||
7 | 转投 | 7 | 转投 | 快件转给其他快递公司邮寄 |
2 | 疑难 | 2 | 疑难 | 快件存在疑难 |
201 | 超时未签收 | 快件长时间派件后未签收 | ||
202 | 超时未更新 | 快件长时间没有派件或签收 | ||
203 | 拒收 | 收件人发起拒收快递,待发货方确认 | ||
204 | 派件异常 | 快件派件时遇到异常情况 | ||
205 | 柜或驿站超时未取 | 快件在快递柜或者驿站长时间未取 | ||
206 | 无法联系 | 无法联系到收件人 | ||
207 | 超区 | 超出快递公司的服务区范围 | ||
208 | 滞留 | 快件滞留在网点,没有派送 | ||
209 | 破损 | 快件破损 | ||
210 | 销单 | 寄件人申请撤销寄件 | ||
8 | 清关 | 8 | 清关 | 快件清关 |
10 | 待清关 | 快件等待清关 | ||
11 | 清关中 | 快件正在清关流程中 | ||
12 | 已清关 | 快件已完成清关流程 | ||
13 | 清关异常 | 货物在清关过程中出现异常 | ||
14 | 拒签 | \ | \ | 收件人拒签快件 |
注:如需物流状态高级状态名称及状态值需要 resultv2 传 “4” 返回
2.6 推送响应报文及错误码解释
字段名称 | 字段含义 |
---|---|
result | true表示成功,false表示失败。如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃 |
returnCode | 200: 提交成功 500: 服务器错误 其他错误请自行定义 |
message | 返回的提示 |
2.7 推送返回示例
当我方调用贵方的回调接口(callbackurl)时,贵方需要先将我方提交的数据保存至贵方的数据库,接着向我方返回是否成功接收的响应报文及代码,即贵公司直接在回调接口的地址的response中填写如下内容:
{
"result":true,
"returnCode":"200",
"message":"成功"
}
注意:对于status= abort(message中包含“3天查询无记录”或者“60天无变化”)的快递单,也需要返回成功接收的响应报文及代码。
三、快递公司编码
如果您需要的公司不在此列表,请联系在线客服添加
四、demo下载
五、实时关注推送情况
扫码打开企业助手小程序实时关注账号里的推送成功情况,确保系统稳定运行。