申请下单请求不返回运单号,为了获取运单号需要使用申请下单请求返回的请求UUID(entity.uuid)提交到获取下单请求结果的接口。
下单请求
请求内容格式为 JSON (Content-Type: application/json) 字符编码 UTF-8.
POST-请求, 请求URL:
测试环境 | https://api.edu.cdek.ru/v2/orders |
---|---|
正式环境 | https://api.cdek.ru/v2/orders |
中国的环境 | https://int.cdek-express.cn/v2/orders |
请求内容
CDEK系统有两种订单:
- 电商订单 - 向买家发的货,被电商下单的
- 普通订单 - 一般指的个人发的货,不属于电商类型的订单
国际订单 - 寄件国家 不等于 收件国家并且两国不属于同样的海关联盟,比如:中国-俄罗斯 是国际货运。俄罗斯-哈萨克斯坦 不算国际订单。
内容包含的属性以下:
属性名称 | 描述 | 类型 | 必填 | |
---|---|---|---|---|
1 | type | 订单类型: 1 - “电商” (仅持有 “电商”类型签约的合同), 默认值 |
2 - “普通” (其他合同) | integer | 否 |
| 2 | number | 客户订单跟踪号 (不填的话CDEK设置为订单的UUID)
该仅 “电商”类型订单可使用 | string(32) | 否 |
| 3 | tariff_code | 服务代码 - 快递产品代码 (查看服务列表) | integer | 是 |
| 4 | comment | 订单备注 | string(255) | 否 |
| 5 | shipment_point | 寄件站点代码 | string(255) | 否 |
| 6 | delivery_point | 收件站点代码 | string(255) | 否 |
| 7 | date_invoice | 发货时的发票日期
该属性仅 “电商” 类型订单可以使用的 | date (yyyy-MM-dd) | 否
国际-是 |
| 8 | shipper_name | 承运商名称
该属性仅 “电商” 类型订单可以使用的 | string(255) | 否
国际-是 |
| 9 | shipper_address | 承运商地址
该属性仅 “电商” 类型订单可以使用的 | string(255) | 否
国际-是 |
| 10 | delivery_recipient_cost | 运输附加费 - 电商可添加让买家多付运费
该属性仅 “电商” 类型订单可以使用的 | money | 否 |
| 10.1 | value | 运输附加费 - 金额 | float | 是 |
| 10.2 | vat_sum | 运输附加费 - 税额 | float | 否 |
| 10.3 | vat_rate | 运输附加费 - 税率(百分之几) (可选 0,10,18,20, null - 不收税) | integer | 否 |
| 11 | delivery_recipient_cost_adv | 根据货件申报价值的运输附加费用
该属性仅 “电商” 类型订单可以使用的 | threshold[] | 否 |
| 11.1 | threshold | 货件申报价值少于等于 | integer | 是 |
| 11.2 | sum | 根据货件申报价值 - 附加费用金额 | float | 是 |
| 11.3 | vat_sum | 根据货件申报价值- 税额 | float | 否 |
| 11.4 | vat_rate | 根据货件申报价值 税率
(可选 0,10,18,20, null - 不收税) | integer | 否 |
| 12 | sender | 寄件方 | contact | 电商-否
普通-是
| | 12.1 | company | 公司名称 | string(255) | | | 12.2 | name | 姓名 | string(255) | | | 12.3 | email | 电子邮箱地址 | string(255) | | | 12.4 | phones | 电话号码列表 | phone[] | | | 12.4.1 | number | 电话号码,国际格式 比如 +79094768888
| string(255) | |
| 12.4.2 | additional | 分机号码 | string(255) | 否 |
| 13 | seller | 实际卖家
该属性仅 “电商” 类型订单可以使用的 | seller | 否 |
| 13.1 | inn | 卖家税号 | string(20) | 否 |
| 13.2 | name | 卖家名称 | string(255) | 是-填了inn的话 |
| 13.3 | phone | 卖家电话号码 | string(255) | |
| 13.4 | ownership_form | 卖家所有制形式 | integer | |
| 13.5 | address | 卖家地址
该属性仅 “电商” 类型订单可以使用的 | string(255) | 否
国际-是 |
| 14 | recipient | 收件方 | contact | 是 |
| 14.1 | company | 公司名称 | string(255) | 否 |
| 14.10 | phones | 电话号码列表 | phone[] | 是 |
| 14.10.1 | number | 电话号码,国际格式 比如 +79094768888
| string(255) | 是 |
| 14.10.2 | additional | 分机号码 | string(255) |
否 |
| 14.2 | name | 姓名 | string(255) | 是 |
| 14.3 | passport_series | 护照序列 | string(255) | 否 |
| 14.4 | passport_number | 护照号码 | string(255) | 否 |
| 14.5 | passport_date_of_issue | 护照签发日期 | date (yyyy-MM-dd) | 否 |
| 14.6 | passport_organization | 护照签发机关 | string(255) | 否 |
| 14.7 | tin | 个人税号 | string(255) | 否 |
| 14.8 | passport_date_of_birth | 生日 | date (yyyy-MM-dd) | 否 |
| 14.9 | email | 电子邮箱 | string(255) |
否 |
| 15 | from_location | 寄件地址 | location | 是 |
| 15.1 | code | 地点代码 (根据CDEK数据库) | integer | 否 |
| 15.10 | city | 城市名称 | string(255) | 否 |
| 15.11 | kladr_code | 俄罗斯海关局-旧版地址数据库的地址代码 | string(255) | 否 |
| 15.12 | address | 地址 | string(255) | 是 |
| 15.2 | fias_guid | 俄罗斯海关局-新版地址数据库(FIAS)的地址代码 | UUID | 否 |
| 15.3 | postal_code | 邮编 | string(255) | 否 |
| 15.4 | longitude | 经度 | float | 否 |
| 15.5 | latitude | 纬度 | float | 否 |
| 15.6 | country_code | 国家编码 ISO_3166-1_alpha-2 格式的 | string(2) | 是 |
| 15.7 | region | 州省名称 | string(255) | 否 |
| 15.8 | region_code | 州省代码 (根据CDEK数据库) | integer | 否 |
| 15.9 | sub_region | 县/区
| string(255) | 否 |
| 16 | to_location | 收件地址 | location | 是 |
| 16.1 | code | 地点代码 (根据CDEK数据库) | integer | 否 |
| 16.10 | city | 城市名称 | string(255) | 否 |
| 16.11 | kladr_code | 俄罗斯海关局-旧版地址数据库的地址代码 | string(255) | 否 |
| 16.12 | address | 地址 | string(255) | 是 |
| 16.2 | fias_guid | 俄罗斯海关局-新版地址数据库(FIAS)的地址代码 | UUID | 否 |
| 16.3 | postal_code | 邮编 | string(255) | 否 |
| 16.4 | longitude | 经度 | float | 否 |
| 16.5 | latitude | 纬度 | float | 否 |
| 16.6 | country_code | 国家编码 ISO_3166-1_alpha-2 格式的 | string(2) | 是 |
| 16.7 | region | 州省名称 | string(255) | 否 |
| 16.8 | region_code | 州省代码 (根据CDEK数据库) | integer | 否 |
| 16.9 | sub_region | 县/区
| string(255) | 否 |
| 17 | services | 增值服务列表 | service[] | 否 |
| 17.1 | code | 增值服务代码 (查看增值服务列表) | integer | 是 |
| 17.2 | parameter | 增值服务的参数:
- 纸箱数量(标准纸箱服务的)
- 保险申报价值 (仅普通订单类型订单可使用)
| float | 否 |
| 18 | packages | 包装件列表 | package[] | 是 |
| 18.1 | number | 包装件序号 | string(255) | 是 |
| 18.2 | weight | 包装件总重量 (克数)
| integer | 是 |
| 18.3 | length | 长度 cm | integer | 要么都填 -
要么都不填 |
| 18.4 | width | 宽度 cm | integer | |
| 18.5 | height | 高度 cm | integer | |
| 18.6 | comment | 包装件的备注 | string(255) | 电商-否
普通-是 |
| 18.7 | items | 内件列表(产品列表)
该属性仅 “电商” 类型订单可以使用的 | item[] | 是 |
| 18.7.1 | name | 产品名称 (可包括尺寸、颜色等等) | string(255) | 是 |
| 18.7.2 | ware_key | 产品SKU 或其他产品唯一识别码(不能包含汉字) | string(20) | 是 |
| 18.7.3 | marking | 产品唯一的编号(填该属性的话 数量amout必须等于1),俄罗斯产品标记法(第487-ФЗ号) | string() | 否 |
| 18.7.4 | payment | 单件的代收货款, 收件国家的币种(币种列表) | money | 是 |
| 18.7.4.1 | value | 金额 | float | 是 |
| 18.7.4.2 | vat_sum | 税额 | float | 否 |
| 18.7.4.3 | vat_rate | 税率(百分之几) (可选 0,10,18,20, null - 不收税) | integer | 否 |
| 18.7.5 | cost | 单件申报价值 (用于计算保险费)
| float | 是 |
| 18.7.6 | weight | 单件重量(单位:克) | integer | 是 |
| 18.7.7 | weight_gross | 单件毛重(单位:克)不能少于 weight | integer | 否
国际-是 |
| 18.7.8 | amount | 产品数量 | integer | 是 |
| 18.7.9 | name_i18n | 外文名称 | string(255) | 否 |
| 18.7.10 | brand | 商标名称(英文) | string(255) | 否 |
| 18.7.11 | country_code | 产品制造国家编码 ISO_3166-1_alpha-2 格式的 | string(2) | 否 |
| 18.7.12 | material | 材质编码 (查看列表) | integer | 否 |
| 18.7.13 | wifi_gsm | 是否具有 wifi/gsm 模块 | boolean | 否 |
| 18.7.14 | url | 稍稍平台具体产品链接 | string(255) | 否 |
Python3 申请下单请求例子
# encoding: utf-8
import requests
import urllib.parse
import sys
# python 3
account = '12345609e96ece5b0545d472b7123456'
secure_password = 'abcdef3764e27c8f822ab285d6abcdef'
def get_token(account, secure_password): # 获取令牌
auth_url = 'http://api.cdek.ru/v2/oauth/token'
params = {'grant_type':'client_credentials', 'client_id':account, 'client_secret': secure_password}
full_auth_url = auth_url+'?'+urllib.parse.urlencode(params)
headers = {'Content-type': 'x-www-form-urlencoded'}
responce = requests.post(url=full_auth_url, headers=headers)
responce_data = responce.json()
return responce_data
responce_data = get_token(account, secure_password)
if 'error' in responce_data:
print(f'Error: {responce_data["error"]}')
sys.exit() #获取令牌失败,显示原因,结束
access_token = responce_data["access_token"]
order_data = { # 下单全部数据
"number" : "TEST3-CT789435359CN", #以卖家生成的,可以用于跟踪轨迹
"comment" : "",
"delivery_recipient_cost" : {
"value" : 0 #不需要代收货款的话填0
},
"shipper_name": "CDEK",
"shipper_address": "Novosibirsk",
"date_invoice": "2020-03-26", #可以填下单日期
"seller": {"address": "Shanghai, Changning District"},
"from_location" : {
"code" : "",
"fias_guid" : "",
"postal_code" : "200050", #根据邮编识别寄件城市
"longitude" : "",
"latitude" : "",
"country_code" : "CN", #必须填的
"region" : "",
"sub_region" : "",
"city" : "Shanghai",
"kladr_code" : "",
"address" : ""
},
"to_location" : {
"code" : "",
"fias_guid" : "",
"postal_code" : "443034",#根据邮编和地址识别寄件城市
"longitude" : "",
"latitude" : "",
"country_code" : "RU",#必须填的
"region" : "",
"sub_region" : "",
"city" : "Samara",
"kladr_code" : "",
"address" : "Yubileynaya ulitsa, 35 28;Samara;Samarskaya oblast"
},
"packages" : [ {
"number" : "TEST3-CT789435359CN",
"weight": 120,
"comment" : "",
"items" : [ {
"ware_key" : "WELRV0086000627YQ",#不能包含汉字
"payment" : {
"value" : 0
},
"name" : "Measuring tools",
"cost" : 0, #申报价值(跟保险费有关)
"amount" : 1,
"weight" : 120, #克数
"weight_gross" : 120,
"url" : ""
} ]
} ],
"recipient" : {
"name" : "Ivanov Sergei Petrovich",
"phones" : [ {"number" : "9990001234"},{"number" : "9990003456"} ]
},
"sender" : {
"name" : "Zhang san"
},
"services" : [], #不加上任何增值服务
"tariff_code" : 246 #服务代码
}
headers = {'Authorization': 'Bearer '+access_token, 'Content-type': 'application/json',
'DeveloperKey': '1234abcdef***************ad19883'}
responce = requests.post('https://api.cdek.ru/v2/orders', json=order_data, headers=headers)
print(responce) # <Response [202]> - 返回的申请成功 HTTP 状态码 202
print(responce.text)
申请成功返回的数据
{
"entity": {
"uuid": "72753033-db0e-4042-9392-c5a077e24669"
},
"requests": [{
"request_uuid": "72753033-d75d-4f16-9f08-205b44a70774",
"type": "CREATE",
"date_time": "2020-03-26T15:02:56+0700",
"state": "ACCEPTED"
}]
}
entity.uuid - 用于获取下单结果
申请失败返回的数据
{
"timestamp": 1585210142239,
"path": "/v2/orders",
"status": 500,
"error": "Internal Server Error",
"message": "Не найден HTTP заголовок Authorization"
}
常见异常
申请下单出现的异常
异常编码 | 描述 |
---|---|
delivery_location_is_not_recognized | 无法识别收件地址 |
shipment_location_is_not_recognized | 无法识别寄件地址 |
v2_order_tariff_code_is_empty | 没填写 服务产品编码 tariff_code |
order_recipient_is_empty | 没填写 收件人信息 recipient |
order_packages_is_empty | 没填写 包裹信息 packages |
生成订单出现的异常请看获取订单信息接口描述
附件
国家以及对应的币种
币种代码 | 币种名称 (俄文) | 国家名称 (俄文) |
---|---|---|
RUB | 俄罗斯的卢布(Российский рубль) | 俄罗斯 (Россия) |
USD | 美元 (Доллар США) | 美国(США) |
EUR | 欧元 (Евро) | 欧洲国家 (Страны Европы) |
KZT | 坚戈 (Тенге) | 哈萨克斯坦 (Казахстан) |
GBP | 英镑 (Фунт стерлингов) | 英国 (Великобритания) |
CNY | 人民币(Юань) | 中国(Китай) |
BYN | 白俄罗斯的卢布(Белорусский рубль) |
白俄罗斯(Белоруссия) |
UAH | 格里夫纳(Гривна) | 乌克兰(Украина) |
AMD | 德拉姆 (Армянский драм) | 亚美尼亚(Армения) |
KGS | 索姆 (Киргизский сом) | 吉尔吉斯坦(Киргизия) |
TL | 里拉(Турецкая лира) | 土耳其(Турция) |
THB | 泰铢(Тайский бат) | 泰国(Тайланд) |
KRW | 韩元(Южнокорейская вона) | 韩国(Южная Корея) |
AED | 迪拉姆(Дирхам ОАЭ) | 阿联酋(ОАЭ) |
UZS | 苏姆(Узбекский сум) | 乌兹别克斯坦(Узбекистан) |
MNT | 图格里克(Монгольский тугрик) | 蒙古(Монголия) |
附加服务
附加服务代码 | 名称 | 描述 | |
---|---|---|---|
INSURANCE | 保险 | 计算根据内件申报价值。 电商类型的合同不能提交该附加服务,对应电商类型的合同该附加服务自动加上的 |
|
DELIV_WEEKEND | 周末派送 | 周末以及节假日派送服务零需要附加费300卢布,不能用于自提柜的订单 | |
TAKE_SENDER | 在寄件人的城市提货 | 尽可以用于从站点发货模式的订单«库到…»(并且”快件”服务也不能使用该附加服务) | |
DELIV_RECEIVER | 在目的地派送 | 尽可以用于发到库模式的订单«….到库» (并且只能用于 «干线快递», «干线特快» 服务)不能用于自提柜的订单 | |
TRYING_ON | 试衣等待 | 派送员派送衣服类型的订单等待收件人试衣服再走或直接退货。 不能用于自提柜的订单 |
|
PART_DELIV | 部分签收 | 收件人可以只签收部分商品、另一部分退货。 内件中只有一个商品的话无法使用该服务。 不能用于自提柜的订单 |
|
INSPECTION_CARGO | 验货 | 收件人支付之前可以先验货再付。 不能用于自提柜的订单。 |
|
REVERSE | 双向 | 快件送到收件人等收件人操作再送回给寄件人,(比如需要签合同等等情况) 不能用于自提柜的订单。 |
|
DANGER_CARGO | 危险货物 | 危险货物的订单必须添加该增值服务,运费会提高1.5倍。 | |
PACKAGE_1 | 包装 1 | 标准纸箱 1 尺寸为:310215280mm — 30 卢布 (用于10kg 以下的订单) |
材质列表
材质编码 | 材料名称 (材料名称俄文) |
---|---|
1 | 聚酯纤维 (Полиэстер) |
2 | 尼龙 (Нейлон) |
3 | 绒布 (Флис) |
4 | 棉花(Хлопок) |
5 | 纺织布(Текстиль) |
6 | 亚麻(Лён) |
7 | 黏胶丝(Вискоза) |
8 | 丝绸(Шелк) |
9 | 羽毛(Шерсть) |
10 | 开司米(Кашемир) |
11 | 皮(Кожа) |
12 | 人造革(Кожзам) |
13 | 人造毛皮(Искусственный мех) |
14 | 麂皮(Замша) |
15 | 聚氨酯(Полиуретан) |
16 | 氨纶(Спандекс) |
17 | 橡胶(Резина) |