快递下单开放 API 文档版本 V1.0

1. 接口说明

开放 API 供商户系统对接,实现在线下单、查询运单、取消运单、查看资金等能力。接口调用需先在用户中心「API 接口管理」页面创建令牌。

BASE 接口基础地址请在用户中心查看 登录用户中心「API 接口管理」页面可见
AUTH Authorization: Bearer 您的令牌 请求头携带,或使用参数 token=ak_xxx
请求格式POST 接口使用 application/x-www-form-urlencoded 或 application/json;GET 接口使用 URL 参数。
统一响应所有接口返回 JSON:{"code":0,"msg":"ok","data":{...}},code 为 0 表示成功。
令牌管理在用户中心「API 接口管理」创建 / 停用 / 删除令牌,可同时配置推送回调地址。
数据安全令牌相当于您的账户凭证,请妥善保管,不要明文写入前端页面或公开代码库。
本文档示例中的请求地址省略了接口域名,实际调用时请在用户中心「API 接口管理」页面查看基础地址并拼接。

2. 通用说明

2.1 统一响应结构

字段类型说明
codeint状态码:0 成功;1 业务失败(以 msg 为准);401 鉴权失败;404 资源不存在
msgstring状态说明:成功时为 ok 或业务提示;失败时为具体错误原因
dataobject/array响应数据:成功时为数据对象或数组;失败时为 null

2.2 枚举值

枚举取值说明
biz_type1 / 2业务类型:1 快递;2 快运
status0-7订单状态:0 待支付;1 待接单;2 已接单;3 运输中;4 已签收;5 已取消;6 异常;7 待补差
pay_status0-3支付状态:0 未支付;1 已支付;2 已退款;3 部分退款
调用示例:创建订单后,用返回的 order_no 查询详情与轨迹;状态变化会通过「推送回调」主动通知(见第 10 节)。

3. 渠道报价(下单前比价)

允许商户通过此接口获取运费报价。返回多个快递渠道的到手价,下单时选择其一即可。

POST/api/order/quote需令牌鉴权

请求参数

参数必填类型说明
biz_type否int业务类型:1 快递(默认)/ 2 快运
sender_name是string寄件人姓名
sender_mobile是string寄件人手机号(11 位)
sender_province是string寄件省
sender_city是string寄件市
sender_district否string寄件区 / 县
sender_address是string寄件详细地址
receiver_name是string收件人姓名
receiver_mobile是string收件人手机号(11 位)
receiver_province是string收件省
receiver_city是string收件市
receiver_district否string收件区 / 县
receiver_address是string收件详细地址
goods_name是string物品名称
weight是number重量(kg),必须大于 0
length / width / height否number长 / 宽 / 高(厘米)
remark否string备注
appoint_time否string预约上门时间,格式 YYYY-MM-DD HH:mm

请求示例

cURLcurl -X POST "/api/order/quote" \
  -H "Authorization: Bearer ak_xxxx" \
  -d "biz_type=1&sender_name=张三&sender_mobile=13800138000&sender_province=广东省&sender_city=深圳市&sender_district=南山区&sender_address=高新南一道9号&receiver_name=李四&receiver_mobile=13912345678&receiver_province=浙江省&receiver_city=杭州市&receiver_district=西湖区&receiver_address=文三路478号&goods_name=服装&weight=2.5&length=30&width=20&height=15"

返回示例

response{
  "code": 0,
  "msg": "ok",
  "data": {
    "qtoken": "1a2b3c4d5e6f",
    "debug": false,
    "offers": [
      {
        "oid": "yida|1|SF-1",
        "company_code": "SF",
        "company_name": "顺丰速运",
        "logo": "/static/logo/sf.png",
        "intro": "时效快,服务好",
        "eta": "次日达",
        "total_price": 12.5
      }
    ]
  }
}

返回字段说明

字段类型说明
qtokenstring本次询价令牌(会话标识)
offersarray渠道报价列表,按总价从低到高
offers.oidstring报价唯一标识:下单时传此值即可精确指定渠道
offers.company_codestring快递公司编码(SF 顺丰 / ZTO 中通 / JD 京东 / YTO 圆通等)
offers.company_namestring快递公司名称
offers.logostring快递公司图标地址
offers.introstring渠道简介
offers.etastring时效说明
offers.total_pricenumber到手总价(元)= 渠道价 + 平台加价
说明:下单时传 oid 可精确定位渠道,不传则自动取最低价渠道。

4. 创建订单

允许商户通过此接口下单。下单即从会员余额扣款,扣款成功后向快递公司推送,余额不足会返回失败。

POST/api/order/create需令牌鉴权

请求参数

参数必填类型说明
与「渠道报价」相同的基础参数:寄收件信息、物品、重量、尺寸(见第 3 节参数表)
oid否string报价返回的报价标识(推荐);不传则自动取最低价渠道
source否string来源标识:web / api / miniapp,不传默认按 api
supplier_id否int供应商 ID(旧参数,与 oid 二选一)
company_code否string快递公司编码(旧参数,需配合 supplier_id / channel_id)
channel_id否string渠道 ID(旧参数)

请求示例

cURLcurl -X POST "/api/order/create" \
  -H "Authorization: Bearer ak_xxxx" \
  -d "biz_type=1&oid=yida|1|SF-1&sender_name=张三&sender_mobile=13800138000&sender_province=广东省&sender_city=深圳市&sender_district=南山区&sender_address=高新南一道9号&receiver_name=李四&receiver_mobile=13912345678&receiver_province=浙江省&receiver_city=杭州市&receiver_district=西湖区&receiver_address=文三路478号&goods_name=服装&weight=2.5&length=30&width=20&height=15&remark=轻放&appoint_time=2026-11-02 14:00"

返回示例

response{
  "code": 0,
  "msg": "下单成功",
  "data": {
    "id": 10086,
    "order_no": "KD20261102000123",
    "waybill_no": "",
    "company_name": "顺丰速运",
    "total_price": 12.5,
    "status": 0
  }
}

返回字段说明

字段类型说明
idint订单 ID(详情 / 轨迹 / 取消接口可传此值)
order_nostring平台订单号(对外查询唯一标识)
waybill_nostring快递运单号:下单成功时可能为空,快递公司接单后通过推送或轨迹接口回传
company_namestring快递公司名称
total_pricenumber应付金额(元):已从会员余额扣款
statusint订单状态:0 待支付 / 1 待接单 / …(见通用说明)

5. 订单列表

分页查询当前令牌所属会员的订单列表,支持按业务类型、状态、关键词过滤。

GET/api/order/list需令牌鉴权

请求参数

参数必填类型说明
page否int页码,默认 1
page_size否int每页条数,默认 15,最大 100
biz_type否int业务类型:1 快递 / 2 快运
status否int按订单状态过滤(见通用说明)
keyword否string关键词:按订单号 / 运单号模糊搜索

请求示例

cURLcurl "/api/order/list?page=1&page_size=15&biz_type=1&status=4&keyword=KD" \
  -H "Authorization: Bearer ak_xxxx"

返回示例

response{
  "code": 0,
  "msg": "ok",
  "data": {
    "total": 23,
    "page": 1,
    "pageSize": 15,
    "list": [
      {
        "id": 10086,
        "order_no": "KD20261102000123",
        "waybill_no": "SF1234567890123",
        "biz_type": 1,
        "company_code": "SF",
        "company_name": "顺丰速运",
        "total_price": 12.5,
        "pay_status": 1,
        "status": 3,
        "status_text": "运输中",
        "sender_city": "深圳市",
        "receiver_city": "杭州市",
        "create_time": "2026-11-02 09:30:00"
      }
    ]
  }
}

返回字段说明

字段类型说明
totalint符合条件的订单总数
page / pageSizeint当前页码 / 每页条数
listarray当前页订单列表,字段如下
list.id / order_no / waybill_no-订单 ID / 平台订单号 / 快递运单号
list.biz_typeint1 快递 / 2 快运
list.company_code / company_name-快递公司编码 / 名称
list.total_pricenumber订单金额(元)
list.pay_statusint支付状态:0 未支付 / 1 已支付 / 2 已退款
list.statusint订单状态(见通用说明)
list.status_textstring订单状态文字(如「运输中」)
list.sender_city / receiver_citystring寄 / 收件城市(省 + 市)
list.create_timestring下单时间 YYYY-MM-DD HH:mm:ss

6. 订单详情

获取单个订单的完整信息,包含寄收件人、物品、费用、状态及时间线。

GET/api/order/detail?id=10086需令牌鉴权

请求参数

参数必填类型说明
id是int订单 ID(创建订单接口返回)

请求示例

cURLcurl "/api/order/detail?id=10086" \
  -H "Authorization: Bearer ak_xxxx"

主要返回字段

字段类型说明
id / order_no / waybill_no-订单 ID / 平台订单号 / 快递运单号
biz_type / sourceint业务类型(1 快递 / 2 快运)/ 来源(web / api / miniapp)
supplier_code / supplier_order_no-渠道供应商编码 / 供应商侧订单号
company_code / company_name-快递公司编码 / 名称
total_price / paid_amountnumber订单金额 / 实付金额(元)
channel_price / markupnumber渠道价 / 平台加价(元)
pay_status / pay_type / pay_time-支付状态 / 支付方式 / 支付时间
sender_name / sender_mobile / sender_province / sender_city / sender_district / sender_address-寄件人信息
receiver_name / receiver_mobile / receiver_province / receiver_city / receiver_district / receiver_address-收件人信息
goods_name / weight / length / width / height-物品名称 / 重量(kg)/ 尺寸(厘米)
remark / appoint_time-备注 / 预约上门时间
status / supplier_status-订单状态 / 供应商侧状态描述
create_time / accept_time / finish_time / cancel_timestring下单 / 接单 / 完成 / 取消时间
cancel_reasonstring取消原因
返回数据为订单全部字段(JSON 对象),实际字段以接口返回为准。

7. 物流轨迹

按订单 ID 或运单号查询物流轨迹,返回最新状态与轨迹列表。

GET/api/order/track需令牌鉴权

请求参数

参数必填类型说明
id否int订单 ID(与 waybill_no 二选一)
waybill_no否string快递运单号(与 id 二选一)

请求示例

cURLcurl "/api/order/track?waybill_no=SF1234567890123" \
  -H "Authorization: Bearer ak_xxxx"

返回示例

response{
  "code": 0,
  "msg": "ok",
  "data": {
    "status": "运输中",
    "traces": [
      { "time": "2026-11-02 10:12:00", "desc": "快件已到达【杭州转运中心】" },
      { "time": "2026-11-02 08:30:00", "desc": "快件已从【深圳集散中心】发出" }
    ]
  }
}

返回字段说明

字段类型说明
statusstring最新轨迹推断的状态文字(如:待取件 / 运输中 / 已签收)
tracesarray轨迹列表,按时间倒序
traces.timestring轨迹时间
traces.descstring轨迹内容
运单号尚未生成时返回 {"status":"","traces":[]},msg 为「运单尚未生成」。

8. 取消运单

允许商户取消已下单的运单;已支付订单取消成功后自动退款到会员余额。

POST/api/order/cancel需令牌鉴权

请求参数

参数必填类型说明
id否int订单 ID(与下方二者三选一)
order_no否string平台订单号
waybill_no否string快递运单号
reason否string取消原因,默认「用户取消」

取消规则

情形处理
已签收订单不可取消
重货(快运)订单创建后 1 小时内禁止取消,需联系客服
未回传运单号的订单禁止取消,需联系客服
已支付订单取消成功自动退款到会员余额

请求示例

cURLcurl -X POST "/api/order/cancel" \
  -H "Authorization: Bearer ak_xxxx" \
  -d "order_no=KD20261102000123&reason=买家改地址"

返回示例

response{
  "code": 0,
  "msg": "取消成功",
  "data": {
    "id": 10086,
    "order_no": "KD20261102000123",
    "waybill_no": "SF1234567890123",
    "status": 5,
    "status_text": "已取消",
    "refund": true
  }
}

返回字段说明

字段类型说明
id / order_no / waybill_no-订单 ID / 平台订单号 / 运单号
statusint取消后状态:5 已取消
status_textstring状态文字
refundbool是否已退款(已支付订单取消后为 true)

9. 资金信息

查询会员账户的钱包余额、推广费与积分,无需请求参数。

POST/api/member/fund需令牌鉴权

请求示例

cURLcurl -X POST "/api/member/fund" \
  -H "Authorization: Bearer ak_xxxx"

返回示例

response{
  "code": 0,
  "msg": "ok",
  "data": {
    "balance": 100.00,
    "commission": 12.21,
    "integral": 36
  }
}

返回字段说明

字段类型说明
balancenumber会员钱包余额(元):下单扣款、退款到账均作用于该余额
commissionnumber推广费(元):推广佣金收益
integralint积分

10. 推送回调(平台 → 您的服务器)

在令牌「推送回调地址」填写您的接口地址后,订单状态或运单号发生变更时,平台会主动 POST JSON 到该地址。留空则不推送。

同一会员有多个令牌时,取「启用中」且最早配置回调地址的令牌。回调地址需为 http(s) 开头的可访问链接。
POST您的回调地址Content-Type: application/json

通用推送参数

参数必填类型说明
thirdOrderNo是string平台订单号(对应下单返回的 order_no)
waybillNo是string快递运单号(未生成时为空字符串)
orderNo是string平台订单 ID(对应下单返回的 id)
type是string快递公司编码(如 SF / ZTO / JD / YTO)
pushType是int推送类型:1 状态变更;4 订单变更(运单号生成或更换)
data是object推送数据对象,结构由 pushType 决定(见下)

pushType=1 状态变更 · data 对象

字段类型说明
statusint订单状态:0 待支付;1 待接单;2 已接单;3 运输中;4 已签收;5 已取消;6 异常
descstring状态描述(如「运输中」「已取消」)

pushType=4 订单变更 · data 对象

字段类型说明
changeTypeint1 新运单号,原运单号仍可查询;2 新运单号,原运单号被覆盖
newWaybillNostring新运单号

应答要求

返回格式请在 2 秒内返回字符串 SUCCESS(大写)。未返回视为本次推送失败。
重推机制推送失败不阻塞业务;后续状态再次变更时会携带最新状态自动重推,全部记录可在平台后台「推送日志」查询(接口标识 customer)。

推送示例

状态变更{
  "thirdOrderNo": "KD20261102000123",
  "waybillNo": "SF1234567890123",
  "orderNo": "10086",
  "type": "SF",
  "pushType": 1,
  "data": {
    "status": 3,
    "desc": "运输中"
  }
}
运单号生成{
  "thirdOrderNo": "KD20261102000123",
  "waybillNo": "SF1234567890123",
  "orderNo": "10086",
  "type": "SF",
  "pushType": 4,
  "data": {
    "changeType": 1,
    "newWaybillNo": "SF1234567890123"
  }
}

接收端示例(PHP)

callback.php<?php
// 读取并记录推送内容
$body = file_get_contents('php://input');
file_put_contents('/var/log/callback.log', $body, FILE_APPEND);
// 必须在 2 秒内输出 SUCCESS
echo 'SUCCESS';