NAV

CDEK接口说明 CDEK API Reference

文档内容 Doc-content

该文档集中了大部分CDEK公开的接口技术描述

编辑者:冬星 – a.kolupaev@cdek.ru

该文档里发现错误请联系冬星, 感谢您的反馈

版本历史 Doc-history

已注册的ERP

以下物流商ERP是已经注册的并且已经开发好对接CDEK接口的ERP列表。 对接模块开发者必须提供给CDEK测试账号才可以被录入到该列表

推荐指数 ERP 官网 价格 + 维护费(人民币) *
3 K5 易宇通科技 http://kingtrans.cn 2800-15800 + 15%/年
3 华磊科技 http://www.sz56t.com 19 800 + 3 800/年
2 钮门快递系统 http://www.56track.com 20 000
1 速递管家 http://www.rtb56.com 38 000 + 10 000/年

* 是参考价格具体价格取决于不同的配置请联系ERP销售咨询

推荐指数取决于该ERP开发的功能数量:

下单接口:1分

取消订单接口:1分

推送重量接口:3分

更新订单信息接口:2分

更新收件人信息接口:2分

物流商无法查看接口日志则份数乘以0.5

已注册的ERP设置CDEK接口

由于CDEK不是以上ERP的开发者所以设置CDEK接口方式有可能不同,具体设置接口方法请联系ERP售后咨询。 CDEK只提供对接账号 - 获取对接账号

接入API说明书

开发对接流程 Integration

  1. 获取开发者密钥
  2. 获取客户合同号
  3. 获取对接账号
  4. 开始开发并测试
  5. 测试完成开始正式使用接口

1) 获取开发者密钥 Developer Key

申请资料: 开发者名称(公司或者个人姓名)、联系方式、ERP或者CMS或者其他软件名称

申请邮箱:it-support-china@cdek.ru

2) 获取对接账号 Integration Account

申请资料: CDEK客户合同号 (以获得合同号请联系CDEK客户经理)、将使用的ERP系统名称 对接账号包括两个字段:

Account: 对接账号

Secure_password: 对接密码

每个客户合同号只有一个对应的对接账号

没有合同号的话可以申请对接测试账号,申请测试账号时候需要提供公司名或者个人姓名和联系方式、所在城市

申请邮箱:it-support-china@cdek.ru

接口服务器地址 API Servers

接口服务器一 Server-1

http://api.cdek.ru

接口服务器二 Server-2

其他对接接口(下单,获取网点列表等等)

https://integration.cdek.ru - 俄罗斯安全连接

http://integration.cdek.ru - 俄罗斯一般链接

用户验证 Auth

部分接口请求需要通过用户验证,有两种验证:

  1. 按照用账号(Account)和秘钥(Secure)
  2. 按照令牌(token)

第一种验证方式 Account-Secure

用Python计算验证密钥:

import hashlib
m = hashlib.md5()

Account  ='3335f13492502568373e88adaf1aad89' #对接账号
Secure_password =  'ba9fe430acdcfd1b0266a4d6115454f2' #对接密码
Date = '2018-04-01' #当天日期

m.update(Date+'&'+Secure_password) #计算MD5散列函数
secure = m.hexdigest() #转为十六进制数字
print secure #打印出结果
# 613ed76d69d6989406244dc955f5fa94

第一种验证 – 提交对接账号和对接秘钥,获取对接账号之后可以计算出来用于验证的对接密钥

按照今天日期 Date 和账号密码 Secure_password 可以计算出来对接密钥 – secure MD5散列函数的结果

secure = md5(Date+"&"+Secure_password) 比如:

当天日期 Date = 2018-04-01

对接账号 Account = 3335f13492502568373e88adaf1aad89

对接密码 Secure_password = ba9fe430acdcfd1b0266a4d6115454f2

对接秘钥 secure = md5("2018-04-01&ba9fe430acdcfd1b0266a4d6115454f2")

第二种验证方式 Token

用Python获取验证令牌(token)

import requests
import hashlib

username = 'apiuser_xxx'        #账号
password = '5461s3ffa002'       #密码

tocken = ""
auth_url = 'http://auth.api.cdek.ru/api/tokenauth/authorize'

m = hashlib.md5()
m.update(password)
hashedPass = m.hexdigest()
headers = {'content-type' : 'application/json'}
get_token_data = {  "user": username,  "hashedPass": hashedPass}
result = requests.post(auth_url, json=get_token_data, headers=headers)

#返回成功:
{"token":"16c8ead608de41299636aa28a38aae87"}

#提交失败的话):

{
 "alerts":
  [{
      "type":"danger",
      "msg":"Неверное имя пользователя или пароль.",
          #<!-- 验证失败 - 用户名或密码不对  -->
      "errorCode":"auth_failed"
  }]
}

第二种 Token – 按照用户名和密码获取令牌(token)

获取token请求地址: http://auth.api.cdek.ru/api/tokenauth/authorize

提交的数据:

返回数据中 token 就是所需要的令牌

获取token失败

获取令牌失败返回数据:

auth_failed – 验证失败 - 用户名或密码不对

下单接口 Get Waybill

下单流程 Process Diagram

下单流程

下单接口 DeliveryRequest

请求方式 Order-params

下单提交的XML标签和属性 Order-XML

用Python提交更请求:

# -*- coding: utf-8 -*-
import requests
from pprint import pprint  

input_xml_file = 'waybill-create.xml'
full_url = "http://int.cdek.ru/new_orders.php"

print "Request to: "+full_url
xml_data = ''
with open(input_xml_file, 'r') as content_file:
    xml_data = content_file.read()

print xml_data
r = requests.post(full_url, data = {'xml_request': xml_data}, timeout=30,  headers={"Content-Type":"application/x-www-form-urlencoded; charset=utf8"})


res = r.text.encode('utf-8')
print res

序号 标签/属性名称 格式 必需 描述
- DeliveryRequest 下单请求标签
1 DeveloperKey varchar(32) ERP开发者识别码
2 Number varchar(40) 请求序号(取消订单时候需要的,建议跟 Order->Number 一致)
3 Date Date 下单日期
4 Account varchar(255) 对接的账号 (按CDEK客户合同号签发的32位的字段)
5 Secure varchar(255) 对接密钥(计算出来的)
6 OrderCount Number 该请求中订单数量
7 Order 订单标签
7.1 Number string(40) 电商提供的订单跟踪号,不可以重复,可以用它来跟踪订单,
7.2 SendCountryCode string(2) 备注一 始发地国家代码(中国-CN、俄罗斯-RU ISO 3166-1 二维字母)
7.3 SendCityCode integer 备注一 始发地城市ID
7.4 SendCityPostCode string(6) 备注一 始发地邮编
7.5 RecCountryCode string(2) 备注二 目的第国家代码(中国-CN、俄罗斯-RU ISO 3166-1 二维字母)
7.6 RecCityCode integer 备注二 目的地城市ID
7.7 RecCityPostCode string(6) 备注二 目的地邮编
7.8 Address 备注三 目的地地址(到门-街道楼房门号,到仓-网点代码)
7.8.1 Street string(50) 备注四 目的地街道
7.8.2 House string(30) 备注四 目的地楼号
7.8.3 Flat string(10) 备注四 目的地门号
7.8.4 PvzCode string(10) 备注四 仅自提需要提交的(到仓)目的地服务网点代码
7.9 RecipientName string(128) 收件人姓名
7.10 RecipientEmail string(255) 收件人电子邮箱地址
7.11 Phone string(255) 收件人手机号 (可逗号",“隔着填多个 - 必须目的国家的电话,不建议填座机)
7.12 TariffTypeCode integer 服务代码
7.13 DeliveryRecipientCost float 到付代收运费金额
7.14 ItemsCurrency string(10) 申报价值币种(默认等于结算币种)
7.15 Comment string(255) 订单特殊备注
7.16 SellerName string(255) 卖家名称
7.17 Package 包装件的标签
7.17.1 Number string(20) 包装件序号 (1,2,3等等 一票多个包裹时候用来识别具体包裹)
7.17.2 BarCode string(20) 包装件条码 (可以用电商订单号)
7.17.3 Weight integer 毛重 (克)
7.17.4 SizeA integer 长度(厘米) 1-150 cm
7.17.5 SizeB integer 宽度(厘米) 1-150 cm
7.17.6 SizeC integer 高度(厘米) 1-150 cm
7.17.7 Item 产品的标签 (可多个)
7.17.7.1 WareKey string(50) SKU
7.17.7.2 Cost float 单件申报价值(结算币种)
7.17.7.3 Payment float 单件到付代收货款金额(目的地币种)
7.17.7.4 Weight integer 单件重量(克)
7.17.7.5 Amount integer 产品数量
7.17.7.6 Comment string(255) 产品详细名
7.18 AddService 增值服务标签
7.18.1 ServiceCode integer 增值服务代码

XML内容实例:

<?xml version="1.0" encoding="UTF-8"?>
<DeliveryRequest 
    DeveloperKey="abcdefd4621d373cade4e832627b123" 
    Number="888" 
    Date="2018-12-05" 
    Account="098f6bcd4621d373cade4e832627b4f6" 
    Secure="5abbba4119be98a196d50694359df66f" 
    OrderCount="1">
    <Order Number="TEST-163432451"  
        DeliveryRecipientCost="0" 
        SendCityPostCode="101000" 
        RecCityPostCode="443000"
        RecipientName="Sergei Alekseevich Menyaev"  
        Phone="9171155969"  
        Address="Samarskaya oblast, Samara, Artsibushevskaya, 26, 13"  
        TariffTypeCode="137">
        <Address Street="Artsibushevskaya" House="26" Flat="13" />
        <Package Number="1" BarCode="16343245" Weight="700">
            <Item 
                WareKey="1" 
                Cost="5000" 
                Payment="0.00" 
                Weight="305" 
                Amount="1" 
                Comment="iphone 6"/>
            <Item 
                WareKey="2" 
                Cost="5000" 
                Payment="0.00" 
                Weight="305" 
                Amount="1" 
                Comment="iphone 6"/>
        </Package>
    </Order>
</DeliveryRequest> 

备注一 – 有两种指定始发城市的方法:

  1. 城市ID – SendCityCode CDEK数据库的城市ID(可以在查询城市接口查询)
  2. 国家ID和邮政编码 – SendCountryCode 和 SendCityPostCode

备注二 – 有两种指定目的地城市的方法:

  1. 城市ID – RecCityCode CDEK数据库的城市ID(可以在查询城市接口查询)
  2. 国家ID和邮政编码 – RecCountryCode 和 RecCityPostCode

备注三 – 可以把地址一个字符串的提交(具体看XML内容实例)

备注四 – 根据投送模式(到仓库、到门): 如果投送模式是自提(到仓)四个项其中只需要提交服务网点代码 PvzCod, 到门的话需要提交 街道、楼号、门号

取消订单接口 Delete

通过该接口可以取消订单(删除订单)

请求方式 Delete-params

提交的数据 Delete-data

取消订单请求实例一 (XML):

<?xml version="1.0" encoding="UTF-8" ?>
<DeleteRequest DeveloperKey="12345670e2a14beef66fbe688657bcdef" Number="ABCDEF0034567890YQ" Account="af976a50e2a14beef66fbe688657eda1" Date="2018-08-08"  Secure="59aa6d7f28338ff8678e3078e338916b" OrderCount="1">
    <Order Number="ABCDEF0034567890YQ" /> 
</DeleteRequest>

请求失败返回的数据例子 (XML):


<?xml version="1.0" encoding="UTF-8"?>
<response>
    <DeleteRequest Msg="Удалено заказов:0" ErrMsg="Не удалено заказов:1"> 
                  <!-- 成功取消的订单数量:0       取消失败订单数量:1 -->
        <Order Number="" ErrorCode="ERR_ORDER_NOTFIND" Msg="Заказ не найден в базе СДЭК: Number=ABCDEF0034567890YQ"/>
                                                          <!-- 订单未找到 :Number=ABCDEF0034567890YQ" -->
    </DeleteRequest>
</response>

请求成功返回的数据例子 (XML):

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <DeleteRequest Msg="Удалено заказов:1" >
              <!-- 成功取消的订单数量:1 -->
        <Order Number="ABCDEF0034567890YQ" Msg="Заказ удален" />
                                         <!-- 订单取消成功 -->
    </DeleteRequest>
</response>

XML请求数据

序号 标签/属性名称 格式 必需 描述
- DeleteRequest 取消订单标签
1 DeveloperKey varchar(32) ERP开发者识别码
2 Number varchar(40) 下单时候提交的请求序号 (DeliveryRequest->Number)
3 Date Date 今天的日期
4 Account varchar(32) 对接的账号 (按CDEK客户合同号签发的32位的字段)
5 Secure varchar(32) 对接密钥(计算出来的)
6 OrderCount Number 该请求中订单数量
7 Order 订单标签
7.1 Number string(40) 网店提供的跟踪号(网店订单号),下单时候提交的请求序号 (DeliveryRequest->Order->Number)

取消订单请求失败

ERR_ORDER_NOTFIND – 没找到对应的订单

ERR_AUTH – Secure 计算错误

下单异常代码 Errors

下单时接口返回的异常代码:

异常代码 异常名称 – 异常解释
ERR_XML_EMPTY 没提交XML数据 提交XML并且XML的内容放在$_POST[xml_request]变量
ERR_AUTH 验证失败 提交的对接账号和秘钥不匹配
ERR_RESULT_SERVICE_EMPTY 未找到对应的服务 请尝试使用其他服务代码或者申请加上该服务
ERR_RECCITYPOSTCODE 未找到对应邮编 该邮编不在CDEK数据库,请申请加上邮编
ERR_PACK_WEIGHT_MIN 包裹重量过低 包裹重量不能少于100克
ERR_ORDER_DUBL_EXISTS 订单号重复 该订单号(DeliveryRequest->Order->Number)已存在,不能重复下单
ERR_WAREKEY_DUBL 产品条码重复 一个订单里不可重复产品条码(DeliveryRequest->Order->Package->WareKey)
ERR_NEED_ATTRIBUTE 没提交数据 提交的XML里缺少标签(比如ADDRESS标签等等)
ERR_RECCITYPOSTCODE_DUBL 目的地邮编对应多个城市 邮编对应多个城市无法识别具体城市
ERR_SENDCITYPOSTCODE_DUBL 始发地邮编对应多个城市 邮编对应多个城市无法识别具体城市
ERR_INVALID_WEIGHT 重量必须大于0 提交的重量要大于0
ERR_INVALID_WEIGHT 重量必须大于0 提交的重量要大于0
ERR_GOODS_CODE_MAX 产品条码过长 产品条码(DeliveryRequest->Order->Package->WareKey)不能超过50字
ERR_RECCITYCODE 目的地代码错误 提交了不正确的目的地代码,必须是数字(DeliveryRequest->Order->RecCityCode)
ERR_NOT_FOUND_RECCITY 未指定目的地 没提交目的地的邮编或者城市代码(RecCityPostCode或RecCityCode)
ERR_WEIGHT_LIMIT 超过该服务重量限制 提交的重量(DeliveryRequest->Order->Package->Weight)超过了该服务重量限制
ERR_API 调用接口失败 CDEK服务器异常请联系CDEK技术支持
ERR_SHORT_RECIPIENT_NAME 收件人姓名过短 收件人名称必须长于3个字
ERR_SENDCITYCODE 始发地代码错误 提交了不正确的始发地代码,必须是数字(DeliveryRequest->Order->SendCityCode)
ERR_GOODS_EMPTY 没有输入产品 没提交产品标签(DeliveryRequest->Order->Package->Item
ERR_CURRENCY_NOTVALID_DECLAREDCOST_CLIENT 不正确的产品报价币种 产品报价币种(ItemsCurrency)必须跟合同里面的结算币种一致
ERR_DATABASE_INSERTINTOORDERS 下单失败 CDEK服务器异常请联系CDEK技术支持
ERR_PVZ_WITH_TARIFF_MISTAKE 网点代码错误 目的地没有对应的网点代码
ERR_CASH_ON_DELIV_PAYREC_MISTAKE 目的城市不提供代收货款服务 目的城市不提供代收货款服务
ERR_INVALID_TARIFF_WITH_WEIGHT_MORE_30 重量大于30kg 该服务不支持重量大于30kg(DeliveryRequest->Order->Package->Weight)
ERR_CURRENCY_CASH_ON_DELIV_MISTAKE 提交的收件人币种不对 需要按照目的国家提交正确的币种代码

更新订单接口 Order-update

查询服务网点接口 Branch

通过该接口可以查到CDEK服务网点的联系方式、地址、位置

接口地址 Branch-api

请求网址: http://integration.cdek.ru/pvzlist/v1/json

Method: GET

筛选参数 Branch params:

参数 描述 类型 必填
citypostcode 目的地城市的邮编 string
cityid CDEK城市ID integer
type 服务网点类型 (PVZ-网点、POSTOMAT-自提柜、ALL-全部) string(8)
countryid CDEK国家ID(1-俄罗斯,138-中国) integer
regionid CDEK州省ID integer
havecashless 接收无现金支付方式 1-是 0-否 integer
allowedcod 接收到付代收款 1-是 0-否 integer
isdressingroom 有试衣间 1-是 0-否 integer
weightmax 包裹最大接收的重量 kg integer
lang 查询结果语言 (rus-俄文、zho-中文、eng-英文) string(3)
takeonly 仅自提(不收货) boolean

URL例子:

http://integration.cdek.ru/pvzlist/v1/json?countryid=138&lang=zho – 查询中国的服务网点,结果为中文

http://integration.cdek.ru/pvzlist/v1/json?countryid=1&lang=rus – 查询俄罗斯的服务网点,结果为俄文

http://integration.cdek.ru/pvzlist/v1/json?lang=zho – 查询全部服务网点,结果为中文

返回结果描述 Branch result

GET http://integration.cdek.ru/pvzlist/v1/json?cityid=22887&lang=zho (json 结果):

{
  "pvz": [
    {
      "code": "XXX1",
      "postalCode": "161005",
      "name": "合作",
      "countryCode": "138",
      "countryName": "中国",
      "regionCode": "884",
      "regionName": "黑龙江省",
      "cityCode": "22887",
      "city": "黑河市",
      "workTime": "周一至周日 08:00-20:00",
      "address": "合作区弘发粮苑26号门市",
      "fullAddress": "中国黑龙江省黑河市合作区弘发粮苑26号门市",
      "phone": "+8613845677246",
      "note": "",
      "coordX": "127.489309",
      "coordY": "50.242221",
      "type": "PVZ",
      "ownerCode": "cdek",
      "isDressingRoom": "true",
      "haveCashless": "true",
      "allowedCod": "true",
      "nearestStation": "",
      "metroStation": "",
      "site": "",
      "email": "",
      "qqId": "",
      "addressComment": "",
      "workTimeYList": [
        {
          "day": "1",
          "periods": "08:00/20:00"
        },
        {
          "day": "2",
          "periods": "08:00/20:00"
        },
        {
          "day": "3",
          "periods": "08:00/20:00"
        },
        {
          "day": "4",
          "periods": "08:00/20:00"
        },
        {
          "day": "5",
          "periods": "08:00/20:00"
        },
        {
          "day": "6",
          "periods": "08:00/20:00"
        },
        {
          "day": "7",
          "periods": "08:00/20:00"
        }
      ],
      "phoneDetailList": [
        {
          "number": "+8613845677246"
        }
      ]
    }
  ]
}

返回的结果为json格式,Pvz是服务网点列表,其中每一个网点包含以下参数:

参数 描述 类型 必填
Code 服务网点代码 string(10)
PostalCode 网点所在城市的邮编 string(10)
Name 网点名称 string(50)
CityCode CDEK城市ID integer
City 城市名称 string(50)
WorkTime 营业时间 string(100)
Address 详细地址 string(255)
FullAddress 国家+州省名+城市名+详细地址 string(255)
Phone 联系方式 phone
Note 特殊备注 string(255)
coordX 经度 float
coordY 纬度 float
WeightLimit 重量限制
WeightMin WeightLimit的子项 能收的最大重量 float
WeightMax WeightLimit的子项 最小重量 float
CountryCode CDEK国家ID(1-俄罗斯,138-中国) integer
CountryName 国家名称 string(50)
RegionCode 州省ID integer
RegionName 州省名称 string(50)
IsDressingRoom 有试衣间 “true"、"false” boolean
HaveCashless 支持无现金支付方式 “true"、"false” boolean
AllowedCod 支持到付 “true"、"false” boolean
NearestStation 附近的交通站 string(50)
Site 网站网址 string(255)
MetroStation 附近的地铁站 string(50)
workTimeYList boolean
day workTimeYList 日期序号(1-7) integer
periods workTimeYList 营业时间段 string(20)
OfficeImage 服务网点相册
url OfficeImage的子项 图片网址 string(255)
OfficeHowGo 地图
url OfficeHowGo的子项 图片网址 string(255)

查询运费时效接口 Calculator

通过该接口可以查到运费和时效,目的地是否有具体CDEK提供的服务

接口地址 calc-api

https://calc.cdek.ru/extended-calc/calculate_price_by_json

Content-Type: application/json

同样可以用http或者https

提交的数据 calc-data

计算运费请求实例一 (json):

{ 
    "version":"1.0",
    "dateExecute":"2012-07-27", 
    "authLogin":"098f6bcd4621d373cade4e832627b4f6", 
    "secure":"396fe8e7dfd37c7c9f361bba60db0874", 
    "senderCityId":"270", 
    "receiverCityId":"44", 
    "tariffId":"137", 
    "goods": 
        [ 
            { 
                "weight":"0.3", 
                "length":"10", 
                "width":"7", 
                "height":"5" 
            }, 
            { 
                "weight":"0.1", 
                "volume":"0.1" 
            } 
        ] 
} 

计算运费请求实例二 (json):

{ 
    "version":"1.0",
    "dateExecute":"2012-07-27", 
    "authLogin":"098f6bcd4621d373cade4e832627b4f6", 
    "secure":"396fe8e7dfd37c7c9f361bba60db0874", 
    "senderCityId":"44", 
    "receiverCityPostCode": "675000", 
    "tariffAllList": [11,137,233], 
    "goods": 
        [ 
            { 
                "weight":"0.3", 
                "length":"10", 
                "width":"7", 
                "height":"5" 
            }, 
            { 
                "weight":"0.1", 
                "volume":"0.1" 
            } 
        ] 
} 

提交请求时候要注意:

计算运费时效返回 calc-responce

计算接口返回数据 (json):

{
 "error" : [ {
   "code" : 3,
   "text" : "Невозможно осуществить доставку по этому направлению при заданных условиях.",
   "tariffId" : 137
 }, {
   "code" : 3,
   "text" : "Невозможно осуществить доставку по этому направлению при заданных условиях.",
   "tariffId" : 233
 } ],
 "results" : [ {
   "price" : "5220.0",
   "deliveryPeriodMin" : 3,
   "deliveryPeriodMax" : 4,
   "deliveryDateMin" : "2012-08-01",
   "deliveryDateMax" : "2012-08-02",
   "tariffId" : 11,
   "priceByCurrency" : 5220.0,
   "currency" : "RUB"
 } ]
}

运费计算接口错误代码 calc-error-code

异常代码 描述
0 系统内错误,请联系CDEK技术支持
1 您提交的接口版本已经不支持的。
2 验证失败
3 未找到符合条件的服务
4 提交的包裹的信息不符规则(goods的内容)
5 没提交包裹(goods的内容)
6 没提交运费率代码
7 没提交始发城市
8 没提交目的城市
9 没提交预计发货日期(可提交了验证信息)
10 派送模式不对
11 格式不对
12 译码失败,预料收
13 提交的始发邮编未找到在CDEK数据库
14 提交的寄件人的邮编属于两个或更多城市,寄件人的城市不明确
15 提交的目的邮编未找到在CDEK数据库
16 提交的收件人的邮编属于两个或更多城市,收件人的城市不明确

货币表格 currency

货币代码 对应的国家的币种
RUB 俄罗斯卢布
USD 美元
EUR 欧元
KZT 坚戈(哈萨克斯坦)
GBP 镑(英国)
CNY 人民币(中国)
BYN 白俄罗斯卢布
UAH 格里夫纳(乌克兰)
AMD 德拉姆(亚美尼亚)
KGS 索姆(吉尔吉斯坦)

服务表格 Services

以下服务列表仅参考信息,请用查询运费时效接口查询当天所有可用的服务

服务代码是下单时候提交的TariffTypeCode也是计算运费时候提交的tariffId

服务代码 服务名称 派送模式 重量限制 服务类别
136 快件 库到库 (Parcel W-W) 30 kg一下 仅网店
137 快件 库到门 (Parcel W-D)
138 快件 门到库 (Parcel D-W)
139 快件 门到门 (Parcel D-D)
233 经济性快件 库到门 (Economy Parcel W-D) 50 kg一下
234 经济性快件 库到库 (Economy Parcel W-W)
291 CDEK快递 库到库 (CDEK Express W-W)
293 CDEK快递 门到门 (CDEK Express D-D)
294 CDEK快递 库到门 (CDEK Express W-D)
295 CDEK快递 门到库 (CDEK Express D-W)
243 中俄快递 库到库 (China Express W-W)
245 中俄快递 门到门 (China Express D-D)
246 中俄快递 库到门 (China Express W-D)
247 中俄快递 门到库 (China Express D-W)
1 小包快递 门到门 (Express Light D-D) 30kg以下
10 小包快递 库到库 (Express Light W-W)
11 小包快递 库到门 (Express Light W-D)
12 小包快递 门到库 (Express Light D-W)
238 间断性小包快递 库到门 (Express Light Inerval W-D)
239 间断性小包快递 库到库 (Express Light Inerval W-W)
5 经济性特快 库到库 (Economy express W-W)
15 重货快递 库到库 (Express heavy weight W-W) 30kg以上
16 重货快递 库到门 (Express heavy weight W-D)
17 重货快递 门到库 (Express heavy weight D-W)
18 重货快递 门到门 (Express heavy weight D-D)
57 9点之前的特快 门到门 (Super express till 9 D-D) 5kg以下
58 10点之前的特快 门到门 (Super express till 10 D-D)
59 12点之前的特快 门到门 (Super express till 12 D-D)
60 14点之前的特快 门到门 (Super express till 14 D-D)
61 16点之前的特快 门到门 (Super express till 16 D-D)
3 18点之前的特快 门到门 (Super express till 18 D-D)
62 干线快递 库到库 (Main express W-W)
63 干线特快 库到库 (Main super express W-W)

服务描述

派送模式表

代码 名称 – 派送模式解释
1 门到门 – CDEK快递员上门取货并送到门
2 门到库 – CDEK快递员上门取货并送到仓库(自提)
3 库到门 – 客户把货件送到CDEK仓库然后CDEK快递员送货上门
4 库到库 – 客户把货件送到CDEK仓库然后CDEK把货物送到另外一个仓库(自提)

增值服务 Additional Services

代码 名称 描述
2 保险 自动加上的,下单不需要提交
3 周末派送 +300卢布
4 周末发送 +300卢布
5 重货 75至200kg+18卢布/kg;    >200kg+25卢布/kg
6 超尺寸货 体积重量 < 实际重量的话并且单边 > 150cm  运费*1.3
7 危险货物 运费*1.5 (不收禁品)
8 快递员等待时间超过15分钟 +170卢布
9 在收件处等待时间15分钟以上 +170卢布
10 存货 7天免费储存 尺寸不超25*40*60 – 15卢布/天; 尺寸不超25*40*60 – 30卢布/天
13 其他 被CDEK财务加上的附加费用
14 遥远的地方 在遥远的地方上门(收/送)货
15 第二次取送 快递员第二次上门(收/送)货
16 在寄件人所在城市取件
17 在收件人所在城市派送
20 罚金
23 木条包装 打木架
24 纸箱一包装 310*215*280mm <=10kg – 30卢布
25 纸箱一包装 430*310*280mm <=15kg – 45卢布
26 快递员等候 170卢布/小时 3个小时起
27 短信通知 签收短信通知寄件人
28 货物加工
29 分货 分拣
30 试衣 快递员等待30分钟
31 递交给收件人手中 要求收件人提供身份证件
32 签收底单
33 用手提送到楼上
34 用电梯送到楼上
35 电话通知 派送之前电话通知收件人
36 部分派送 允许收件人只收部分产品
37 货物检查 到付的话 可以先看货再付款
38 晚上发运 晚上发货 +300卢布
39 晚上派送 晚上派送 +300卢布
40 保暖 运输中可保持一定的温度
41 退回文件 文件退件
42 代理费
44 网上收费 在线收款
45 标准纸箱-S 20x19x13cm
46 标准纸箱-M 20x19x13cm
47 标准纸箱-L 31x26x38cm

查询城市接口 City API

搜索城市、对应的邮编(俄文)工具

ID города/城市ID
Регион/州省
Индексы/邮编

查询城市接口 City-autocomplete

请求数据 (json):

{    
    "lang": "zho",
    "limit":3,
    "field": "term",
    "value": "新西伯利"
}

返回的数据 (json):

{
  "items": [
    {
      "code": "270",
      "name": "新西伯利亚",
      "lang": "zho",
      "countryCode": "1",
      "countryName": "俄罗斯",
      "countryIso": "RU",
      "isResponsibilityCenter": true,
      "active": true
    },
    {
      "code": "734",
      "name": "丘雷姆,新西伯利亚州",
      "lang": "zho",
      "countryCode": "1",
      "countryName": "俄罗斯",
      "countryIso": "RU",
      "isResponsibilityCenter": false,
      "active": true
    },
    {
      "code": "750",
      "name": "乌宾斯科耶,新西伯利亚州",
      "lang": "zho",
      "countryCode": "1",
      "countryName": "俄罗斯",
      "countryIso": "RU",
      "isResponsibilityCenter": false,
      "active": true
    }
  ]
}

通过该接口可以按照输入的城市名或部分的城市名查询到城市ID,支持中文、英文、俄文。

请求方式

提交的数据

序号 名称 描述
1 lang 语言 (zho、rus、eng)
2 limit 返回城市数量<=50
3 field 固定的内容= “term”
4 value 搜索输入的内容(城市名)

返回的数据

错误返回实例:

{
    "success": false,
    "errors": [
        {
            "errorCode": "exceed_maximum_allowable_limit",
            "errorMessage": "Превышено максимальное количество возвращаемых сущностей" //март 2016 это 1000шт
        }
    ]
}
序号 名称 描述
1 items List – 查到的城市列表
1.1 code 城市ID
1.2 name 城市名称
1.3 lang 语言 (zho、rus、eng)
1.4 countryCode 国家ID(1-俄罗斯,138-中国)
1.5 countryName 国家名称
1.6 countryIso 国家ISO国家代码
1.7 isResponsibilityCenter 内部参数)
1.8 active 是否活跃城市)

更新重量以及尺寸接口 RMSR-API

用Python提交更新重量请求:

import requests
import hashlib

url = "http://rmsr.api.cdek.ru/remeasure/create"
headers = {'content-type' : 'application/json'}  

data  = {
    "date": '2018-12-10',
    "token": "94c8ead608de45299636aa28a37aae80",  #验证token
    # "account": "abcdef31742309effff223", #验证账号 
    # "secure": "387f300be382982402ac389", #验证秘钥
    # 账号和秘钥不提交用因为选了token验证方式
    "orderCount": "1", 
    "orders": [{
        "dispatchNumber": "1087319386", #CDEK运单号 
        "items": [{
            "barcode": "ITEM1341", #包裹条码
            "weight": "1200", #重量(单位:克)  
            "sizeA": 20, #20.0 不可以 - 尺寸必须整数并不可包含.,符合
            "sizeB": 15,
            "sizeC": 15
            # 尺寸不是必填项

            }]
        }]
    }

result = requests.post(url, json=data, headers=headers)

经常下单时候提交请求系统中还没有货件实际重量和尺寸所以收到货物之后需要重复称重并提交货件重量尺寸请求

请求地址http://rmsr.api.cdek.ru/remeasure/create

HTTP请求中Content-Type(内容类型属性): “Content-Type”: "application/json"

参数 描述 数据格式 是否必需
1 date 日期(今天) Date
2 account 账号 varchar(255) 是(备注一)
3 secure 密钥 varchar(255) 是(备注一)
4 token 令牌 varchar(255) 是(备注一)
5 orderCount 运单数量 integer
6 orders 需要修改运单列表 Array
7.1 dispatchNumber CDEK运单号 integer
7.2 items 包裹的内容 Array
7.2.1 barcode 包裹代码 varchar(20)
7.2.2 weight 重量(克) integer 是(备注二)
7.2.3 sizeA 尺寸(长度,厘米) integer 是(备注二)
7.2.4 sizeB 尺寸(宽度,厘米) integer 是(备注二)
7.2.5 sizeC 尺寸(高度,厘米) integer 是(备注二)

更新重置返回数据(更新失败):


{"order":
    [ 
        {
            "number":"KYTCD7052201121YQ",
            "dispatchNumber":"1047042944",
            "success":false,
            "errorCode":"ERR_WRONG_STATUS",
            "msg":"Заказ должен быть в статусе 1 или 3. Статус заказа: 4"
        }
    ],
    "errors":[]
}

更新重置返回数据(更新成功):

{
"orders": [
    {
        "number": "ORDER12294108",  //网店的运单跟踪号
        "dispatchNumber": "1086518471", //CDEK运单号
        "success": "true"
    },
    {
        "number": "网店的运单跟踪号",
        "dispatchNumber" :" CDEK运单号",
        "success": "false",
        "errorCode": "错误代码",
        "msg": "错误解释"
    },
    {
        "msg": "总结:修改好了一个运单"
    }]
}

返回数据中 orders列表中凡是包含number是更新具体运单请求结果 一个请求中运单数量不能超过1000票

更新重量接口错误代码

错误代码 描述
ERR_AUTH 验证失
ERR_TOO_MANY_ORDERS 一个请求中运单数量超过1000票
ERR_JSON_VALIDATION JSON格式不正确
ERR_INNER_ERROR 连接不上API的端口
ERR_ORDER_NOT_FOUND 无法找出该运单
ERR_WRONG_STATUS 运单物流动态不是“已办理”
ERR_NO_PACKAGE_FOUND 没找出该包裹代码相对的条码
ERR_NOT_INTEGER 重量和尺寸必须整数(不可包含“.,”符合)
EMPTY_××× 没提交×××属性