# 订单详情查询接口

# 1.概述

通过【订单详情查询】接口,客户平台可根据订单号查询订单详情。该文档仅展示订单基础信息,各品类业务信息请跳转订单详情业务字段说明进行查看。

# 2.接口基本信息

名称 描述
请求方式 POST
调用地址 测试环境:https://waimai-openapi.apigw.test.meituan.com/api/sqt/open/order/queryDetail
正式环境:https://bep-openapi.meituan.com/api/sqt/open/order/queryDetail
调用方 客户平台
响应方 美团企业版
响应超时时间 5秒
调用限频 每分钟访问不超过100次,每天累计访问不超过100000次

# 2.1.请求体

名称 类型 是否必填 示例 说明
accessKey String 是 B3GFJIEHNEM1RLV-TK 美团企业版分配给客户的接入秘钥
content String 是 UgxoCGPQIzoP 请求体内容,将请求参数JSON序列化后进行加密的结果值,
参照:签名实例

# content加密前数据结构

名称 类型 是否必填 示例 说明
ts Long 是 1617085650321 13位时间戳。若请求发起时间与平台接受请求时间相差大于10分钟,平台将直接拒绝本次请求
entId Long 是 46574 企业ID
sqtBizOrderId Long 是 314442083816943618 美团企业版订单ID

# 2.2.响应参数

名称 类型 是否必填 示例 说明
traceId String 是 56a0af18ae30a168d4006c7c 日志查询ID,用于排查问题
status Integer 是 0 接口响应编码,编码枚举值和解决方案详见第四章错误码
msg String 否 错误描述信息
data String 是 UgxoCGPQIzoP 响应数据,将响应参数JSON序列化后进行加密的结果值,解密秘钥使用secretKey参数

# data解密后数据结构

名称 类型 是否必填 示例 说明
baseInfo OrderBaseInfo 是 订单基础信息
payInfo PayInfo 是 支付基本信息
staffInfo StaffInfo 是 员工基本信息
shopInfo ShopInfo 是 店铺基本信息
invoiceInfo InvoiceInfo 否 发票基本信息
controlInfo ControlInfo 否 管控信息,包含订单关联申请信息
costBelongInfo CostBelongInfo 否 费用归属信息
origOrderInfo String 否 业务信息字段,为各品类业务信息json序列化后的字符串,各品类数据结构详见:
外卖业务信息
团购业务信息
打车业务信息
特许报备业务信息
酒店业务信息
买药业务信息
买菜业务信息
火车票业务信息

OrderBaseInfo字段说明

名称 类型 是否必填 示例 说明
sqtBizOrderId Long 是 314442083816943618 美团企业版订单ID
origOrderId String 是 6045253884937765 业务原始订单ID
firstBusinessType String 是 030 一级业务品类编码,详见:6.1.业务类型映射关系
firstBusinessName String 是 到店 一级业务品类名称
secondBusinessType String 是 030110 二级业务品类编码,详见:6.1.业务类型映射关系
secondBusinessName String 是 团购 二级业务品类名称
sceneType Integer 否 3 下单场景编码,详见:6.2.下单场景枚举
sceneTypeName String 否 商务差旅 下单场景名称
orderAmount String 是 35.40 订单金额,单位元,精确到小数点后两位(不包含服务费)
bizOrPersonal Integer 是 0 因公因私消费表述,0:因公消费;1:因私消费,C端消费订单,此字段返回为空
createTime String 是 2019-10-01 16:40:34 下单时间,格式:yyyy-MM-dd hh:mm:ss
updateTime String 是 2019-10-01 16:40:34 更新时间,格式:yyyy-MM-dd hh:mm:ss

PayInfo字段说明

名称 类型 是否必填 示例 说明
payStatus Integer 是 20 支付状态,10:未支付,20:已支付,31:部分退款,32:全额退款
payStatusName String 是 已支付 支付状态描述
payType Integer 否 10 支付类型,10:企业支付,20:个人支付,50:组合支付
payTypeName String 否 企业支付 支付类型描述
totalPayAmount String 是 35.40 总支付金额,单位元,精确到小数点后两位(不包含服务费),金额不区分正负
totalRefundAmount String 是 0.00 总退款金额,单位元,精确到小数点后两位(不包含服务费)
totalRealAmount String 是 35.40 实际支付金额(总支付-总退款),单位元,精确到小数点后两位(不包含服务费)
realtimeServiceFeeMode Integer 否 1 随单收服务费承担方式,0:企业承担(不扣预算),1:员工承担(扣员工预算),10:组合承担
realtimeServiceFee String 否 0.00 随单收服务费,单位元,精确到小数点后两位
afterServiceFee String 否 0.00 后结算服务费,单位元,精确到小数点后两位
repayAmount String 是 0.00 实际偿还金额,单位元,精确到小数点后两位(不包含服务费)
entPayAmount String 是 35.40 企业支付金额,单位元,精确到小数点后两位(不包含服务费)
entRefundAmount String 是 0.00 企业退款金额,单位元,精确到小数点后两位(不包含服务费)
staffPayAmount String 是 0.00 个人支付金额,单位元,精确到小数点后两位(不包含服务费)
staffRefundAmount String 是 0.00 个人退款金额,单位元,精确到小数点后两位(不包含服务费)
businessDiscountPayAmount String 是 0.00 优惠承担支付金额,单位元,精确到小数点后两位
businessDiscountRefundAmount String 是 0.00 优惠承担退款金额,单位元,精确到小数点后两位
realtimeServiceFeePayAmount String 否 0.04 随单收服务费支付金额,单位元,精确到小数点后两位
realtimeServiceFeeEntPayAmount String 否 0.04 随单收服务费企业支付金额,单位元,精确到小数点后两位
realtimeServiceFeePersonalPayAmount String 否 0.00 随单收服务费个人支付金额,单位元,精确到小数点后两位
realtimeServiceFeeRefundAmount String 否 0.04 随单收服务费退款金额,单位元,精确到小数点后两位
realtimeServiceFeeEntRefundAmount String 否 0.04 随单收服务费企业退款金额,单位元,精确到小数点后两位
realtimeServiceFeePersonalRefundAmount String 否 0.00 随单收服务费个人退款金额,单位元,精确到小数点后两位
afterServiceFeePayAmount String 否 0.00 后结算服务费支付金额,单位元,精确到小数点后两位
afterServiceFeeRefundAmount String 否 0.00 后结算服务费退款金额,单位元,精确到小数点后两位
totalReduceAmount String 是 0.00 总优惠金额,单位元,精确到小数点后两位
payTime String 否 2021-03-10 16:43:29 首次支付时间,格式:yyyy-MM-dd hh:mm:ss
latestRefundTime String 否 2021-03-10 16:43:29 最后退款时间,格式:yyyy-MM-dd hh:mm:ss

StaffInfo字段说明

名称 类型 是否必填 示例 说明
staffId Long 是 230477 下单员工美团侧员工ID
staffName String 否 苏测试 员工名称
staffNum String 否 1008611 员工工号
staffPhone String 否 15200000000 员工手机号
staffEmail String 否 sucesi@test.cn 员工邮箱
staffLevel String 否 测试工程师 员工职级
staffCityId String 否 110000 员工所在城市编码
staffCityName String 否 北京市 员工所在城市名称
staffOrgInfo List<StaffOrgInfo> 否 员工部门信息

StaffOrgInfo字段说明

名称 类型 是否必填 示例 说明
orgIdPath Long 否 0-128-483 美团侧部门编码路径,从公司层级开始到员工直属部门,即从0开始,中间用英文“-”分隔
orgNamePath String 否 美团-XX事业部-XX 部门名称路径,从公司层级开始到员工直属部门

ShopInfo字段说明

名称 类型 是否必填 示例 说明
shopId Long 否 164745678 店铺id,如需获取,请联系客户经理开通权限
shopName String 否 麦当劳店 店铺名称,如需获取,请联系客户经理开通权限
shopPhone String 否 010-xxxxxx 店铺电话,如需获取,请联系客户经理开通权限多个店铺电话,会以英文"/"隔开
shopAddress String 否 中关村xxx 店铺地址,如需获取,请联系客户经理开通权限
shopInvoiceTitle String 否 XX有限公司 商家登记的发票抬头,只能作为合规参考项,和实际开票抬头可能有差异
provinceId String 否 510000 消费省份编码(国标)
provinceName String 否 四川省 消费省份名称
cityId String 否 510100 消费城市编码(国标)
cityName String 否 成都市 消费城市名称
locationId String 否 510104 消费区编码(国标)
locationName String 否 锦江区 消费区名称

InvoiceInfo字段说明

名称 类型 是否必填 示例 说明
invoiceTitle String 否 北京三快在线科技有限公司 抬头
invoiceNum String 否 xxxxxxxxxxxxxxxxxx 税号
invoiceId String 否 123456 企业内部发票Id

ControlInfo字段说明

名称 类型 是否必填 示例 说明
rulePackId String 否 8410 订单应用规则ID,目前仅餐、车类订单会返回
ruleName String 否 工作日加班餐 订单应用规则名称,目前仅餐、车类订单会返回
applyList List<ApplyInfo> 否 [{}] 申请单信息
applyExceedInfo ApplyExceedInfo 否 申请单额度超标信息,此字段作废,如需超标信息,请使用quotaExceedLimitInfoList字段
quotaExceedLimitInfoList List<QuotaExceedLimitInfo> 否 额度超标信息列表
exceedLimitList List<ExceedLimitInfo> 否 超规则信息
auditList List<AuditInfo> 否 审批信息

ApplyExceedInfo字段说明

名称 类型 是否必填 示例 说明
isExceed Integer 否 1 超标标识,0:未超标,1:超标
reason String 否 申请用餐 超标原因
exceedAmount String 否 22.02 超标金额 单位:元,精确到小数点后两位

ExceedLimitInfo字段说明

名称 类型 是否必填 示例 说明
bizType Integer 是 1 业务节点类型,1抢票,2预定,3改签,4退订
ruleType Integer 是 111 超规则项类型
ruleName String 否 未提前预订 超规项名称
ruleLimit String 否 0.00 规则标准
reason String 否 提前预定 超规则原因
reasonRemark String 否 备注测试 超规则原因备注
exceedId String 是 123456 超规单号

AuditInfo字段说明

名称 类型 是否必填 示例 说明
bizType Integer 是 1 业务节点类型,1抢票,2预定,3改签,4退订
auditNo String 是 111222 审批单号
auditStatus Integer 是 10 审批状态,10.待提交 20.审批中 30.已撤回 40.已驳回 60.已完成

QuotaExceedLimitInfo字段说明

名称 类型 是否必填 示例 说明
quotaCode String 是 applyExceed 额度code,applyExceed:申请额度超标; avgPersonExceed:人均额度超标
isExceed Integer 是 0 是否超标 0:未超标,1:超标
exceedAmount String 是 22.02 超标金额 单位:元,精确到小数点后两位
reason String 否 申请用餐 原因

ApplyInfo字段说明

名称 类型 是否必填 示例 说明
applyType Integer 是 1 申请单类型,1:出差申请,2:用餐申请,3:用车申请
applyNo String 否 123456 美团企业版申请单号
externalApplyNo String 否 4747 外部申请单号

CostBelongInfo字段说明

名称 类型 是否必填 示例 说明
costCenterList List<CostInfo> 否 成本中心及分摊信息
projectList List<CostInfo> 否 项目列表及分摊信息

CostInfo字段说明

名称 类型 是否必填 示例 说明
costSource Integer 是 1 成本来源,1:美团企业版侧成本中心,2:美团企业版侧部门,3:第三方成本中心,4:美团企业版项目,5:第三方项目
costNo String 是 414414 成本中心/项目唯一标识
costName String 是 制造本部-河北工厂 成本中心/项目名字
amount String 否 20.23 分摊金额,单位元,精确到小数点后两位
ratio String 否 0.30 分摊比例,0-1之间的小数
customField1 String 否 扩展字段1
customField2 String 否 扩展字段2
customField3 String 否 扩展字段3
customField4 String 否 扩展字段4
customField5 String 否 扩展字段5
parentChain List<ParentChain> 否 父级链

ParentChain字段说明

名称 类型 是否必填 示例 说明
costSource Integer 是 1 成本来源,1:美团企业版侧成本中心,2:美团企业版侧部门,3:第三方成本中心,4:美团企业版项目,5:第三方项目
costLevel Integer 是 1 父级级别
costNo String 是 414 成本中心/项目唯一标识
costName String 是 制造本部 成本中心/项目名字

# 3.示例

# 3.1.请求示例

# 3.1.1.请求示例

{
  "accessKey": "B3GFJIEHNEM1RLV-TK",
  "content": "UgJn07uNgW7S7fJK0R0xVbaLxoCGPQIzoP-_K4Hmp4RduGszhm2mbUs2toZhCtXKP5JGXVTZ9kGts2Wx3IJQCd90ptMoJTDB0vu7mkedEr4KZCvZn77EZLssMC5SpXilmQ-5RXHzvMIT0ASH-IXepTP_O16U37QqCkEb5L1WLy4"
}

# 3.1.2.请求参数content解析

{
  "ts": 1617085650321,
  "entId": 617,
  "sqtBizOrderId": "1620305827757821973"
}

# 3.2.响应示例

# 3.2.1.响应结果

{
  "traceId": "56a0af18ae30a168d4006c7c",
  "status": 0,
  "data": "UgJn07uNgW7S7fJK0R0xVbaLxoCGPQIzoP-_K4Hmp4RduGszhm2mbUs2toZhCtXKP5JGXVTZ9kGts2Wx3IJQCd90ptMoJTDB0vu7mkedEr4KZCvZn77EZLssMC5SpXilmQ-5RXHzvMIT0ASH-IXepTP_O16U37QqCkEb5L1WLy4"
}

# 3.2.2.响应参数data解析

{
  "status": 0,
  "message": null,
  "data": {
    "baseInfo": {
      "sqtBizOrderId": 1633031000365731851,
      "origOrderId": "447424063084876",
      "firstBusinessType": "020",
      "firstBusinessName": "外卖",
      "secondBusinessType": "020000",
      "secondBusinessName": null,
      "sceneType": 6,
      "sceneTypeName": "本地快采",
      "orderAmount": "15.00",
      "bizOrPersonal": null,
      "createdTime": "2023-03-07 17:05:05",
      "updateTime": "2023-03-07 23:29:24"
    },
    "payInfo": {
      "payStatus": 20,
      "payStatusName": "已支付",
      "payType": 10,
      "payTypeName": "企业支付",
      "totalPayAmount": "15.00",
      "totalRefundAmount": "0.00",
      "totalRealAmount": "15.00",
      "realtimeServiceFeeMode": null,
      "realtimeServiceFee": null,
      "afterServiceFee": null,
      "repayAmount": "0.00",
      "entPayAmount": "15.00",
      "entRefundAmount": "0.00",
      "staffPayAmount": "0.00",
      "staffRefundAmount": "0.00",
      "realtimeServiceFeeEntPayAmount": null,
      "realtimeServiceFeeEntRefundAmount": null,
      "realtimeServiceFeePersonalPayAmount": null,
      "realtimeServiceFeePersonalRefundAmount": null,
      "realtimeServiceFeePayAmount": null,
      "realtimeServiceFeeRefundAmount": null,
      "afterServiceFeePayAmount": null,
      "afterServiceFeeRefundAmount": null,
      "totalReduceAmount": "0.00",
      "payTime": "2023-03-07 17:05:39",
      "latestRefundTime": null
    },
    "staffInfo": {
      "staffId": 528980,
      "staffName": "XX",
      "staffNum": "03196600",
      "staffPhone": "15910660000",
      "staffEmail": "xxxxxx@test.com",
      "staffLevel": "",
      "staffCityId": "110100",
      "staffCityName": "北京",
      "staffOrgInfo": [
        {
          "orgIdPath": "0-126008-126009-133061-175470-133063-126899",
          "orgNamePath": "TMC-123-公司-美团-到家事业群-到家研发平台-外卖技术部-企业技术组"
        }
      ]
    },
    "poiInfo": {
      "shopName": "B端自动化-跑腿+聚合配634918",
      "shopPhone": "18801496318",
      "shopAddress": "望京研发园1-1",
      "provinceId": "110000",
      "provinceName": "北京市",
      "cityId": "110000",
      "cityName": "北京市",
      "locationId": "110105",
      "locationName": "朝阳区"
    },
    "invoiceInfo": {
      "invoiceTitle": "北京三快在线科技有限公司",
      "invoiceNum": "91110108562144110X",
      "invoiceId": 56
    },
    "controlInfo": {
      "rulePackId": null,
      "ruleName": null,
      "applyExceedInfo": null,
      "applyList": [
        {
          "applyType": 2,
          "applyNo": "5T7DXOJQ054Y",
          "outerApplyNo": ""
        }
      ]
    },
    "costBelongInfo": {
      "costCenterList": [],
      "projectList": []
    },
    "origOrderInfo": "{\"orderStatus\":8,\"logisticsStatus\":100,\"originalPrice\":\"15.00\",\"actualPayTotal\":\"15.00\",\"boxTotalPrice\":\"0.00\",\"shippingFee\":\"3.00\",\"recipientName\":\"fff(先生)\",\"recipientPhone\":\"15910660000\",\"recipientAddress\":\"恒电大厦-B座 (11)\",\"addressLongitude\":\"116.488304\",\"addressLatitude\":\"40.008677\",\"estimateArrivalTime\":\"2023-03-07 18:00:40\",\"bookingOrder\":false,\"pickType\":0,\"poiCateCode\":1000,\"poiCateDesc\":\"美食\",\"poi2ndCateCode\":22010000,\"poi2ndCateDesc\":\"快餐简餐\",\"poi3rdCateCode\":22012600,\"poi3rdCateDesc\":\"其他饭类套餐\",\"remark\":\"企业因公消费无需开票(请勿删除)\",\"foodList\":[{\"foodId\":\"12197257\",\"foodName\":\"柄处逛\",\"originPrice\":\"12.00\",\"foodPrice\":\"12.00\",\"foodCount\":1,\"boxPrice\":\"0.00\",\"boxNum\":1}],\"appendProductList\":[]}"
  }
}

# 4.错误码

# 4.1.公共错误码

错误码 错误描述 解决方案
10010002 企业已停止合作,请联系客户经理进行确认 将接口调用的entId参数给到客户经理,由客户经理确认企业状态是否在合作中
10010003 content不合法 详细阅读content参数加密说明(签名实例),确认content加密方式和content解密前传参是否正确
10010004 ts缺失或ts时间已过期 确认ts是否传值并为13位时间戳,如果正确传值,则确认请求发起时间与美团企业版接受请求的时间差是否超过10分钟
10010005 entId不能为空 entId参数不可为空,如果未拿到entId参数,可以咨询客户经理获取
20010001 accessKey不合法 检查accessKey是否为客户经理给到的值,如果accessKey值正确,确认调用环境是否和accessKey一致,如使用测试环境的accessKey调用线上的接口
20010002 请求path不合法 检查接口调用地址是否正确,如是否有非法字符
20010003 鉴权失败,无接口访问权限 将接口调用地址给到客户经理,由客户经理检查接口权限是否开通并保存成功
20010004 越权访问,无法访问该企业数据,请检查entId的正确性 检查accessKey和entId两个参数的对应关系是否正确
30010001 访问频率过高 请确认接口访问频率,每个接口默认调用限频为每分钟不超过100次,超出调用频率会调用此错误
30010002 访问次数超过配额 请确认接口的累计访问次数,每个接口的默认累计调用量为10w次,超出限额则会报错

# 4.2.业务错误码

错误码 错误描述 解决方案
10210000 参数异常 请根据msg中内容排查传值情况,确认必填字段是否传值,如entId是否传值
40210003 数据不存在 请检查sqtBizOrderId字段传值是否为美团企业版订单号

# 5.代码实例

依赖SDK包地址:SDK下载地址

package com.meituan.sqt.demo.in.order;

import com.meituan.sqt.client.SqtClient;
import com.meituan.sqt.constant.CommonConstants;
import com.meituan.sqt.enums.ResponseStatusEnum;
import com.meituan.sqt.exception.MtSqtException;
import com.meituan.sqt.request.in.order.OrderDetailQueryRequest;
import com.meituan.sqt.response.in.BaseApiResponse;
import com.meituan.sqt.response.in.order.OrderDetailQueryResult;

import java.util.Objects;

public class OrderDetailQueryDemo {

    private static final String invokeUrl = "https://waimai-openapi.apigw.test.meituan.com/api/sqt/open/order/queryDetail";

    private static SqtClient sqtClient = null;

    static {
        // 初始化SqtClient,只需要初始化一次即可
        // entId,accessKey,secretKey需要根据不同环境动态的设置获取
        sqtClient = new SqtClient.Builder()
                .setEntId(CommonConstants.entId)
                .setAccessKey(CommonConstants.accessKey)
                .setSecretKey(CommonConstants.secretKey)
                .build();
    }

    public static void main(String[] args) throws MtSqtException {
        // 1. 构建请求对象
        OrderDetailQueryRequest orderDetailQueryRequest = new OrderDetailQueryRequest();
        orderDetailQueryRequest.setTs(System.currentTimeMillis());
        orderDetailQueryRequest.setEntId(sqtClient.getEntId());
        orderDetailQueryRequest.setSqtBizOrderId(1663790369990512642L);

        // 2. API调用
        // 注意:超时时间默认以请求对象中注解ApiMeta上设置的为准,也可以自定义传递对应的超时时间
        BaseApiResponse<OrderDetailQueryResult> response = sqtClient.invokeApi(invokeUrl, orderDetailQueryRequest, null, null);

        // 3. 响应结果为空处理
        if (response == null) {
            // 处理响应结果为空情况
            // ...

        }

        // 4. 获取结果
        if(Objects.equals(ResponseStatusEnum.SUCCESS.getCode(), response.getStatus())) {
            // 4.1 请求成功,获取订单详情查询结果
            OrderDetailQueryResult realData = response.getRealData();
            // 4.2 处理查询成功后的业务逻辑


        } else {
            // 处理请求失败场景
            handleRespFailResult(response);
        }
    }

    private static void handleRespFailResult(BaseApiResponse<OrderDetailQueryResult> response) {
        // 访问频率过高
        if (ResponseStatusEnum.HIGH_FREQUENCY_ACCESS.getCode().intValue() == response.getStatus()) {
            // 解决方案参照:https://h5.dianping.com/app/bep-docs/open-platform-doc/guide/rate_limiting.html
        }
        // 访问次数超过配额
        if (ResponseStatusEnum.EXCEED_ACCESS_NUMBER.getCode().intValue() == response.getStatus()) {
            // 解决方案参照:https://h5.dianping.com/app/bep-docs/open-platform-doc/guide/rate_limiting.html
        }
        // 其它失败场景

    }

}


# 6.附录

# 6.1.业务类型映射关系

一级业务类型编码一级业务类型名称二级业务类型编码二级业务类型名称
010到店
010110团购
010120买单
010130扫一扫
010140付款码
010150特许报备
010160预定
010170安心付
020外卖
030酒店030110国内酒店
040打车
050火车票
060机票060110国内机票
070优选
080买菜
090配餐
090110盒餐
090120现场就餐
100团好货
130门票
140电影票
150跑腿
160文印图文
170买药170110线上购药
180商品券180110外卖商品券
999其他

# 6.2.下单场景枚举

下单场景编码 下单场景说明
-1 无场景
1 商务宴请
2 企业用车
3 商务差旅
4 工作餐
5 团建用餐
6 本地快采
7 企业采买
8 员工福利
9 供给分销

# 7.版本记录

版本号 版本日期 更新内容
v1.0 2023-04-01 新增订单详情查询接口
v1.1 2023-08-08 新增代码实例
v1.2 2023-08-17 ApplyExceedInfo作废,使用quotaExceedLimitInfoList返回额度超标信息
v1.3 2023-11-21 新增二级业务类型安心付
v1.4 2024-06-14 移除打车二级
上次更新: 6/29/2026, 7:56:38 PM