申请下单请求不返回运单号,为了获取运单号需要使用申请下单请求返回的请求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返回 HTTP 202 状态码

请求内容

CDEK系统有两种订单:

  1. 电商订单 - 向买家发的货,被电商下单的
  2. 普通订单 - 一般指的个人发的货,不属于电商类型的订单

国际订单 - 寄件国家 不等于 收件国家并且两国不属于同样的海关联盟,比如:中国-俄罗斯 是国际货运。俄罗斯-哈萨克斯坦 不算国际订单。

内容包含的属性以下:


属性名称 描述 类型 必填
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 申请下单请求例子

  1. # encoding: utf-8
  2. import requests
  3. import urllib.parse
  4. import sys
  5. # python 3
  6. account = '12345609e96ece5b0545d472b7123456'
  7. secure_password = 'abcdef3764e27c8f822ab285d6abcdef'
  8. def get_token(account, secure_password): # 获取令牌
  9. auth_url = 'http://api.cdek.ru/v2/oauth/token'
  10. params = {'grant_type':'client_credentials', 'client_id':account, 'client_secret': secure_password}
  11. full_auth_url = auth_url+'?'+urllib.parse.urlencode(params)
  12. headers = {'Content-type': 'x-www-form-urlencoded'}
  13. responce = requests.post(url=full_auth_url, headers=headers)
  14. responce_data = responce.json()
  15. return responce_data
  16. responce_data = get_token(account, secure_password)
  17. if 'error' in responce_data:
  18. print(f'Error: {responce_data["error"]}')
  19. sys.exit() #获取令牌失败,显示原因,结束
  20. access_token = responce_data["access_token"]
  21. order_data = { # 下单全部数据
  22. "number" : "TEST3-CT789435359CN", #以卖家生成的,可以用于跟踪轨迹
  23. "comment" : "",
  24. "delivery_recipient_cost" : {
  25. "value" : 0 #不需要代收货款的话填0
  26. },
  27. "shipper_name": "CDEK",
  28. "shipper_address": "Novosibirsk",
  29. "date_invoice": "2020-03-26", #可以填下单日期
  30. "seller": {"address": "Shanghai, Changning District"},
  31. "from_location" : {
  32. "code" : "",
  33. "fias_guid" : "",
  34. "postal_code" : "200050", #根据邮编识别寄件城市
  35. "longitude" : "",
  36. "latitude" : "",
  37. "country_code" : "CN", #必须填的
  38. "region" : "",
  39. "sub_region" : "",
  40. "city" : "Shanghai",
  41. "kladr_code" : "",
  42. "address" : ""
  43. },
  44. "to_location" : {
  45. "code" : "",
  46. "fias_guid" : "",
  47. "postal_code" : "443034",#根据邮编和地址识别寄件城市
  48. "longitude" : "",
  49. "latitude" : "",
  50. "country_code" : "RU",#必须填的
  51. "region" : "",
  52. "sub_region" : "",
  53. "city" : "Samara",
  54. "kladr_code" : "",
  55. "address" : "Yubileynaya ulitsa, 35 28;Samara;Samarskaya oblast"
  56. },
  57. "packages" : [ {
  58. "number" : "TEST3-CT789435359CN",
  59. "weight": 120,
  60. "comment" : "",
  61. "items" : [ {
  62. "ware_key" : "WELRV0086000627YQ",#不能包含汉字
  63. "payment" : {
  64. "value" : 0
  65. },
  66. "name" : "Measuring tools",
  67. "cost" : 0, #申报价值(跟保险费有关)
  68. "amount" : 1,
  69. "weight" : 120, #克数
  70. "weight_gross" : 120,
  71. "url" : ""
  72. } ]
  73. } ],
  74. "recipient" : {
  75. "name" : "Ivanov Sergei Petrovich",
  76. "phones" : [ {"number" : "9990001234"},{"number" : "9990003456"} ]
  77. },
  78. "sender" : {
  79. "name" : "Zhang san"
  80. },
  81. "services" : [], #不加上任何增值服务
  82. "tariff_code" : 246 #服务代码
  83. }
  84. headers = {'Authorization': 'Bearer '+access_token, 'Content-type': 'application/json',
  85. 'DeveloperKey': '1234abcdef***************ad19883'}
  86. responce = requests.post('https://api.cdek.ru/v2/orders', json=order_data, headers=headers)
  87. print(responce) # <Response [202]> - 返回的申请成功 HTTP 状态码 202
  88. 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 橡胶(Резина)