Skip to main content

TMS 运单开放接口-询价

基本信息

  • 方法:POST
  • 路径:/label/rates

用途

按客户编号、发件地址、收件地址、包裹信息与附加选项,查询该用户当前可用的所有渠道报价列表。报价列表会按用户/承运商的隐藏规则做脱敏。

公共请求头

所有 TMS 运单开放接口都需要传以下请求头:

Content-Type: application/json
Apikey: {{api_key}}
Apisign: {{api_sign}}
Timestamp: {{timestamp}}

请求参数

字段类型必填说明
apiUserCodestring客户编号;必须与鉴权用户或 user.userCode 解析出的用户一致
orderUserReferenceCodestring外部参考号,仅记录用
userobject用户对象;userCode 非空时按该编号解析用户
fromAddressIdint条件必填发件地址 ID;用户开启 AddressLimit 时必填
shipFromobject发件地址;开启 AddressLimit 时由 fromAddressId 自动覆写
shipToobject收件地址
returnAddressobject退件地址
packagesarray包裹列表,至少 1 条
productsarray商品列表,国际件建议传
optionsobject附加选项
serviceCodesarray[string]限定服务代码列表,仅用于过滤
sellerOrderNumberstring卖家订单号
carrierCodestring承运商代码,过滤用
serviceCodestring服务代码,过滤用

地址对象字段

用于 shipFromshipToreturnAddress 等字段。

字段类型必填说明
codestring地址编码
namestring名称/公司名
attentionNamestring联系人姓名
countryCodestring国家代码,如 US
stateCodestring州/省代码,如 CANY
citystring城市
addressLine1string地址行 1
addressLine2string地址行 2
addressLine3string地址行 3
postalCodestring邮编
phonestring联系电话
phoneExtensionstring电话分机
emailstring邮箱
memostring备注
midstringMID 标识,部分国际件场景使用
isResidentialbool是否住宅地址,默认 false
verifyStatusint地址校验状态,一般由响应回填,请求可不传

说明:Gin 绑定仅校验地址对象本身非空;实际调用时 countryCodeaddressLine1postalCode 为业务必填。

包裹对象字段

用于 packages[] 数组元素,至少 1 条。

字段类型必填说明
idint包裹 ID,内部使用,开放接口可不传
lengthfloat长度,单位由 options.dimensionUnitCode 决定
widthfloat宽度
heightfloat高度
weightfloat重量,单位由 options.weightUnitCode 决定
quantityint数量,默认 1
declaredValuefloat单包裹申报价值
reference1string参考号 1
reference2string参考号 2
reference3string参考号 3
hazMatobject危险品信息
freightClassstring货运等级,LTL 等场景使用
quantityUnitPcsint件数单位

危险品对象字段

嵌套在 packages[].hazMat 中,仅危险品包裹需要传。

字段类型必填说明
Reference_numberstring参考号
shippingNamestring危险品正式运输名称
RegulationSetstring法规集,空运常用 IATA
TransportationModestring运输模式,常用 CAO
classDivisionNumberstring危险等级/分类号
quantitystring危险品数量
IDNumberstringUN/ID 编号
UOMstring计量单位
PackagingTypestring包装类型,如 FIBERBOARD BOX

商品对象字段

用于 products[] 数组元素,国际件建议传。

字段类型必填说明
idint商品 ID,内部使用,开放接口可不传
descriptionstring商品描述
quantityint数量
weightfloat重量
declaredValuefloat申报价值
declaredValueClassint申报价值等级
hsCodestringHS 编码
originCountrystring原产国代码

附加选项对象字段

用于 options 字段。

字段类型必填说明
deliveryConfirmationstring签收确认类型,如 signatureadultSignature
shipDatestring发货日期,格式 YYYY-MM-DD
packageTypestring包装类型,如 YOUR_PACKAGING
dimensionUnitCodestring尺寸单位,常用 INCM
weightUnitCodestring重量单位,常用 LBSKG
declaredValueCurrencyCodestring申报价值币种,如 USD
isUniqueSellerOrderNumberbool卖家订单号是否唯一,默认 false

用户对象字段

用于 user 字段,GetRate 接口可传,其余接口忽略。

字段类型必填说明
userCodestring客户编号;GetRate 传该字段时会覆盖鉴权用户
userNamestring用户名
labelCustomPrintint面单自定义打印选项
USPSMailingDaysintUSPS 邮寄天数

请求示例

{
"apiUserCode": "CUST-001",
"orderUserReferenceCode": "REF-001",
"user": {
"userCode": "CUST-001"
},
"fromAddressId": 0,
"shipFrom": {
"name": "Sender Company",
"attentionName": "Tom",
"countryCode": "US",
"stateCode": "CA",
"city": "Los Angeles",
"addressLine1": "123 Main St",
"addressLine2": "",
"postalCode": "90001",
"phone": "1234567890",
"email": "demo@example.com",
"isResidential": false
},
"shipTo": {
"name": "Receiver Company",
"attentionName": "Jerry",
"countryCode": "US",
"stateCode": "NY",
"city": "New York",
"addressLine1": "456 Madison Ave",
"addressLine2": "",
"postalCode": "10001",
"phone": "1234567890",
"email": "demo@example.com",
"isResidential": false
},
"packages": [
{
"length": 10,
"width": 8,
"height": 6,
"weight": 5.5,
"quantity": 1,
"declaredValue": 120,
"reference1": "BOX-001"
}
],
"products": [
{
"description": "T-shirt",
"quantity": 1,
"weight": 1.2,
"declaredValue": 25,
"hsCode": "610910",
"originCountry": "US"
}
],
"options": {
"deliveryConfirmation": "signature",
"shipDate": "2026-06-26",
"packageType": "YOUR_PACKAGING",
"dimensionUnitCode": "IN",
"weightUnitCode": "LBS",
"declaredValueCurrencyCode": "USD",
"isUniqueSellerOrderNumber": false
},
"serviceCodes": ["UPARCEL_GROUND"]
}

成功响应示例

{
"code": 200,
"data": {
"rates": [
{
"rateId": "rate_d4g8m1abc",
"rate": 12.34,
"charge": 9.10,
"chargeItems": [
{ "code": "BASE", "value": 10.0, "currencyCode": "USD" },
{ "code": "FUEL", "value": 2.34, "currencyCode": "USD" }
],
"netChargeItems": [
{ "code": "BASE", "value": 7.5, "currencyCode": "USD" }
],
"currencyCode": "USD",
"carrierCode": "UPARCEL",
"carrierName": "UPARCEL",
"serviceCode": "GROUND",
"accountId": 0
}
],
"messages": []
},
"message": "success"
}

返回字段说明

字段类型说明
data.ratesarray报价列表
data.messagesarray[string]询价过程的附加提示信息;非超管用户且系统开启 HideClientRateError 时会被清空
data.rates[].rateIdstring报价 ID
data.rates[].ratefloat报价金额(已含用户报价方案)
data.rates[].chargefloat成本报价,仅在用户为超管时回填
data.rates[].chargeItemsarray报价明细列表
data.rates[].netChargeItemsarray成本明细列表,仅在用户为超管时回填
data.rates[].currencyCodestring币种,如 USD
data.rates[].carrierCodestring承运商代码
data.rates[].carrierNamestring承运商名称
data.rates[].serviceCodestring服务代码
data.rates[].accountIdint账号 ID,响应里会被强制清零

接口说明

  • 用户开启 AddressLimit 时,fromAddressId 必填,且会覆盖请求中的 shipFrom
  • user.userCode 与顶层 apiUserCode 必须一致
  • shipTo.phoneExtension 不参与询价
  • 包裹的 hazMatreference3quantityUnitPcs 字段当前不参与询价

错误响应示例

{
"code": 400,
"data": null,
"message": "serviceCode is required"
}
codemessage场景
401请传入API授权信息缺少 Apikey
401请传入apiSign授权签名信息缺少 Apisign
400由 Gin 绑定错误文本决定参数绑定失败
400xxx apiUserCode不匹配apiUserCode 与解析用户不一致
400未查到渠道报价询价无可用报价

响应码约定:

  • 成功时响应体 code = 200
  • 参数校验或业务失败时,通常返回 code = 400
  • 鉴权失败时,通常返回 code = 401
  • 这套开放接口的成功码不是后台私有接口常见的 0