该接口能够:

  • 根据邮编和地址字段不同的音译方式识别并返回对应的CDEK城市,目前仅限俄罗斯国家的地址
  • 识别CDEK城市的话可以提交代收货款金额为了检查目的地是否能够向收件人收取具体代收货款金额,因为有些目的地CDEK有一定的代收货款金额限制
  • 根据邮编和地址可以获取对应的FIAS地区信息 (FIAS 是俄罗斯联邦标准地址信息系统)

比如根据以下不同的音译的城市名:
Blagoveshchenck 或
Blagoweschensc 或
Blagoveshensk 或
blagoweshensc
能够识别具体CDEK城市

请求参数

请求方式: HTTP POST
请求地址:https://int.cdek-express.cn/api/v2/detect-city
请求以及返回内容格式:json utf-8
请求验证:headers[“CDEK-Developer-Key”]
请求headers必须包“CDEK-Developer-Key”参数内容是CDEK提供给开发者识别码

请求内容

参数名称 类型 描述
address string
地址字段 (必填的)
postcode string 邮政编码 (必填的)
cod_rub float 代收货款金额(卢布,默认 0.0)
fias_only boolean 是否仅需要返回FIAS地址识别码(默认false)
country_code string(2) 国家编码 ISO_3166-1_alpha-2 格式的 (默认”ru”)

首先接口根据地址和邮编识别对应的FIAS数据库的城市,然后根据FIAS城市获取CDEK城市信息。
提交 fias_only = True 的话接口不会获取CDEK城市信息而直接返回FIAS城市信息。
API2.0下单接口支持提交地区的FIAS地区代码这样没有必要获取CDEK城市信息。


返回内容

字段名称 类型 描述
status_code string 识别结果代码
status_msg string 识别结果描述
detected_cdek_city object CDEK城市object
detected_fias_city object FIAS地区object
possible_cities list 邮编对应的城市名称列表

CDEK城市Object

字段名称 类型 描述
cityCode string(int) CDEK城市代码
cityName string 城市名称
cityUuid string 城市UUID
country string 国家名称
countryCode string(2) 国家代码
fiasGuid string FIAS 地区 GUID
kladr string KALDR 地址代码
latitude float 维度
longitude float 经度
paymentLimit int 地区CDEK代收货款限额 (-1没有限额,0不能代收)
region string 省会名称
regionCode string(int) 根据CDEK数据库省会代码
regionCodeExt string(int) 俄罗斯省会标准代码
regionFiasGuid string FIAS 省会 GUID
subRegion string 下级地区名称
timezone string 时区名称

FIAS地区Object

字段名称 类型 描述
formal_name string 地区名称
official_name string 地区正式名称
prefix string 前缀 (市、镇、村等等)
guid string FIAS GUID
ao_level string(int) 地区级别 4,6 - 城市、镇、村

识别结果代码列表

结果代码
结果描述 备注
OK 城市识别成功
COD_LIMIT_EXCEEDED 代收货款金额超过限额
ERR_CDEK_HAS_NO_FIAS_GUID 根据GUID无法获取CDEK城市
ERR_MANY_CITIES_IN_ADDRESS 根据邮编识别了多个城市
ERR_NOT_DETECT_CITY_IN_ADDRESS 地址字段没有邮编对应的城市名
ERR_NO_POSTCODE 没提交邮编
ERR_NO_DEVKEY 没提交开发者识别码
ERR_BAD_DEVKEY 开发者识别码未注册
ERR_BAD_COUNTRY 不支持的国家 目前仅支持俄罗斯 - ru
ERR_NO_ADDRESS 没提交地址字段
ERR_INTERNAL 接口内部错误 联系CDEK技术支持

请求和返回例子

成功识别城市例子

  1. import requests
  2. from pprint import pprint
  3. params = {'postcode': '675000', 'address': 'Lenina 21, 2 Blagoveschensk'}
  4. url = f'https://int.cdek-express.cn/api/v2/detect-city'
  5. headers = {'CDEK-Developer-Key': '*************'}
  6. res_data = requests.post(url, json=params, headers=headers).json()
  7. pprint(res_data)
  1. {
  2. 'address': 'Lenina 21, 2 Blagoveschensk',
  3. 'detected_cdek_city': {
  4. 'cityCode': '286',
  5. 'cityName': 'Благовещенск',
  6. 'cityUuid': '0f39b5cc-f2af-41a4-baf2-ac9615f4c2a7',
  7. 'country': 'Россия',
  8. 'countryCode': 'RU',
  9. 'fiasGuid': '8f41253d-6e3b-48a9-842a-25ba894bd093',
  10. 'kladr': '2800000100000',
  11. 'latitude': 50.2907,
  12. 'longitude': 127.527,
  13. 'paymentLimit': -1,
  14. 'region': 'Амурская',
  15. 'regionCode': '56',
  16. 'regionCodeExt': '28',
  17. 'regionFiasGuid': '844a80d6-5e31-4017-b422-4d9c01e9942c',
  18. 'subRegion': 'Благовещенск',
  19. 'timezone': 'Asia/Yakutsk'
  20. },
  21. 'detected_fias_city': {
  22. 'ao_level': '4',
  23. 'formal_name': 'Благовещенск',
  24. 'guid': '8f41253d-6e3b-48a9-842a-25ba894bd093',
  25. 'official_name': 'Благовещенск',
  26. 'prefix': 'г'
  27. },
  28. 'possible_cities': ['Благовещенск'],
  29. 'postcode': '675000',
  30. 'status_code': 'OK',
  31. 'status_msg': 'CDEK城市识别成功'
  32. }

识别失败例子

  1. import requests
  2. from pprint import pprint
  3. params = {'postcode': '675000', 'address': 'Lenina 21, 2 Badcityname', 'cod_rub': 100}
  4. url = f'https://int.cdek-express.cn/api/v2/detect-city'
  5. headers = {'CDEK-Developer-Key': '******************'}
  6. res_data = requests.post(url, json=params, headers=headers).json()
  7. pprint(res_data)
  1. {
  2. 'address': 'Lenina 21, 2 Badcityname',
  3. 'possible_cities': ['Благовещенск'],
  4. 'postcode': '675000',
  5. 'status_code': 'ERR_NOT_DETECT_CITY_IN_ADDRESS',
  6. 'status_msg': '地址字段没有邮编对应的城市名'
  7. }