营业执照识别 API 最小可运行示例:从请求到解析返回字段
适用场景与接口能力边界
在企业资质核验、合规审查、供应商管理、电商入驻审核等场景中,经常需要从营业执照图片中自动化提取关键字段。本文介绍的营业执照识别 API 支持将 JPG/PNG 图片(URL 或 base64 编码)上传后,返回统一社会信用代码、公司名称、法定代表人、准备资本、经营范围等 12 个字段。接口单次请求仅处理一张图片,文件大小上限为 10 MB,图片建议清晰完整无遮挡,以保证识别精度。
能力边界:
- 支持图片传入方式:URL 或 base64(base64 字符串最大 10 MB)
- 输出字段:共 12 个,详见下文返回值解读
- QPS:2 次/秒,超过后会返回限流错误
- 延迟:通常 1~3 秒(视图片大小和网络而定)
鉴权与请求头
调用前需准备 API Key。在请求时通过 HTTP 头Authorization传递,格式为Bearer <你的 API Key>。同时必须设置Content-Type为application/json。
Authorization: Bearer sk-xxxxxxxxxxxxxxxx Content-Type: application/json请求参数详解
请求体是单个 JSON 对象,包含两个必填字段:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
input_type | string | 是 | 图片传入方式,固定值"url"或"base64" |
input_data | string | 是 | 图片 URL 或 base64 编码字符串(去掉 data:image/...;base64, 前缀) |
示例:使用 URL 传入
{ "input_type": "url", "input_data": "https://example.com/business-license.jpg" }示例:使用 base64 传入
{ "input_type": "base64", "input_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD..." }base64 编码需去掉前缀
data:image/jpeg;base64,或data:image/png;base64,,仅保留纯 base64 字符串。
最小可运行示例(curl)
以下命令是完整的可复制请求(需替换$API_KEY与图片 URL):
curl -sS \ -X POST \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input_type": "url", "input_data": "https://img.example.com/license.jpg" }' \ "https://v1.apizero.cn/api/business-license"将$API_KEY替换为真实的 API Key,input_data替换为可访问的图片 URL 即可。如果希望更安全地传递环境变量,也可以使用-H "X-API-Key: $API_KEY"(具体鉴权方式以文档为准,本例使用 Authorization Bearer 方式)。
Python 请求示例(requests 库)
import requests import json url = "https://v1.apizero.cn/api/business-license" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } payload = { "input_type": "url", "input_data": "https://img.example.com/license.jpg" } response = requests.post(url, headers=headers, json=payload) print(response.json())返回结果解读
成功时 HTTP 状态码为 200,响应体 JSON 如下:
{ "code": 0, "msg": "成功", "request_id": "req_abc123", "data": { "unified_social_credit_code": "91310000XXXXXXXXXX", "company_name": "某某科技有限公司", "legal_representative": "张三", "registered_capital": "100万人民币", "established_date": "2015-06-01", "business_scope": "软件开发;信息技术咨询服务", "company_type": "有限责任公司(自然人独资)", "domicile": "上海市浦东新区某某路123号", "certificate_type": "营业执照", "establishment_period": "2015-06-01至无固定期限", "approval_date": "2025-01-10", "website": "http://www.gsxt.gov.cn" } }各字段含义:
| 字段 | 示例值 | 说明 |
|---|---|---|
unified_social_credit_code | 91310000XXXXXXXXXX | 统一社会信用代码(18 位) |
company_name | 某某科技有限公司 | 企业全称 |
legal_representative | 张三 | 法定代表人姓名 |
registered_capital | 100万人民币 | 准备资本及币种 |
established_date | 2015-06-01 | 成立日期(格式 yyyy-MM-dd) |
business_scope | 软件开发;信息技术咨询服务 | 经营范围(分号分隔) |
company_type | 有限责任公司(自然人独资) | 企业类型 |
domicile | 上海市浦东新区某某路123号 | 住所/准备地址 |
certificate_type | 营业执照 | 证件类型(固定值) |
establishment_period | 2015-06-01至无固定期限 | 营业期限 |
approval_date | 2025-01-10 | 最近核准日期(可能为空) |
website | http://www.gsxt.gov.cn | 企业信用信息公示系统链接(可选) |
注意:
request_id是本次请求的唯一标识符,可配合日志排查问题。code为 0 表示成功,非 0 值见下文错误处理。
常见错误码与排查要点
| 错误现象 | 可能原因 | 处理方式 |
|---|---|---|
HTTP 401 返回{"code":401,"msg":"无效的 API Key"} | API Key 未传或错误 | 检查Authorization头格式及 Key 有效性 |
| HTTP 403 | 请求被拒绝,可能是 IP 白名单限制 | 确认请求源 IP 已加入白名单(以文档为准) |
HTTP 400 返回{"code":400,"msg":"参数错误"} | input_type不是 url/base64,或input_data为空 | 校验请求体 JSON 格式及字段值 |
| HTTP 413 或返回图片过大 | 图片超过 10 MB | 压缩图片或使用 URL 方式代替 base64(base64 编码后体积增大约 37%) |
返回code: 1001等业务错误码(具体参见文档) | 图片模糊、文字遮挡、非营业执照等 | 更换清晰图片,保持图像中无反光、倾斜 |
当code不为 0 时,msg会给出简要描述。建议读取request_id后联系技术支持时引用。
工程化注意事项
图片质量:营业执照应占图片主体,四角完整,文字清晰。建议分辨率不低于 1024×768。格式优先使用 JPG(平衡质量和文件大小)。
base64 转换时机:如果 base64 图片来自前端上传,后端接收后直接传给 API,注意去掉 data URL 前缀(
data:image/jpeg;base64,),否则 API 解析会失败。限流处理:QPS 上限为 2,建议在代码中加入退避重试机制(如指数退避)。对于批量场景(如一次审核 100 张),可以控制并发数≤2,或使用队列逐步消费。
字段校验:返回的字段由 OCR 识别得到,可能因图片质量问题导致个别字段为空或格式不标准。业务逻辑中应做空值判断,不要假设所有字段都存在。例如
approval_date可能为空。数据安全:营业执照图片涉及企业隐私,传输建议使用 HTTPS,base64 编码不应写入日志。API Key 应存储在环境变量或密钥管理服务中,避免硬编码。
缓存策略:如果同一张图片需要多次识别(例如前后两次查询),可对图片的哈希值进行缓存,减少重复请求。注意图片内容更新时应清除缓存。
参考文档
- 营业执照识别 API 文档
- 原始文档(raw markdown)
文档中包含完整的错误码列表、更多语言 SDK 示例及更新说明。
