文档中心
一、订阅接口 二、推送接口 三、快递公司编码 API调试工具

地图轨迹推送接口文档

一、订阅接口

通过订阅接口提交快递单号,接口接收到后便对这些运单进行跟踪,当运单状态发生变化的时候,通过调用回调接口将运单的跟踪信息推送给贵公司,直到这些运单号的生命周期结束(一般以“已签收”为准)。

注意:对于同一快递公司同一个快递单号,每月最大订阅次数为4次,超过4次的订阅在提交时会报重复订阅。

1.1 接口格式

1.使用http协议表单提交的方式进行信息交互,字符编码默认统一采用UTF-8,数据格式:application/x-www-form-urlencoded;

2.字段类型约定:需要严格依据字段表格中给出的参数格式和大小进行开发。

3.字段解析约定:参数字段中的必选字段是每次调用接口时都要求必须传入的;

1.2 请求地址

http://poll.kuaidi100.com/pollmap

请求参数(header)

名称类型默认值
Content-Typestringapplication/x-www-form-urlencoded

请求参数(body)

参数名是否必填类型说明
schemastring默认是json
paramObject主体参数对象

param数据结构:

参数名是否必填类型说明
keystring授权码,请申请企业版获取
companystring订阅的快递公司的编码,一律用小写字母,下载编码表格
numberstring订阅的快递单号,单号的最小长度6个字符,最大长度32个字符
fromstring快递寄件地址,最小颗粒到市级,例如:广东省深圳市
tostring快递收件地址 ,最小颗粒到市级,例如:广东省深圳市
parametersObject辅助参数

parameters数据结构:

参数名是否必填类型说明
callbackurlstring回调接口的地址,默认仅支持http,如需兼容https请联系快递100技术人员处理
saltstring签名用随机字符串
phonestring收寄件人的移动电话号码(只能填写一个,顺丰速运顺丰快运必填,其他快递公司选填。如座机号码有分机号,分机号无需传入;如号码是电商虚拟号码需传入“-“后的后四位。查看详情
mapConfigKeystring地图轨迹模板id,通过管理后台地图轨迹模板配置 信息获取,如不传则返回默认样式地图
resultv2string添加此字段表示开通行政区域解析功能。空:关闭(默认),3:开通行政区域解析功能以及物流轨迹增加物流状态名称 5: 开通行政解析功能以及物流轨迹增加物流高级状态名称、状态值并且返回出发、目的及当前城市信息

1.3 请求示例

schema = json
param = {
	"company": "ems",
	"number": "1136281381675",
	"from": "广东省深圳市南山区",
	"to": "北京市朝阳区",
	"key": "XXX ",
	"parameters": {
		"callbackurl": "您的回调接口的地址,如http://www.您的域名.com/kuaidi?callbackid=...",
		"salt": "*",
		"phone": "",
		"resultv2": "5"
	}
}

1.4 订阅返回结果

字段名称类型是否必填字段含义
resultBooleantrue表示成功,false表示失败
returnCodestring返回状态码,详细见1.6附表
messagestring状态信息

1.5 订阅响应报文示例(json格式)

{
    "result": true,
    "returnCode": "200",
    "message": "提交成功"
}

1.6 信息代码含义

returnCodemassage描述
200提交成功订阅提交成功
400无法解析出发地目的地无法解析或下单时间无法解析
500服务器错误快递100的服务器出理间隙或临时性异常,有时如果因为不按规范提交请求,比如快递公司参数写错等,也会报此错误
501重复订阅此单已经订阅成功且目前还在跟踪过程中。若要提交多次订阅,请在收到单号的status=abort或shutdown后隔半小时再提交订阅
502提交内容含有敏感关键字,被安全防护拦截回调地址、提交内容包含敏感词,请联系快递100工作人员
600您不是合法的订阅者(即授权Key出错)账号无可用单量,需要充值
601POLL: KEY 已过期账号无可用单量,需要充值
700不支持的快递公司拒绝订阅的快递公司,检查快递公司编码是否有误
701订阅方的订阅数据存在错误(如不支持的快递公司、单号为空、单号超长等)或错误的回调地址请检查快递公司编码、对照技术文档检查参数、在后台调试工具测试回调地址
702POLL:识别不到该单号对应的快递公司快递公司编码错误或者无可用单量,需要充值

二、推送接口

1.使用http协议表单提交的方式进行信息交互,字符编码默认统一采用UTF-8,数据格式:application/x-www-form-urlencoded;

2.字段类型约定:需要严格依据字段表格中给出的参数格式和大小进行开发。

3.字段解析约定:参数字段中的必选字段是每次调用接口时都要求必须传入的;

2.1 推送请求地址

由贵司在订阅请求中通过callbackurl字段提供

2.2 推送请求方式

post

2.3 推送输入参数

请求参数(header)

名称类型默认值
Content-Typestringapplication/x-www-form-urlencoded

请求参数(body)

参数名是否必填类型说明
signstring订阅参数salt值不为空时,推送数据将包含该加密签名,加密方式:md5(param+salt) ,注意加密后字符串一定要转32位大写
paramObject主体参数对象

param数据结构

参数名是否必填类型说明
statusStringpolling监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于status=abort的状态,需要增加额外的处理逻辑
billstatusStringgot包括got、sending、check三个状态,由于意义不大,已弃用,请忽略
messageString 监控状态相关消息,如:3天查询无记录,60天无变化
autoCheckString1快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。一个单如果我们连续3天都查不到结果,我方会(1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空;(2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码);并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld=原来的公司编码、comNew=纠正后的快递公司编码。
comOldStringyuantong贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段
comNewStringems我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段
lastResultObject 最新查询轨迹结果

lastResult数据结构

字段名称类型字段含义
messageString消息体,请忽略
stateInteger快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个主状态,如需要返回高级状态,请参考 resultv2 传值
statusInteger通讯状态,请忽略
conditionString快递单明细状态标记,暂未实现,请忽略
ischeckInteger是否签收标记,0未签收,1已签收,请忽略,明细状态请参考state字段
comString快递公司编码,一律用小写字母
nuString单号
trailUrlString轨迹地图链接
arrivalTimeString预计到达时间
totalTimeString平均耗时
remainTimeString到达还需多少时间
isLoopBoolean是否存在环路
ΘrouteInfo 路由信息
└Θfrom 出发地行政区信息
└number 政区信息编码
└name 政区信息名
└Θcur 当前地行政区信息
└number 政区信息编码
└name 政区信息名
└Θto 目的地行政区信息
└number 政区信息编码
└name 政区信息名
Θdatadata最新查询结果,数组,包含多项,全量,倒序(即时间最新的在最前),每项都是对象,对象包含字段请展开
└ contextString内容
└ timeString时间,原始格式
└ ftimeString格式化后时间
└statusString本数据元对应的物流状态名称或者高级状态名称,接口提交resultv2=3或者resultv2=5标记后才会出现
└areaCodeString本数据元对应的行政区域的编码,接口提交resultv2=3或者resultv2=5标记后才会出现
└areaNameString本数据元对应的行政区域的名称,接口提交resultv2=3或者resultv2=5标记后才会出现
└statusCodeString本数据元对应的高级物流状态值,接口中提交resultv2=5标记后才会出现
└areaCenterString本数据元对应的行政区域经纬度,接口中提交resultv2=5标记后才会出现
└locationString本数据元对应的快件当前地点,接口中提交resultv2=5标记后才会出现
└areaPinYinString本数据元对应的行政区域拼音,接口中提交resultv2=5标记后才会出现

2.4 推送输入参数示例

param = {
	"status": "polling",
	"billstatus": "got",
	"message": "",
	"lastResult": {
		"message": "ok",
		"state": "0",
		"status": "200",
		"condition": "F00",
		"ischeck": "0",
		"com": "ems",
		"nu": "V030344422",
		"data": [{
			"context": "【深圳市】 快件已在 【新南山科技北】 签收, 签收人: 家门口",
			"time": "2020-12-19 16:33:19",
			"ftime": "2020-12-19 16:33:19",
			"status": "签收",
			"areaCode": "CN440305000000",
			"areaName": "广东,深圳市,南山区",
			"location": "新南山科技北",
			"areaCenter": "113.923552,22.528499",
			"areaPinYin": "nan shan qu",
			"statusCode": "3", 
		}, {
			"context": "[深圳市】 【新南山科技北]正在第1次派件",
			"time": "2020-12-19 15:30:10",
			"ftime": "2020-12-19 15:30:10",
			"status": "派件",
			"areaCode": "CN440305000000",
			"areaName": "广东,深圳市,南山区",
			"location": "新南山科技北",
			"areaCenter": "113.923552,22.528499",
			"areaPinYin": "nan shan qu",
			"statusCode": "5"
		}],
		"routeInfo": {
			"from": {
				"number": "CN410202000000",
				"name": "吉林,辽源市,东丰县"
			},
			"cur": {
				"number": "CN440305000000",
				"name": "广东,深圳市,南山区"
			},
			"to": {
				"number": "CN440305000000",
				"name": "广东,深圳市,南山区"
			}
		},
		"isLoop": false,
		"trailUrl": "https://api.kuaidi100.com/tools/map/bc80574d538262aecc897a469151f0e3",
		"arrivalTime": "2020-12-19 16",
		"totalTime": "2天1小时",
		"remainTime": "1天2小时"
	}
}

2.5 轨迹链接应用示例

重要提醒:

(1)对于status= abort而且message中包含“3天”关键字而且comNew为空的快递单,需要增加以下处理逻辑:

  • 如果有专门的工作人员,可以:将快递单罗列给工作人员,由工作人员判断此单是否为假单:如果此单是真实单,则将此单重新向快递100提交一次;如果此单是假单,则将此单标记为假单,而且不再将此单提交给快递100。如果没有专门的工作人员,请直接用以下第二种方法进行操作;
  • 如果没有专门的工作人员,可以:在收到status=abort而且message中包含“3天”关键字而且comNew为空的提示10分钟后,将此快递单重新向快递100提交订阅,如果重新提交后仍然收到status= abort,则再次重新向快递100提交,如此,在同一月中如果重复提交3~4次都仍然收到status= abort,则此单为假单,不需要再将此单提交给快递100。

    对于40天内重复提交的快递单,结算时只计一次费用,对于从首次查询时间起算,超出40天的重复提交的快递单,结算两次费用。

(2)如果判断到status=abort且comNew不为空,则不需要重新提交订阅,且将贵司原来的快递公司编码改为comNew后的值,或在贵司数据库中增加一个快递公司编码为comNew+原来单号的运单;

(3)如果判断到status=polling且autoCheck=1,则此单为纠正公司编码后的跟踪信息,应保存。

  • 关于data:我方每次推送的都是完整的、全量的快递查询结果,而不是部分最新、增量的状态。由于同一快递单查询结果的数据源可能变动,不同数据源之间的结果略有差异,建议每次删除旧的数据后再写入新的数据。
  • 时间建议以ftime为准,不要使用time,time的存在仅仅为了兼容。

2.6 推送响应报文及错误码解释

参数名说明
resulttrue表示成功,false表示失败。如果提交回调接口的地址失败,30分钟后重新回调,3次仍旧失败的,自动放弃
returnCode200: 提交成功 500: 服务器错误 其他错误请自行定义
message返回的提示

2.7 推送返回示例

当我方调用贵方的回调接口(callbackurl)时,贵方需要先将我方提交的数据保存至贵方的数据库,接着向我方返回是否成功接收的响应报文及代码,即贵公司直接在回调接口的地址的response中填写如下内容:

{
    "result": true,
    "returnCode": "200",
    "message": "成功"
} 

注意:对于status= abort(message中包含“3天查询无记录”或者“60天无变化”)的快递单,也需要返回成功接收的响应报文及代码。

2.8 运单签收状态(state)说明

​ 默认状态下,在推送时我们提供了ischeck字段表示快递单是否签收(含正常签收,退回签收两种情况),通过state字段提供签收的具体状态,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 传 “5” 返回

三、快递公司编码

下载表格

如果您需要的公司不在此列表,请联系在线客服添加