企业年报详情
根据企业名称、社会统一信用代码查询企业年报信息,返回年报详情,包括企业基本信息如企业名称、电话、地址、经营状态等;企业资产状况,对外投资信息,股东发起人出资信息,对外担保信息,股权变更信息,网站信息,社保信息等。
个人用户无法使用该接口,需完成企业认证
官网购买的套餐通过API调用时请使用“扣套餐次数”密钥进行调用
GEThttps://api.shuxuntech.com/v1/enterprise_report/query
¥0.16元 / 次
阶梯计价,用量越大单价越低
企业认证后额外赠送 666 次调用额度
01 — 接口说明
请求参数与返回结果
所有请求需在 header 中携带签名信息,body 参数按 x-www-form-urlencoded 提交
| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| appKey | head | string | 是 | 数勋分配appKey |
| timestamp | head | string | 是 | 当前时间的毫秒数 |
| sign | head | string | 是 | 签名,说明 |
| keyword | query | string | 是 | 企业名称或统一社会信用代码或注册号 |
签名算法说明
数勋分配的appKey、当前unix时间毫秒数timestamp、数勋分配的appSecret、 按顺序拼接sha256加密得到sign,查看如下示例
appKey = aaa;timestamp = 1682476904289;appSecret = bbb;sign = sha256(appKey+timestamp+appSecret)02 — 返回说明
返回结构与字段含义
顶层返回 code 与 msg,业务数据在 data 对象内,各字段含义见下方表格
返回字段描述
| 字段名 | 类型 | 描述 |
|---|---|---|
| code | string | 错误码 |
| msg | string | 错误描述 |
| isFee | int | 是否计费(1:计费,0:不计费) |
| seqNo | string | 调用流水号 |
| data | object | 返回数据 |
data对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| total | int | 总年报记录数 |
| items | array | 记录列表详情 |
items对象说明
| 字段名 | 类型 | 描述 |
|---|---|---|
| year | string | 报送年度 |
| hasDetailInfo | boolean | 是否有详细信息 |
| publishDate | string | 发布日期 |
| basicInfoData | object | 企业基本信息 |
| changeList | array | 修改记录 |
| investInfoList | array | 对外投资信息 |
| partnerList | array | 股东(发起人)及出资信息 |
| provideAssuranceList | array | 对外提供保证担保信息 |
| stockChangeList | array | 股权变更信息 |
| webSiteList | array | 网站或网店信息 |
| assetsData | object | 企业资产状况信息 |
| socialSecurity | array | 社保信息 |
provideAssuranceList对外提供保证担保信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| assuranceDurn | string | 保证的期间 |
| assuranceType | string | 保证的方式 |
| assuranceScope | string | 保证担保的范围 |
| creditor | string | 债权人 |
| debtor | string | 债务人 |
| creditorCategory | string | 主债权种类 |
| creditorAmount | string | 主债权数额 |
| fulfillObligation | string | 履行债务的期限 |
stockChangeList股权变更信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| after | string | 变更后股权比例 |
| changeDate | string | 股权变更日期 |
| name | string | 股东 |
| before | string | 变更前股权比例 |
socialSecurity社保信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| insuranceName | string | 保险种类、名称 |
| insuranceBase | string | 保险缴费基数 |
| insuranceRealCapital | string | 实际缴费金额 |
| insuranceArrearage | string | 累计欠缴金额 |
| insuranceAmount | string | 参保人数 |
webSiteList网站信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| type | string | 网站类型 |
| name | string | 名称 |
| webSite | string | 网址 |
basicInfoData企业基本信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| hasProvideAssurance | string | 是否有对外担保信息 |
| operationPlaces | string | 经营场所 |
| mainType | string | 主体类型 |
| regNo | string | 注册号 |
| companyName | string | 企业名称 |
| operatorName | string | 经营者姓名 |
| contactNo | string | 企业联系电话 |
| postCode | string | 邮政编码 |
| address | string | 企业通信地址 |
| emailAddress | string | 电子邮箱 |
| isStockRightTransfer | string | 有限责任公司本年度是否发生股东股权转让 |
| status | string | 企业经营状态 |
| hasWebSite | string | 是否有网站或网店 |
| hasNewStockOrByStock | string | 企业是否有投资信息或购买其他公司股权 |
| employeeCount | string | 从业人数 |
| belongTo | string | 隶属关系 |
| capitalAmount | string | 资金数额 |
| operationDuration | string | 经营期限 |
assetsData企业资产状况信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| totalProfit | string | 利润总额 |
| mainBusinessIncome | string | 主营业务收入 |
| netProfit | string | 净利润 |
| totalTaxAmount | string | 纳税总额 |
| totalLiabilities | string | 负债总额 |
| bankingCredit | string | 金融贷款 |
| governmentSubsidy | string | 获得政府扶持资金、补助 |
| totalAssets | string | 资产总额 |
| totalOwnersEquity | string | 所有者权益合计 |
| grossTradingIncome | string | 营业总收入 |
changeList修改记录
| 字段名 | 类型 | 描述 |
|---|---|---|
| changeName | string | 修改事项 |
| before | string | 变更前内容 |
| after | string | 变更后内容 |
| changeDate | string | 变更日期 |
investInfoList对外投资信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| name | string | 投资设立企业或购买股权企业名称 |
| regNo | string | 注册号 |
| creditCode | string | 信用代码 |
investInfoList对外投资信息
| 字段名 | 类型 | 描述 |
|---|---|---|
| name | string | 股东/发起人 |
| shouldCapi | string | 认缴出资额 |
| shouldDate | string | 认缴出资时间 |
| shouldType | string | 认缴出资方式 |
| realCapi | string | 实缴出资额 |
| realDate | string | 实缴出资时间 |
| realType | string | 实缴出资方式 |
code错误码说明
| code | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 参数错误 |
| 2 | 无记录 |
| 3 | 第三方服务异常 |
| 4 | 签名错误 |
| 5 | 余额不足 |
| 6 | 调用频率超限 |
| 7 | 账号停用 |
| 8 | 接口已停用 |
| 9 | 联系服务商开通接口权限 |
| 10 | ip不在白名单 |
| 11 | 系统异常 |
| 12 | 实名状态错误 |
| 99 | 其他异常,具体返回为准 |
返回示例
正确返回
{ "code": "0", "msg": "成功", "isFee": 1, "seqNo": "lu1nynin07jkahmwztnivuddiz1kfngh", "data": { "total": 11, "items": [ { "stockChangList": null, "investInfoList": [ { "regNo": "20312845", "creditCode": "", "name": "中国***(控股)有限公司" } ], "partnerList": [ { "shouldDate": "2023-12-31", "realType": "货币", "shouldType": "货币", "realCapi": "48578.914", "name": "香港中央结算有限公司", "shouldCapi": "48578.914", "realDate": "2023-12-31" } ], "year": "2023", "provideAssuranceList": [], "hasDetailInfo": true, "changeList": [], "publishDate": "2024-05-21", "assetsData": [ { "bankingCredit": null, "mainBusinessIncome": "企业选择不公示", "governmentSubsidy": null, "totalProfit": "企业选择不公示", "totalAssets": "企业选择不公示", "totalLiabilities": "企业选择不公示", "totalOwnersEquity": "企业选择不公示", "grossTradingIncome": "企业选择不公示", "totalTaxAmount": "企业选择不公示", "netProfit": "企业选择不公示" } ], "webSiteList": [ { "webSite": "http://www.***.cn/", "name": "中国***官网", "type": "网站" } ], "socialSecurity": [ { "insuranceAmount": "305人", "insuranceRealCapital": "企业选择不公示", "insuranceName": "城镇职工基本养老保险", "insuranceBase": "企业选择不公示", "insuranceArrearage": "企业选择不公示" } ], "basicInfoData": { "regNo": "100000000012314", "address": "深圳市福田区***路***号***金融中心47、48、109、110、111、112层", "hasProvideAssurance": "否", "operationDuration": null, "companyName": "中国***(集团)股份有限公司", "mainType": null, "operatorName": "", "employeeCount": "企业选择不公示", "hasWebSite": "是", "emailAddress": "IR@***.com.cn", "belongTo": "", "postCode": "518033", "hasNewStockOrByStock": "是", "isStockRightTransfer": "是", "capitalAmount": null, "contactNo": "4008***38", "status": "开业", "operationPlaces": "深圳市福田区***路***号***中心47、48、109、110、111、112层" } } ] }}错误返回
{ "code": "1", "msg": "参数不能为空", "isFee": 0, "seqNo": null, "data": null}03 — 代码示例
七种语言,复制即用
签名规则:sha256(appKey + timestamp + appSecret),下列示例已包含完整签名流程
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
/**
* 企业工商年报详情查询 - Java 示例代码
* 接口地址:https://api.shuxuntech.com/v1/enterprise_report/query
*
* 说明:本示例只使用 JDK 原生 API(java.net / java.security),不依赖任何第三方 jar 包,
* 也不需要本项目的工具类,复制到本地即可编译运行:
* javac EnterpriseReportQueryDemo.java
* java EnterpriseReportQueryDemo
*/
public class EnterpriseReportQueryDemo {
/** 数勋分配的 appKey,请替换为您自己的 appKey */
private static final String APP_KEY = "您的appKey";
/** 数勋分配的 appSecret,请替换为您自己的 appSecret */
private static final String APP_SECRET = "您的appSecret";
/** 接口地址 */
private static final String API_URL = "https://api.shuxuntech.com/v1/enterprise_report/query";
/** 企业名称或统一社会信用代码或注册号 */
private static final String KEYWORD = "";
public static void main(String[] args) throws Exception {
// 1、当前 unix 时间毫秒值,服务端要求与服务器时间相差不能超过 5 分钟
String timestamp = String.valueOf(System.currentTimeMillis());
// 2、签名:按顺序拼接 appKey + timestamp + appSecret 后做 sha256,得到小写十六进制字符串
String sign = sha256Hex(APP_KEY + timestamp + APP_SECRET);
// 3、业务参数,拼到 url 的 query 里
String query = "keyword=" + urlEncode(KEYWORD);
String url = API_URL + (query.isEmpty() ? "" : "?" + query);
// 4、发起 GET 请求,appKey、timestamp、sign 放在请求头
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("appKey", APP_KEY);
conn.setRequestProperty("timestamp", timestamp);
conn.setRequestProperty("sign", sign);
conn.setConnectTimeout(10000);
conn.setReadTimeout(20000);
int status = conn.getResponseCode();
// 5、读取返回内容:报错时读错误流,避免只拿到一个异常看不到原因
InputStream in = (status >= 200 && status < 300) ? conn.getInputStream() : conn.getErrorStream();
String result = readAll(in);
conn.disconnect();
System.out.println("HTTP状态码=" + status);
System.out.println("返回结果=" + result);
}
/**
* sha256 加密,返回小写十六进制字符串
* 服务端校验签名用的就是这个算法(小写十六进制)
*/
private static String sha256Hex(String content) throws Exception {
byte[] bytes = MessageDigest.getInstance("SHA-256").digest(content.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder(bytes.length * 2);
for (byte b : bytes) {
sb.append(Character.forDigit((b >> 4) & 0xF, 16));
sb.append(Character.forDigit(b & 0xF, 16));
}
return sb.toString();
}
/** url 编码,中文参数需要编码 */
private static String urlEncode(String value) throws Exception {
return URLEncoder.encode(value, "UTF-8");
}
/** 读取输入流内容 */
private static String readAll(InputStream in) throws Exception {
if (in == null) {
return "";
}
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
try {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} finally {
reader.close();
}
return sb.toString();
}
}04 — 在线调试
先调通,再决定
用你自己的数据发一次真实请求,表单字段随接口定义自动生成,返回结果附字段注释
请求参数
按接口定义自动生成
- keyword*企业名称或统一社会信用代码或注册号
appKey / timestamp / sign调用时自动按 sha256 生成,无需手填
appKey=未获取 · timestamp=实时生成 · sign=自动生成
这是真实调用,会消耗套餐次数或账户余额; 请勿用真实证件信息反复试调
返回结果
点击左侧「提交并调用接口」,参数会就地组装、按文档口径签名后直接请求接口, 返回的 JSON 显示在这里。
在线调试使用你自己的 appKey,按实际调用计费。
05 — 产品价格
阶梯计价,用多少买多少
单次价格随调用量阶梯下降,大档位单价最低
| 调用量 | 价格 | 单价 |
|---|---|---|
| 5 次 | ¥ 0 | ¥ 0 |
| 15 次 | ¥ 5 | ¥ 0.333333 |
| 500 次 | ¥ 120 | ¥ 0.24 |
| 1,000 次 | ¥ 220 | ¥ 0.22 |
| 5,000 次 | ¥ 1,000 | ¥ 0.2 |
| 10,000 次 | ¥ 1,900 | ¥ 0.19 |
| 30,000 次 | ¥ 5,500 | ¥ 0.183333 |
| 50,000 次 | ¥ 8,000 | ¥ 0.16 |