企业基本信息查询

1. 接口概述

根据完整企业名称查询企业工商基本信息,包括企业名称、经营状态、法定代表人、统一社会信用代码、注册资本、注册地址、联系方式、经营范围等。

推荐调用流程:

企业名称模糊搜索
        ↓
用户选择正确企业
        ↓
取得完整companyName
        ↓
调用企业基本信息查询接口

每次成功调用会扣减调用方所属企业的 1 次工商查询额度。

2. 接入准备

调用接口前,需要向平台申请:

凭证 说明
appid 调用方应用身份标识
appsecret 调用方应用签名密钥

安全要求:

  • appid 通过请求 Header 发送。
  • appsecret 只用于调用方本地计算签名。
  • 不得在浏览器前端、移动端安装包或公开代码中保存 appsecret

3. 请求地址

请求方式:

POST

可用地址:

https://vip.xty123.cn/api/open/enterprise/baseInfo

请求数据格式:

application/json; charset=UTF-8

4. 请求鉴权

4.1 鉴权 Header

Header 类型 必填 说明
Content-Type String 固定为 application/json
appid String 平台分配的应用 ID
nonce String 随机字符串,建议每次请求重新生成
timestamp String 时间戳,建议使用 10 位 Unix 秒级时间戳
signature String 根据签名规则计算的签名

4.2 签名规则

待签名字符串 = appsecret + nonce + timestamp

计算 MD5:

signature = MD5(appsecret + nonce + timestamp)

签名结果应为 32 位小写十六进制字符串。

nonce = 生成随机字符串
timestamp = 当前Unix秒级时间戳
source = appsecret + nonce + timestamp
signature = MD5(source).转小写()

注意:

  • appsecret 不通过网络发送。
  • noncetimestamp 必须与计算签名时使用的值完全一致。
  • 不需要发送名为 sign 的 Header。
  • 请求路径、请求参数和请求体不参与当前签名计算。

5. 请求参数

5.1 JSON 请求体

参数 类型 必填 说明
companyName String 完整企业名称,不能为空

建议使用模糊搜索接口返回的 companyName 原值,不要自行删减企业名称中的行政区划、括号或组织形式。

5.2 请求示例

POST /api/open/enterprise/baseInfo HTTP/1.1
Host: vip.xty123.cn
Content-Type: application/json
appid: <平台分配的appid>
nonce: a8f3c2e91b7d4k6m
timestamp: 1789344000
signature: <计算得到的32位小写MD5值>

{
  "companyName": "示例科技有限公司"
}

6. 返回结构

6.1 公共响应字段

字段 类型 说明
code Integer 业务状态码,0 表示成功
msg String 业务状态说明
data Object 企业工商基本信息

调用方必须判断响应中的 code,不能只根据 HTTP 状态码判断业务是否成功。

6.2 data 企业信息字段

所有企业信息字段均可能为空,调用方必须做好空值兼容。

字段 类型 说明
id String 工商信息记录 ID,可能为空
companyName String 企业名称
englishCompanyName String 企业英文名称
companyStatus String 企业经营状态,例如存续、注销
establishDate String 企业成立日期
legalName String 法定代表人
registerCapital String 注册资本,可能包含数值、单位和币种
creditCode String 统一社会信用代码
address String 企业注册地址
phoneNumber String 企业联系电话
email String 企业联系邮箱
bankName String 开户银行,可能为空
bankAccount String 银行账号,可能为空
operateScope String 企业经营范围
phoneList String 电话集合,当前为 JSON 数组格式的字符串
isMicroEnt String 是否为微型企业
staffNumRange String 员工数量范围
industry String 所属行业
socialStaffNum String 参保人数或社会员工数
tags String 企业标签
approvedTime String 工商核准日期
regCapitalCurrency String 注册资本币种
actualCapitalCurrency String 实收资本币种
companyOrgType String 企业组织形式或企业类型
emailList String 邮箱集合,当前为 JSON 数组格式的字符串
toTime String 营业期限结束日期
regInstitute String 工商登记机关
legalPersonId String 法定代表人相关标识,可能为空
createTime String 数据缓存创建时间
updateTime String 数据缓存更新时间
thirdUpdate String 调用方工商数据更新时间
website String 企业官网
rating String 纳税信用评级

6.3 特殊字段说明

phoneList

phoneList 的字段类型是字符串,不是标准 JSON 数组。

返回示例:

{
  "phoneList": "[\"021-60000000\",\"13800000000\"]"
}

如需按数组使用,需要先判断字段非空,再进行一次 JSON 数组解析。

emailList

emailList 同样是字符串类型:

{
  "emailList": "[\"contact@example.com\",\"service@example.com\"]"
}

日期字段

日期字段来源于不同工商数据源,调用方应优先按照字符串处理,不要强制假设所有字段使用同一种日期格式。

createTimeupdateTime 通常使用:

yyyy-MM-dd HH:mm:ss

7. 成功响应示例

{
  "code": 0,
  "msg": "成功",
  "data": {
    "id": "6900585c7d4cea77dc507c4e",
    "companyName": "示例科技有限公司",
    "englishCompanyName": "Example Technology Co., Ltd.",
    "companyStatus": "存续",
    "establishDate": "2020-01-15 00:00:00",
    "legalName": "张三",
    "registerCapital": "1000万元人民币",
    "creditCode": "91310000XXXXXXXXXX",
    "address": "上海市示例区示例路100号",
    "phoneNumber": "021-60000000",
    "email": "contact@example.com",
    "bankName": null,
    "bankAccount": null,
    "operateScope": "技术服务、技术开发、技术咨询、技术交流。",
    "phoneList": "[\"021-60000000\",\"13800000000\"]",
    "isMicroEnt": "0",
    "staffNumRange": "100-499人",
    "industry": "软件和信息技术服务业",
    "socialStaffNum": "120",
    "tags": "存续;高新技术企业",
    "approvedTime": "2023-07-31 00:00:00",
    "regCapitalCurrency": "人民币",
    "actualCapitalCurrency": null,
    "companyOrgType": "有限责任公司",
    "emailList": "[\"contact@example.com\"]",
    "toTime": "2040-01-14 00:00:00",
    "regInstitute": "上海市市场监督管理局",
    "legalPersonId": null,
    "createTime": "2026-09-14 10:30:00",
    "updateTime": "2026-09-14 10:30:00",
    "thirdUpdate": "2026-09-13 18:20:00",
    "website": "https://www.example.com",
    "rating": "A"
  }
}

示例中的企业名称、统一社会信用代码、联系方式等均为演示数据。

8. 失败响应示例

8.1 公司名称为空

{
  "code": 400,
  "msg": "公司名不能为空",
  "data": null
}

8.2 鉴权失败

{
  "code": 413,
  "msg": "鉴权失败",
  "data": null
}

8.3 工商查询额度不足

{
  "code": 1102,
  "msg": "剩余条数不够",
  "data": null
}

8.4 服务异常

{
  "code": 500,
  "msg": "未知异常,请稍候再试",
  "data": null
}

9. 业务状态码

code 状态说明 处理建议
0 请求处理成功 成功
400 请求参数校验失败 检查 companyName
413 鉴权失败 检查鉴权 Header 和签名算法
1102 工商查询额度不足 增加查询额度
500 服务异常 联系客服

10. 调用注意事项

  1. 建议使用模糊搜索接口返回的完整企业名称进行详情查询。
  2. 不要随意删除企业名称中的行政区划、括号和组织形式。
  3. 所有企业详情字段都可能为空。
  4. phoneListemailList 当前是字符串,不是标准 JSON 数组。
  5. 请求参数名称必须使用 companyName
  6. 每次请求建议重新生成签名参数。
  7. appsecret 不得通过网络发送。
  8. 调用方应同时判断 HTTP 状态码和响应业务状态码。
  9. 即使 code = 0,也需要检查 data.companyName 是否存在。
  10. 每次成功调用会扣减 1 次工商查询额度。
  11. 重复调用同一个企业名称会被视为多次查询。
  12. 请求超时后不要无限自动重试,因为服务端可能已经完成查询和额度扣减。
  13. 调用方应设置合理的连接超时和读取超时时间。
  14. 不建议直接把工商数据中的联系电话或邮箱作为唯一可信联系方式,应根据调用方自身业务进行核验。