DPD Cloud Service setOrder 接口开发文档
1. 接口概述
1.1 功能描述
setOrder 接口是 DPD Cloud Service 的核心接口之一,用于生成 DPD 包裹标签(Base64 编码的 PDF 格式)并发起包裹配送订单。
支持以下场景:
-
德国境内包裹配送
-
德国发往 DPD 国际配送目的地国家/地区的包裹(需选择对应国际配送产品)
-
单个订单或批量订单(最多 30 个订单同时发起)
-
标准配送、退货配送、自提点配送等多种配送类型(注:货到付款COD服务已完全取消)
生成标签时必须提供以下信息:
-
所需的发货日期,以及输出格式和打印位置
-
包裹尺寸与重量、包裹内容物,以及寄件地址
-
配送产品 (经典配送、退货配送等)
寄件地址校验规则:
对寄件地址的校验涵盖必填字段校验、语法拼写校验,以及(若可能)地址真实性校验。具体规则如下:
-
必填字段:必须提供“公司名称”或“收件联系人”,二者至少填一项
-
语法校验:针对邮政编码、电话号码和电子邮件地址进行格式有效性校验
-
特殊字段要求:若选择美国或加拿大作为寄件国家,“州/省”为必填字段
不同国家地址校验差异:
-
德国地址:提供全面校验,涵盖邮政编码、城市、城区、街道名称及门牌号的匹配性校验
-
其他国家地址:通常仅校验邮政编码的拼写格式正确性
德国地址校验特殊逻辑:
若传入的邮政编码正确,但误将“城区”作为“城市”名称传入,地址校验仍可正常通过。此时响应会返回真实的城市名称,并将原传入的“城区”作为附加信息拼接(如输入“Nuernberg”,响应返回“Nürnberg, Gebersdorf”)。
校验成功反馈:
地址校验成功后,响应中的“City”(城市)和“Street”(街道)字段会返回 DPD 地址数据库中登记的标准写法,必要时会附带城区信息。示例如下:
-
输入城市:
Nuernberg→ 响应城市:Nürnberg, Gebersdorf -
输入街道:
Gutenstetterstr.→ 响应街道:Gutenstetter Str.
错误修正建议:
若街道或城市名称存在拼写错误,错误消息中会返回修正建议(基于 DPD 地址数据库中的标准写法)。需注意:街道或城市名称的首字母必须正确,才能触发修正建议返回。
其他注意事项:
-
单批/批量订单校验:通过“OrderAction”参数控制订单操作类型,可仅校验数据有效性(不生成标签)或直接生成标签并发起订单
-
退货订单限制:“Classic_Return”(经典退货)类型订单仅支持单个发起,不可批量提交
-
退货订单地址要求:请求中必须提供原收件人的完整地址,系统会自动将其转换为退货寄件人地址
-
无邮编国家处理:对于无邮政编码系统的国家/地区,需填写“0”作为邮政编码
自提点配送特殊要求:
若需配送至自提点(Pickup Paketshop),必须在请求中指定自提点ID(ParcelShopID)。该ID需通过“getParcelShopFinder”接口查询获取。
自提点配送时,包裹标签会自动显示自提点地址,并标注“收件人:[占位符]”。占位符将按以下规则替换:优先使用“公司名称”;若未填写公司名称,则使用“称谓+姓名”;若二者均提供,系统优先选择“公司名称”。
**地址校验补充说明:**含街道及城市名称建议、门牌号范围(已过时!)
1.2 接口协议
-
协议类型:REST(仅支持 POST 方法)
-
数据格式:请求/响应均为 XML 或 JSON(推荐 XML,符合 DPD 接口规范)
-
接口版本:固定为 100(需在请求中指定)
2. 环境配置
2.1 测试环境(Sandbox)
2.1.1 接口 URL
测试环境
https://cloud-stage.dpd.com/api/v1/setOrder
生产环境URL:
https://cloud.dpd.com/api/v1/setOrder
2.1.2 测试凭证获取
- 访问 DPD 开发者注册页面:https://esolutions.dpd.com/entwickler/registrieren.aspx?lng=deu
- 注册并登录后,在「Benutzerdaten ändern」(修改用户数据)菜单下获取 Sandbox Credentials(测试环境认证信息),包含:
- Partner Credentials(合作伙伴凭证:Name + Token)
- User Credentials(用户凭证:cloudUserID + Token)
2.2 生产环境(Live)
2.2.1 开通方式
测试完成后,需联系 DPD 技术团队开通生产环境权限:
-
邮箱:cit@dpd.de
-
德国境内热线:0180 6 373200(工作日 7:00-19:00,周六 9:00-14:00;固话 0.20€/通,手机最高 0.60€/通)
2.2.2 生产环境信息
开通后将获取:
-
新的生产环境认证信息(Live Credentials)
-
生产环境接口 URL(无
-stage后缀,如https://cloud.dpd.com/api/v1/setOrder)
3. 认证信息
所有 setOrder 请求必须包含 Partner Credentials(合作伙伴凭证) 和 User Credentials(用户凭证),否则接口会返回认证失败错误。
| 凭证类型 | 参数名 | 数据类型 | 描述 |
|---|---|---|---|
| Partner Credentials | Name | String(3-50) | DPD 分配的合作伙伴名称 |
| Token | String(10-25) | 合作伙伴专属令牌 | |
| User Credentials | cloudUserID | Int(0-999999999) | DPD 分配的用户编号(客户编号) |
| Token | String(5-50) | 用户专属令牌(客户密码) |
4. 请求参数
4.1 基础请求头/根参数
| 参数名 | 数据类型 | 必填 | 描述 |
|---|---|---|---|
| Version | Int(0-999999999) | 是 | 接口版本,固定为 100 |
| Language | String(5) | 是 | 消息语言,仅支持 de_DE(德语)或 en_EN(英语) |
| OrderAction | OrderActionType(枚举) | 是 | 订单操作类型: - startOrder:发起实际订单(生成运单+触发配送)- checkOrderData:仅校验订单数据(不生成运单) |
| OrderSettings | OrderSettingsType(复杂类型) | 是 | 订单配置(配送日期、标签格式等) |
| OrderDataList | ArrayOfOrderDataType(数组) | 是 | 订单列表(单个订单或批量订单,最多 30 个) |
4.2 核心子参数详解
4.2.1 OrderSettings(订单配置)
| 参数名 | 数据类型 | 必填 | 描述 |
|---|---|---|---|
| ShipDate | DateTime | 是 | 配送日期,格式:yyyy-MM-dd(如 2024-12-01);注意:周日和节假日不支持取件 |
| LabelSize | LabelSizeType(枚举) | 是 | 运单尺寸: - PDF_A4:A4 格式 PDF- PDF_A6:A6 格式 PDF- ZPL_A6:ZPL 格式(目前不支持) |
| LabelStartPosition | LabelStartPositionType(枚举) | 是 | 运单打印起始位置: - UpperLeft(左上)- UpperRight(右上)- LowerLeft(左下)- LowerRight(右下) |
4.2.2 OrderData(订单详情,数组元素)
| 参数名 | 数据类型 | 必填 | 描述 |
|---|---|---|---|
| ParcelShopID | Int(0-999999999) | 否 | 自提点 ID(仅当配送产品为 Shop_Delivery 时必填,通过 getParcelShopFinder 接口获取) |
| ShipAddress | AddressType(复杂类型) | 是 | 收件人地址信息 |
| ParcelData | ParcelDataType(复杂类型) | 是 | 包裹信息(重量、内容、配送产品等) |
4.2.3 ShipAddress(收件人地址)
| 参数名 | 数据类型 | 必填 | 描述 |
|---|---|---|---|
| Gender | GenderType(枚举) | 否 | 性别:male(男)、female(女)、none(无);仅当填写 Name 时生效 |
| Company | String(2-50) | 否 | 公司名称(与 Name 二选一,至少填一个) |
| Salutation | String(2-10) | 否 | 称谓(如 Herr(先生)、Frau(女士)) |
| Name | String(2-50) | 否 | 联系人姓名(与 Company 二选一;若填写 FirstName/LastName,优先使用这两个字段) |
| FirstName | String(2-50) | 否 | 名(需与 LastName 同时填写,总长度不超过 50 字符;标签最多显示 35 字符) |
| LastName | String(2-50) | 否 | 姓(同上) |
| Street | String(1-50) | 是 | 街道名称(如 Wailandtstr.) |
| HouseNo | String(0-8) | 是 | 门牌号(德国地址需包含至少 1 个数字,可填 0 表示无门牌号街道) |
| Country | String(max.50) | 是 | 国家/地区(支持 Alpha3/Alpha2/ISO3166 代码或名称,如 DEU/DE/276/Deutschland) |
| ZipCode | String(max.10) | 是 | 邮编(无邮编系统的国家填 0) |
| State | String(2) | 条件必填 | 仅美国(USA)和加拿大(CAN)需填写 ISO3166-2 州代码(如美国加州填 CA),其他国家不填 |
| Phone | String(5-20) | 否 | 电话/手机号(支持数字、空格、+、-、(、));Predict 配送需填写手机号或邮箱 |
| String(max.50) | 否 | 邮箱(符合通用格式;Predict 配送需填写手机号或邮箱) |
4.2.4 ParcelData(包裹信息)
| 参数名 | 数据类型 | 必填 | 描述 |
|---|---|---|---|
| ShipService | ShipServiceType(枚举) | 是 | 配送产品类型(核心参数,部分类型仅支持特定国家): - Classic:标准配送- Classic_Predict:标准配送+Predict(收件人通知)- Shop_Delivery:自提点配送- Shop_Return:自提点退货- Classic_Return:退货配送(仅支持单个订单发起)- Express_830:德国境内次日 8:30 达- Express_International:国际快递(无海关数据) |
| Weight | Decimal(0-31.5) | 是 | 包裹重量(单位:kg;最大 31.5kg;<3kg 自动识别为小包裹) |
| Content | String(1-35) | 是 | 包裹内容描述(如 Smartphone,最多 35 字符) |
| YourInternalID | String(1-35) | 否 | 内部参考编号(用于关联企业内部系统与 DPD 标签) |
| Reference1 | String(1-35) | 否 | 参考文本 1(显示在标签上) |
| Reference2 | String(1-35) | 否 | 参考文本 2(显示在标签上) |
| COD | CODType(复杂类型) | 否 | 货到付款信息(注:DPD 已完全取消 COD 服务,填写此参数会返回错误) |
5. 响应参数
5.1 成功响应结构(Ack=true)
成功调用后,接口返回标签数据(Base64 格式 PDF)及订单关联信息,完整响应结构如下:
<setOrderResponse>
<Ack>true</Ack>
<TimeStamp>2024-12-01T14:30:00.1234567+01:00</TimeStamp> <!-- UTC 时间 -->
<LabelResponse>
<!-- Base64 编码的 PDF 标签,仅保留前 20 字符+省略号简写 -->
<LabelPDF>JVBERi0xLjQKJeLjz9MNCjYgMCBvYmoKPDwvTGVuZ3RoIDQgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+Pg...</LabelPDF>
<LabelDataList>
<LabelData>
<YourInternalID>INT-20241201-001</YourInternalID> <!-- 自定义内部参考号 -->
<ParcelNo>09981234567899</ParcelNo> <!-- 14位DPD运单号 -->
</LabelData>
<!-- 批量订单时,此处会有多组 LabelData 节点 -->
</LabelDataList>
</LabelResponse>
</setOrderResponse>
5.2 核心响应字段说明
| 响应层级 | 参数名 | 数据类型 | 描述 |
|---|---|---|---|
| LabelResponse | LabelPDF | String(Base64) | 标签 PDF 文件的 Base64 编码字符串,需解码后生成可打印的 PDF 文件 |
| LabelResponse | LabelDataList | ArrayOfLabelDataType | 标签数据列表(批量订单时包含多个 LabelData 节点) |
| LabelDataList → LabelData | YourInternalID | String(1-35) | 与请求中一致的自定义内部参考号,用于关联企业内部系统与 DPD 标签 |
| LabelDataList → LabelData | ParcelNo | String(14) | DPD 分配的 14 位运单号: - 标准包裹:以 0998 开头(如 09981234567899)- 退货包裹:以 W- 开头(如 W-12345678) |
6. 错误处理
6.1 错误响应结构
当请求参数无效、权限不足或系统异常时,接口返回错误列表,结构如下:
<setOrderResponse>
<Ack>false</Ack>
<TimeStamp>2024-12-01T14:30:00.1234567+01:00</TimeStamp>
<ErrorDataList>
<ErrorData>
<ErrorID>1108</ErrorID> <!-- 错误ID -->
<ErrorCode>CLOUD_ADDRESS_MAIL</ErrorCode> <!-- 错误编码 -->
<ErrorMsgShort>Mail. Ungültiges Format.</ErrorMsgShort> <!-- 简短错误信息 -->
<ErrorMsgLong>Order 1: Das Format für die Mail Adresse ist ungültig.</ErrorMsgLong> <!-- 详细错误信息 -->
</ErrorData>
</ErrorDataList>
</setOrderResponse>
6.2 setOrder 接口专属错误列表
| ErrorID | ErrorCode | 中文错误信息 | 常见原因与处理建议 |
|---|---|---|---|
| 1009 | CLOUD_USERDATA_NOACCESS_SHIPMENTSERVICE | 无配送服务访问权限 | 联系 DPD 开通 ShipmentService 权限 |
| 1010 | CLOUD_USERDATA_NOACCESS_COD | 无货到付款(COD)访问权限 | COD 服务已完全取消(2020年5月11日起),请勿使用 Classic_COD 等 COD 类配送产品 |
| 1013 | CLOUD_USERDATA_NOACCESS_PREDICT | 无 Predict 服务访问权限 | 联系 DPD 开通 Predict 权限(用于收件人短信/邮件通知) |
| 1014 | CLOUD_USERDATA_NOACCESS_RETURN | 无退货服务访问权限 | 联系 DPD 开通 Classic_Return 权限 |
| 1100 | CLOUD_ADDRESS_COMPANYANDNAMEEMPTY | 必须填写“公司名称”或“联系人姓名” | 确保 ShipAddress 中至少包含 Company 或 Name(或 FirstName+LastName) |
| 1105 | CLOUD_ADDRESS_HOUSENO | 门牌号格式错误(需1-8个字符) | 德国地址门牌号为必填项,需包含至少1个数字(可填 0 表示无门牌号街道) |
| 1108 | CLOUD_ADDRESS_MAIL | 邮箱格式无效 | 检查邮箱格式(如 xxx@xxx.xxx),Predict 配送时需填写有效邮箱或手机号 |
| 1112 | CLOUD_ADDRESS_COUNTRY | 国家未找到 | 确保 Country 参数为 Alpha3/Alpha2/ISO3166 代码或标准名称(如 DEU/DE/德国) |
| 1117 | CLOUD_ADDRESS_HOUSENOUNKNOWN | 德国门牌号无效 | 检查门牌号是否在该街道的有效范围内(DPD 会返回已知门牌号范围建议) |
| 1120 | CLOUD_ADDRESS_ZIPCODE | 邮编未找到或格式错误 | 确认邮编与国家匹配(如德国邮编为5位数字),无邮编国家填 0 |
| 2102 | CLOUD_API_ORDER_MAXORDERS | 最多只能同时发起30个订单 | 拆分批量订单,确保 OrderDataList 中订单数量≤30 |
| 2103 | CLOUD_API_ORDER_NOSHIPADDRESS | 缺少收件人地址(ShipAddress) | 补充 ShipAddress 节点及必填字段(街道、门牌号、邮编、城市、国家) |
| 2110 | CLOUD_API_ORDER_SHIPDATE | 配送日期无效 | 配送日期需为未来有效日期(周日、节假日不可选,可通过 getZipCodeRules 查有效日期) |
| 2121 | CLOUD_API_ORDER_WEIGHT | 重量无效(需0-31.5kg) | 调整包裹重量至 31.5kg 以内,<3kg 自动识别为小包裹 |
| 2126 | CLOUD_API_ORDER_SHIPSERVICE | 配送产品无效 | 确认 ShipService 取值在枚举范围内(如 Classic/Express_830,国际快递用 Express_International) |
| 2156 | CLOUD_API_ORDER_PARCELSHOP | 自提点ID(ParcelShopID)无效 | 通过 getParcelShopFinder 接口获取有效 ParcelShopID,仅 Shop_Delivery 配送需填写 |
| 2158 | CLOUD_API_ORDER_CLASSICRETURN_NOBULKPRINT | 退货订单(Classic_Return)仅支持单个发起 | 拆分退货订单,确保 OrderDataList 中仅包含1个 Classic_Return 类型订单 |
| 2159 | CLOUD_API_ORDER_EXPRESS_DEU_COUNTRY | 所选快递服务仅支持德国境内 | Express_830/Express_10/Express_12/Express_18 仅支持德国境内配送 |
| 2160 | CLOUD_API_ORDER_EXPRESS_INT_COUNTRY | 国际快递(Express_International)不支持该国家 | 确认目标国家在 DPD 国际配送范围内(参考文档“DPD Versandländer”列表) |
| 9999 | DPD_WEBSERVICE_MESSAGE | 不可捕获错误(网络/数据库异常) | 检查网络连接,10分钟后重试,仍失败联系 DPD 技术支持(cit@dpd.de) |
6.3 通用 API 错误(适用于所有接口)
| ErrorID | ErrorCode | 中文错误信息 | 处理建议 |
|---|---|---|---|
| 2000 | CLOUD_API_PARTNERCREDENTIALS | 合作伙伴凭证(Partner Credentials)无效 | 检查 Partner 的 Name 和 Token 是否正确,生产环境需使用非 -stage 域名的凭证 |
| 2001 | CLOUD_API_USERCREDENTIALS | 用户凭证(User Credentials)无效 | 检查 cloudUserID 和用户 Token 是否正确,确保用户已开通相关服务权限 |
| 2004 | CLOUD_API_VERSION | API 版本无效 | 固定填写 Version=100 |
| 2005 | CLOUD_API_LANGUAGE | 语言格式错误 | 仅支持 de_DE(德语)或 en_EN(英语) |
| 2027 | CLOUD_API_USERCALLLIMIT | API 调用次数超限,请10分钟后重试 | 减少调用频率,避免短时间内大量请求 |
7. 接口调用示例(完整场景)
7.1 场景1:德国境内经典配送(Classic)
请求示例(XML)
<setOrderRequest>
<Version>100</Version>
<Language>de_DE</Language>
<!-- 合作伙伴凭证 -->
<PartnerCredentials>
<Name>YOUR_PARTNER_NAME</Name>
<Token>YOUR_PARTNER_TOKEN</Token>
</PartnerCredentials>
<!-- 用户凭证 -->
<UserCredentials>
<cloudUserID>123456789</cloudUserID> <!-- DPD分配的用户编号 -->
<Token>YOUR_USER_TOKEN</Token> <!-- 用户密码 -->
</UserCredentials>
<OrderAction>startOrder</OrderAction> <!-- 发起实际订单 -->
<OrderSettings>
<ShipDate>2024-12-02</ShipDate> <!-- 配送日期(非节假日) -->
<LabelSize>PDF_A4</LabelSize> <!-- 运单尺寸:A4 PDF -->
<LabelStartPosition>UpperLeft</LabelStartPosition> <!-- 打印起始位置:左上 -->
</OrderSettings>
<OrderDataList>
<OrderData>
<ParcelShopID>0</ParcelShopID> <!-- 非自提点配送,填0 -->
<ShipAddress>
<Gender>male</Gender>
<Company>Mustermann AG</Company>
<Salutation>Herr</Salutation>
<FirstName>Max</FirstName>
<LastName>Mustermann</LastName>
<Street>Wailandtstr.</Street>
<HouseNo>1</HouseNo>
<ZipCode>63741</ZipCode>
<City>Aschaffenburg</City>
<Country>DEU</Country>
<Phone>+49 171 111 1111</Phone>
<Mail>m.mustermann@mustermann.de</Mail>
</ShipAddress>
<ParcelData>
<ShipService>Classic</ShipService> <!-- 经典配送 -->
<Weight>1.5</Weight> <!-- 包裹重量1.5kg(小包裹) -->
<Content>Smartphone</Content> <!-- 包裹内容描述 -->
<YourInternalID>INT-20241201-001</YourInternalID> <!-- 内部参考号 -->
<Reference1>Kunden-12345</Reference1> <!-- 参考文本1 -->
<Reference2>Bestell-67890</Reference2> <!-- 参考文本2 -->
</ParcelData>
</OrderData>
</OrderDataList>
</setOrderRequest>
响应示例(XML)
<setOrderResponse>
<Ack>true</Ack>
<TimeStamp>2024-12-01T14:30:00.1234567+01:00</TimeStamp>
<LabelResponse>
<LabelPDF>JVBERi0xLjQKJeLjz9MNCjYgMCBvYmoKPDwvTGVuZ3RoIDQgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+Pg...</LabelPDF>
<LabelDataList>
<LabelData>
<YourInternalID>INT-20241201-001</YourInternalID>
<ParcelNo>09981234567899</ParcelNo>
</LabelData>
</LabelDataList>
</LabelResponse>
</setOrderResponse>
7.2 场景2:自提点配送(Shop_Delivery)
核心差异:需通过 getParcelShopFinder 获取 ParcelShopID 并填入 OrderData,示例如下:
<OrderData>
<ParcelShopID>123456</ParcelShopID> <!-- 从 getParcelShopFinder 接口获取的自提点ID -->
<ShipAddress>
<!-- 自提点配送时,ShipAddress 仍需填写收件人信息(用于通知),但运单地址会自动替换为自提点地址 -->
<FirstName>Max</FirstName>
<LastName>Mustermann</LastName>
<Mail>m.mustermann@mustermann.de</Mail>
<Phone>+49 171 111 1111</Phone>
</ShipAddress>
<ParcelData>
<ShipService>Shop_Delivery</ShipService> <!-- 自提点配送 -->
<Weight>2.8</Weight>
<Content>Books</Content>
</ParcelData>
</OrderData>
8. 关键注意事项
-
COD 服务已取消
2020年5月11日起,DPD 完全取消货到付款(COD)服务,请求中若包含COD节点或使用Classic_COD等配送产品,会返回 1010 错误,需避免使用。 -
批量订单限制
单次请求最多支持 30 个订单(OrderDataList 节点数量≤30),超过需拆分请求;退货订单(Classic_Return)仅支持单个发起,不可批量。 -
地址校验规则
- 德国地址:会校验邮编、城市、街道、门牌号的匹配性,错误时会返回修正建议(如“Nuernberg”→“Nürnberg, Gebersdorf”)。
- 美国/加拿大地址:必须填写
State(ISO3166-2 州代码,如美国加州填CA),其他国家无需填写State。 - 无邮编国家:需填
0作为邮编(如部分岛国)。
-
运单生成与处理
- 运单生成后无需主动取消:未被 DPD 扫描的运单不会计费,废弃运单直接删除即可(仅消耗一个运单号)。
- 运单打印:需将 LabelPDF 的 Base64 字符串解码为 PDF 文件后打印,支持 A4/A6 格式。
-
Express 服务限制
- 境内 Express(如 Express_830/Express_10):仅支持德国境内,且需在
getZipCodeRules返回的ExpressCutOff时间前发起请求(如 16:00 前下单,次日 8:30 达)。 - 国际 Express(Express_International):不支持海关数据填写,需提前确认目标国家的清关要求。
- 境内 Express(如 Express_830/Express_10):仅支持德国境内,且需在
-
凭证与环境切换
- 测试环境(Sandbox):使用注册 DPD 开发者账号后获取的 Sandbox Credentials,接口 URL 含
-stage后缀。 - 生产环境:需联系 DPD 开通,获取新的 Live Credentials,接口 URL 需删除
-stage后缀(如https://cloud.dpd.com/api/v1/setOrder)。
- 测试环境(Sandbox):使用注册 DPD 开发者账号后获取的 Sandbox Credentials,接口 URL 含
9. 相关接口联动
| 关联接口 | 用途 | 调用时机 |
|---|---|---|
| getParcelShopFinder | 获取自提点 ID(ParcelShopID)、地址、营业时间等信息 | 当使用 Shop_Delivery(自提点配送)或 Shop_Return(自提点退货)时,需先调用此接口获取 ParcelShopID |
| getZipCodeRules | 查询指定邮编的配送规则(如无 pickup 日、Classic/Express 截止时间) | 发起订单前调用,确认配送日期(ShipDate)是否为有效日期,避免 2110 错误 |
| getOrderStatus | 跟踪订单物流状态(支持单个/多个包裹,信息比 getParcelLifeCycle 更详细) | 订单发起后,通过 ParcelNo 或 MPS 号查询物流进度 |
10. 技术支持与联系方式
若遇到接口调用问题,可通过以下方式联系 DPD 技术团队:
- 邮箱:cit@dpd.de
- 德国境内热线:0180 6 373200(工作日 7:00-19:00,周六 9:00-14:00;固话 0.20€/通,手机最高 0.60€/通)
- 开发者平台:https://esolutions.dpd.com/entwickler/(注册后可获取测试凭证、查看更多示例代码)
DPD setOrder 接口 REST 调用指南
1. 接口基础信息
- 请求方式:POST
- 生产环境URL:
https://cloud.dpd.com/api/v1/setOrder- 测试环境URL:
https://cloud-stage.dpd.com/api/v1/setOrder2. 请求头(Header)配置
头参数名 必填 取值/说明 Version 是 固定为 100Language 是 仅支持 de_DE(德语)/en_EN(英语)PartnerCredentials-Name 是 DPD分配的合作伙伴名称(测试/生产环境需对应) PartnerCredentials-Token 是 合作伙伴专属令牌(注意:原表格重复项已修正) UserCredentials-cloudUserID 是 DPD分配的用户编号(客户编号) UserCredentials-Token 是 用户专属令牌(客户密码) Content-Type 是 application/json(JSON格式请求)/application/xml(XML格式请求)3. 请求体(JSON格式)示例
{ "OrderAction": "startOrder", // 操作类型:startOrder(生成订单)/checkOrderData(仅校验) "OrderSettings": { "ShipDate": "2025-11-28", // 配送日期(yyyy-MM-dd,周日/节假日不可选) "LabelSize": "PDF_A6", // 标签尺寸:PDF_A4/PDF_A6(推荐)/ZPL_A6(暂不支持) "LabelStartPosition": "UpperLeft" // 打印位置:UpperLeft/UpperRight/LowerLeft/LowerRight }, "OrderDataList": [ // 订单列表(≤30单,退货订单仅支持1单) { "ParcelShopID": 0, // 自提点ID:非自提点填0,自提点配送需传有效ID(从getParcelShopFinder获取) "ShipAddress": { // 收件人地址(必填字段:Street/HouseNo/ZipCode/City/Country) "Gender": "none", // 性别:none/male/female(仅Name填写时生效) "Name": "JKD-Test-UserName", // 联系人姓名(与Company二选一) "Street": "Duesseldorfer Str", // 街道名称 "HouseNo": "1", // 门牌号(德国地址需含数字,可填0) "ZipCode": "47055", // 邮编(无邮编国家填0) "City": "Duisburg", // 城市 "Country": "DEU", // 国家:Alpha3代码(如DEU)/Alpha2代码(如DE) "Phone": "+49 171 111 1111", // 电话(Predict配送需填) "Mail": "xxx@xxx.com" // 邮箱(Predict配送需填) }, "ParcelData": { // 包裹信息(必填字段:ShipService/Weight/Content) "ShipService": "Classic", // 配送类型:Classic(标准)/Shop_Delivery(自提点)/Classic_Return(退货) "Weight": 14, // 重量(0-31.5kg,<3kg自动识别小包裹) "Content": "Smartphone", // 包裹内容(≤35字符) "YourInternalID": "JKD-Order-cbn4t394j7", // 内部参考号(关联企业系统) "Reference1": "JKD-Order-cbn4t394j7", // 标签显示参考文本1 "Reference2": "JKD-SKU-BIKE049gr-18" // 标签显示参考文本2 } } ] }4. 关键参数说明
- OrderAction:
startOrder会生成运单并触发配送,checkOrderData仅校验数据不生成运单;- ShipDate:需为未来有效日期(周日/节假日不可选,可通过
getZipCodeRules接口验证);- ShipAddress:美国/加拿大需额外传
State(州代码,如CA),Company与Name至少填一项;- ShipService:
Classic_Return(退货订单)不可批量提交,需单独请求。5. 注意事项
- 测试/生产环境的**凭证(Name/Token/cloudUserID)**需严格区分,不可混用;
- 批量订单最多30单,超过需拆分请求;
- COD服务已取消,请勿传
COD相关参数;- 自提点配送需先调用
getParcelShopFinder获取有效ParcelShopID。总结
- 请求头需完整携带版本、语言及两类凭证,否则认证失败;
- 请求体必填参数:地址类(Street/HouseNo/ZipCode/City/Country)、包裹类(ShipService/Weight/Content);
- 配送日期、订单数量、配送类型需符合DPD规则,避免接口报错。
870

被折叠的 条评论
为什么被折叠?



