背景与问题
2026 年 5 月 13 日,中国互联网金融协会披露,全市场应收账款电子凭证开立余额 2.75 万亿元,融资余额 2.08 万亿元,而登记在册的 237 家供应链信息服务机构中已有 24 家退出该业务(15 家存量清零)。
对银行而言,这组数字意味着展业逻辑变了。过去主流的确权模式下,银行盯的是核心企业那张信用;现在银发〔2025〕77 号文鼓励"脱核模式",即给没有强核心背书的中小供应商直接做信用贷,银行要自己评估底层企业的成色。平台成批退场,等于过去依赖的确权通道在收缩,银行必须把"核心企业会不会赖、交易真不真、供应商扛不扛得住"这三件事,归集为一组可结构化调用的数据字段。
本文给出一套基于企查查开放平台(openapi.qcc.com)的落地方案,先讲政策对银行动作的要求,再给出接口选型表,最后用 Python 把"尽调三件事"封装成可运行的查询函数,并附真实返回示例。
1. 政策对银行动作的要求
| 时间 | 文件/动作 | 银行对应动作 |
|---|---|---|
| 2025-06-01 施行 | 国务院令 802 号《保障中小企业款项支付条例》 | 第九条 60 日付款成法定义务;第十六条 确权 30 日内须确认;第十八条 大企业逾期欠款信息纳入年报公示,银行多了一个公开数据源 |
| 2025-06-15 施行 | 银发〔2025〕77 号(六部门) | 对核心企业建全口径债务监测、防多头授信(合规义务);鼓励脱核模式、信用贷、订单/存货/仓单质押 |
| 2026-01-19 起 | 再贴现利率降至 1.5% | 供应链票据贴现成本下行 |
| 2026-05-19 | 金融监管总局取消普惠小微增速硬指标 | 从冲量转向看资产质量 |
| 2026-07-07 | 票交所供应链票据平台扩至 57 家 | 票据基础设施更厚 |
核心信号是"一收一放",收的是核心企业信用无限扩张,放的是不依赖核心企业确权的融资路径。银行要从"盯大买家盖章"转向"持续盯核心企业负债 + 核到中小供应商的交易背景与产业位置"。
2. 接口选型,八组 API 覆盖尽调全链条
| ApiCode | 接口 | 接口路径 | 银行用途 | 关键返回字段 | 计费 |
|---|---|---|---|---|---|
| 736 | 企业风险扫描 | /ECIInfoOverview/GetInfo | 核心企业风险体检 | ShiXinItems、ZhiXingItems、Pledge、Exceptions、Penalty、CompanyTaxCreditItems | 见平台 |
| 735 | 企业工商详情 | /ECIInfoVerify/GetInfo | 供应商 KYC | CreditCode、Status、RegistCapi、RecCap、Partners.StockPercent、InsuredCount、ChangeRecords、Industry | 2.00 元/次 |
| 1116 | 企查分 | 以平台调试台为准 | 综合信用评分(满分 2000) | Score、Level、Background、Management、BusinessStatus、QualificationEvaluation、HistoryCompliance | 面议 |
| 740 | 失信核查 | 以平台调试台为准 | 单点失信确认 | Liandate、Anno、Executegov、Executestatus、ActionRemark、Amount | 0.30 元/次 |
| 962 | 企业图谱 | /CompanyGraphCheck/GetInfo | 关联关系与供应链位置 | RelateList(14 类节点)、Percent | 面议 |
| 643 | 实际控制人 | /ActualControl/SuspectedActualControl | 穿透防逃废债 | ControllerData、PercentTotal、PathCount、Paths、JudgeReason | 面议 |
| 724 | 供应商查询 | 以平台调试台为准 | 交易真实性(上游) | DistributorList,PurchaseAmount、PurchasePercent、Relationship、Source | 面议 |
| 723 | 客户查询 | 以平台调试台为准 | 交易真实性(下游) | ClientList,SalesAmount、SalesPercent、Relationship、Source | 面议 |
注,1116、740、724、723 四个接口的"接口地址"未在公开文档页列出,登录 openapi.qcc.com 对应接口页点击"调试 API"即可复制实际路径,填入下方
API_PATHS即可。
3. 认证与调用封装
企查查开放平台统一用Token + Timespan请求头鉴权,Token = Md5(key + Timespan + SecretKey)的 32 位大写字符串,Timespan为秒级 Unix 时间戳,key走 Query 参数。
# qcc_client.py# 依赖,pip install requestsimporthashlibimporttimeimportrequests APP_KEY="YOUR_APP_KEY"# 开放平台账号安全页查询SECRET_KEY="YOUR_SECRET_KEY"# 开放平台账号安全页查询BASE="https://api.qichacha.com"# 已确认路径的接口直接填;未确认的从平台调试台复制后补到此处API_PATHS={736:"/ECIInfoOverview/GetInfo",735:"/ECIInfoVerify/GetInfo",962:"/CompanyGraphCheck/GetInfo",643:"/ActualControl/SuspectedActualControl",# 1116 企查分 / 740 失信核查 / 724 供应商查询 / 723 客户查询# 路径以 openapi.qcc.com 调试台返回为准,示例如下取消注释并替换,# 1116: "/CreditScore/GetInfo",# 740: "/DishonestCheck/GetInfo",# 724: "/Supplier/GetInfo",# 723: "/Customer/GetInfo",}def_headers()->dict:timespan=str(int(time.time()))raw=f"{APP_KEY}{timespan}{SECRET_KEY}"token=hashlib.md5(raw.encode("utf-8")).hexdigest().upper()return{"Token":token,"Timespan":timespan}defqcc_get(api_code:int,search_key:str,**extra)->dict:"""调用企查查开放平台接口,返回解析后的 JSON。"""path=API_PATHS[api_code]params={"key":APP_KEY,"searchKey":search_key,**extra}resp=requests.get(BASE+path,params=params,headers=_headers(),timeout=10)resp.raise_for_status()returnresp.json()if__name__=="__main__":demo=qcc_get(735,"小米科技有限责任公司")print(demo.get("Status"),demo.get("Message"))4. 尽调三件事的代码实现
4.1 核心企业会不会赖,风险扫描 + 失信核查 + 企查分
defassess_core_enterprise(name:str)->dict:"""核心企业风险体检,风险扫描 736 + 企查分 1116 + 失信核查 740。"""# 1) 风险扫描,一次返回工商照面 + 全量风险risk=qcc_get(736,name).get("Result",{})# 2) 企查分,五维分数直接做外部特征变量score=qcc_get(1116,name).get("Result",{}).get("Data",{})# 3) 失信核查,按页拉全,重点看履行情况dishonest=qcc_get(740,name,pageSize=20).get("Result",{}).get("Data",[])# 冻结/被执行资产占比,股权出质数额 + 被执行标的总额 ÷ 注册资本# 子字段英文名以接口文档 Return 为准,此处用占位名示意结构reg_capi=float(risk.get("RegistCapi")or0)pledge_sum=sum(float(p.get("PledgeAmount",0))forpinrisk.get("Pledge",[]))zx_sum=sum(float(z.get("ExecMoney",0))forzinrisk.get("ZhiXingItems",[]))frozen_ratio=(pledge_sum+zx_sum)/reg_capiifreg_capielsefloat("inf")return{"frozen_asset_ratio":round(frozen_ratio,3),"shixin_count":len(risk.get("ShiXinItems",[])),"zhixing_count":len(risk.get("ZhiXingItems",[])),"tax_credit_level":[t.get("Level")fortinrisk.get("CompanyTaxCreditItems",[])],"qcc_score":score.get("Score"),"qcc_level":score.get("Level"),"dishonest_unfulfilled":[dfordindishonestif"未履行"in(d.get("Executestatus")or"")],}要点,股权出质数额与被执行标的总额之和,与注册资本的比值,比"有没有上失信名单"更早暴露资金链问题;企查分里某维度(如履约历史)从 80 掉到 40,比总分波动更该追。
4.2 供应商扛不扛得住、交易真不真,工商详情 + 图谱 + 上下游
defassess_supplier(name:str)->dict:"""供应商 KYC + 交易真实性,工商详情 735 + 企业图谱 962 + 供应商/客户查询 724/723。"""info=qcc_get(735,name).get("Result",{})# 空壳信号,注册资本大但参保人数极小reg_capi=float(info.get("RegistCapi")or0)insured=int(info.get("InsuredCount")or0)shell_flag=reg_capi>1e8andinsured<10# 图谱,画出在供应链里的位置,及实际控制人/控股企业(判断是否抽利润到体外)graph=qcc_get(962,name).get("Result",{})nodes={n["NodeName"]:n.get("NodeDataList",[])forningraph.get("RelateList",[])}# 上游,对某核心企业的采购占比,超 50% 即单一买家高度依赖top_suppliers=sorted(qcc_get(724,name).get("Result",{}).get("DistributorList",[]),key=lambdad:float(d.get("PurchasePercent")or0),reverse=True,)[:5]# 下游,销售占比,判断是否有关联方体内循环top_clients=sorted(qcc_get(723,name).get("Result",{}).get("ClientList",[]),key=lambdad:float(d.get("SalesPercent")or0),reverse=True,)[:5]return{"status":info.get("Status"),"industry_small":info.get("Industry",{}).get("SmallCategory"),"insured_count":insured,"rec_cap":info.get("RecCap"),"shell_flag":shell_flag,"change_count":len(info.get("ChangeRecords",[])),"related_persons":nodes.get("实际控制人"),"top_suppliers":[(s["Name"],s["PurchasePercent"],s.get("Relationship"))forsintop_suppliers],"top_clients":[(c["Name"],c["SalesPercent"],c.get("Relationship"))forcintop_clients],}要点,Industry小类代码可对接银行内部行业授信策略;PurchasePercent超过 50% 的供应商,脱核授信必须压额度;Relationship显示"关联方"说明可能是体内循环,确权水分大。
4.3 银行打分卡映射,企查分维度对照工商硬指标
defscore_to_internal(score_data:dict)->dict:"""企查分五维直接映射银行内部打分卡。"""d=score_data.get("Data",{})dims={"企业背景":d.get("Background",{}).get("Score"),# 对应成立年限、股东实力"管理水平":d.get("Management",{}).get("Score"),# 对应诉讼、处罚、经营异常"经营状况":d.get("BusinessStatus",{}).get("Score"),# 对应纳税、招投标、财务"资质评价":d.get("QualificationEvaluation",{}).get("Score"),# 对应资质、荣誉"履约历史":d.get("HistoryCompliance",{}).get("Score"),# 对应历史违约}# Level 与内部评级映射,如 L-12 准入,L-6 以下进预警名单return{"dims":dims,"level":d.get("Level"),"total":d.get("Score")}Level字段可直接和银行内部评级做映射,把"放款前一次性查询"变成"可持续的评分监控"。
5. 预期返回示例(来自官方文档)
企查分 1116 真实返回,
{"Status":"200","Message":"【有效请求】查询成功","OrderNumber":"CREDITSCORE2024022015585470445463","Result":{"VerifyResult":1,"Data":{"Score":"1107","Level":"L-12","LevelDesc":"L-12 信用表现卓越,当前处于良性循环状态,违约风险很低","Background":{"Score":"88","Summary":"进入市场时期早、业务受政策支持、股东实力雄厚且股权结构较稳定的企业,往往信用评估结果较好。"},"Management":{"Score":"76","Summary":"合规经营、较少涉及诉讼、处罚、经营异常等负面事件且投融资规模合理的企业,往往信用评估结果较好。"},"BusinessStatus":{"Score":"96","Summary":"纳税、招投标、财务、科技创新等维度的表现能够反映企业的稳健运营能力和持续发展潜力,对信用评估有积极影响。"},"QualificationEvaluation":{"Score":"75","Summary":"监管评价、资质认证、荣誉称号等因素能够彰显企业的行业地位和声誉,对信用评估有积极影响。"},"HistoryCompliance":{"Score":"80","Summary":"不同场景的履约记录能够体现企业的履约意愿,对信用评估有积极影响。"}}}}客户查询 723 真实返回(节选),
{"OrderNumber":"CUSTOMER2019103015270721852048","Paging":{"PageSize":2,"PageIndex":1,"TotalRecords":9},"Result":{"YearList":["2018","2017","2016","2015","2014"],"ClientList":[{"Year":"2018","KeyNo":"c4xxxxxxxxxxe5b7b","Name":"xxxxxxxxxxx有限公司","ImageUrl":"https://qccdata.qichacha.com/AutoImage/xxx.jpg","SalesAmount":"125.47","SalesPercent":"48.51","Relationship":"","Source":"年报"}]},"Status":"200","Message":"查询成功"}6. 落地形态,贷前、贷中、贷后
八组 API 按"尽调三件事"归并,再落到三个展业阶段,
三级预警可直接用返回字段实现,红色盯失信被执行、重大诉讼立案、工商吊销注销;黄色盯核心高管离职、异地新设子公司、股权结构异常变更;绿色提醒新融资、中标重大项目、获评国家荣誉。银行可接这套预警做贷后定时轮询,不必靠人工每月翻一遍。
# 贷后轮询示例(伪代码,接定时任务)defpost_loan_watch(names:list[str]):fornameinnames:r=assess_core_enterprise(name)ifr["frozen_asset_ratio"]>0.3orr["shixin_count"]>0:alert(f"红色预警:{name}资产冻结占比{r['frozen_asset_ratio']}")脱核模式下,银行供应链金融的风险不在放款动作,在放款前与放款后的两个问号,核心企业赖不赖、交易真不真、供应商扛不扛。本文罗列的八组 API把这三件事从"靠关系打听"变成"结构化字段调用",覆盖 KYC、风险扫描、评分到图谱穿透的全链条。77 号文要求的"核心企业全口径债务监测",用"企查分 + 风险扫描 + 三级预警"的组合即可实现持续监控,而不是放款前查一次就结束。
提示,接口路径、字段名、计费以企查查开放平台官网现行文档为准;本文 1116/740/724/723 路径未公开列出,已在代码中标注"以平台调试台为准"。