前言
首先明确几个关键要点。通过运单号和快递公司编码发起订阅时——请注意时间节点——当包裹被放入驿站或快递柜后,系统会自动将对应的取件码通过回调地址推送给您。整个过程支持两种模式:主动推送和手动查询。若未配置回调地址,您仍可通过查询接口主动获取取件码,但前提是订阅必须成功,否则查询接口无法返回数据。
一个至关重要的限制:必须在运单到达驿站之前完成订阅,否则订阅将失效。支持的驿站类型可下载清单查看。总体来说,这套快递取件码API提供三大核心功能:发起订阅、查询取件码、实时推送。
应用场景
所有需要“收货提醒”的场景几乎都能应用。例如购物APP、服务号等平台,在日常的收件通知、寄件与退换货流程管理,甚至代取服务和特殊包裹监管中,均可接入快递取件码推送服务。触达率可达100%。

API介绍
点击此处查看详情——需要先说明的是,以下所有接口调用均需遵循最基本的参数规范。
发起订阅
通过快递信息发起订阅。简单来说,就是告知系统您已关注该运单,一旦生成取件码,系统将立即通知您。
请求说明
发起订阅时,这些参数需要特别注意:
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
| shipperCode | String | 是 | 快递公司编码,详见下载的对照表 |
| logisticCode | String | 是 | 运单号 |
| callBackUrl | String | 否 | 回调地址,有则自动推送 |
| senderMobile | String | 否 | 发件人号码 |
| virtualNumber | String | 否 | 虚拟号码,隐私保护场景下使用 |
| senderAddress | String | 否 | 发件人地址 |
| receiverMobile | String | 是 | 收件人电话 |
| receiverAddress | String | 否 | 收件人地址 |
返回样例
{
"code": 200, // 返回码,详见返回码说明
"msg": "成功", // 返回码对应描述
"taskNo": "043439882226367117195632", // 本次请求号
"charge": true, // 计费标志
"data": {
"logisticCode": "79105030690097", // 运单号
"shipperCode": "ZTO" // 快递公司编码
}
}
查询取件码
如果您不希望使用推送模式,或推送失败,可以主动发起查询取件码。但需再次强调:必须先成功订阅,否则查询接口无法使用。
请求说明
查询时参数与此前订阅基本一致:
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
| shipperCode | String | 是 | 快递公司编码 |
| logisticCode | String | 是 | 运单号 |
| senderMobile | String | 否 | 发件人号码 |
| virtualNumber | String | 否 | 虚拟号码(隐私保护场景) |
| senderAddress | String | 否 | 发件人地址 |
| receiverMobile | String | 是 | 收件人电话 |
| receiverAddress | String | 否 | 收件人地址 |
返回样例
{
"code": 200, // 返回码
"msg": "成功",
"taskNo": "043439882226367117195632",
"charge": true,
"data": {
"logisticCode": "79105030690097", // 运单号
"shipperCode": "ZTO", // 快递公司编码
"pickUpCode": "xxx", // 取件码
"pickUpAddress": "xxx", // 代收点地址
"pickUpStation": "xxx" // 代收点名称
}
}
推送说明
当包裹被放入驿站或快递柜后,系统会将取件码信息自动推送到您指定的callBackUrl接口。这一机制至关重要——推送是系统实时主动通知,而非您主动请求。
数据结构
推送的数据格式如下:
{
"pickUpCode": "13-3-5236",
"code": "200",
"pickUpAddress": "xxx街道xx中心1幢",
"logisticCode": "9816475xxxxxx",
"shipperCode": "YZPY"
}
