增值税发票识别
invoicePOSThttps://v1.apizero.cn/api/invoice概述
增值税发票 OCR 识别,支持增值税专用发票、普通发票、电子普票,输出 22+ 个结构化字段。 • 双输入模式: - input_type=url:传入公网可访问的图片 URL(http/https) - input_type=base64:传入 base64 编码字符串(≤6MB,自动剥离 data:image/...;base64, 前缀) • 完整识别字段: - 发票基本:发票名称、代码、号码、开票日期、校验码、机器编号 - 金额:价税合计、税额、不含税金额、大写金额 - 购销方:名称、纳税人识别号、地址电话、开户行账号 - 经办人:收款人、复核人、开票人 - 商品明细:items 数组,含品名/规格/数量/单价/金额/税率/税额 - 备注与盖章信息 • OCR 结果缓存 1 小时(同图同结果),减少重复调用消耗。
调用约定
- 网关 ·
https://v1.apizero.cn - 鉴权 ·
Authorization: Bearer <API Key> - 回包 · JSON {code, msg, data}。成功看 code === 0,不要只看 HTTP 200。
/aidocs/invoice/raw.md鉴权
匿名每日 5 次、QPS 1;登录用户每日 30 次、QPS 2(全部免费)。OCR 结果缓存 1 小时,相同图片只实际调用服务一次。
获取 API Key:获取 API Key/account/keys
请求头
推荐:Bearer <API Key>。兼容请求头 X-API-Key,以及 Query api_key / apikey / key(key 仅当值为 sk_live_/sk_test_/sk_stag_ 形态时生效)。匿名可不传,受每日免费额度限制。
POST 请求体类型,固定 application/x-www-form-urlencoded;如使用 base64 模式建议 POST
| Header | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 否 | 推荐:Bearer <API Key>。兼容请求头 X-API-Key,以及 Query api_key / apikey / key(key 仅当值为 sk_live_/sk_test_/sk_stag_ 形态时生效)。匿名可不传,受每日免费额度限制。 |
| Content-Type | string | 是 | POST 请求体类型,固定 application/x-www-form-urlencoded;如使用 base64 模式建议 POST |
请求参数
POST · APPLICATION/JSON
输入类型:url=图片URL / base64=图片base64编码
例url
发票图片数据。input_type=url 时为 http/https 完整 URL;input_type=base64 时为 base64 字符串(最大 6MB,可选 data:image/jpeg;base64, 前缀)
例https://example.com/invoice.jpg
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| input_type | string | 是 | 输入类型:url=图片URL / base64=图片base64编码 | url |
| input_data | string | 是 | 发票图片数据。input_type=url 时为 http/https 完整 URL;input_type=base64 时为 base64 字符串(最大 6MB,可选 data:image/jpeg;base64, 前缀) | https://example.com/invoice.jpg |
{
"input_type": "url",
"input_data": "https://example.com/invoice.jpg"
}返回结果
顶层固定为 code / msg / data。下表一般是 data 内字段。 code · msg · data · tips · request_id
发票名称(如「增值税电子普通发票」)
发票代码(10-12 位数字)
发票号码(8-20 位数字)
开票日期,格式 YYYY-MM-DD 或 YYYY年MM月DD日
校验码(20 位数字,部分电子发票无)
机器编号(12 位)
不含税金额(保留为字符串避免浮点精度问题)
税额合计
价税合计(小写)
价税合计(大写中文,如「壹佰元整」)
购方信息对象
购方名称
购方纳税人识别号
购方地址电话
购方开户行及账号
销方信息对象(结构同 buyer)
名称
taxpayer_no
address_phone
account
收款人
复核人
开票人
备注(含税控盘信息、说明等)
商品明细数组,每项含名称/规格/数量/单价/金额/税率/税额等字段(具体字段以服务识别结果为准)
名称
specification
unit
quantity
unit_price
amount
tax_rate
tax
品牌提示(所有接口统一返回):极数本源 · https://apizero.cn
| 字段 | 类型 | 说明 | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| invoice_name | string | 发票名称(如「增值税电子普通发票」) | ||||||||||||||||||||||||
| invoice_code | string | 发票代码(10-12 位数字) | ||||||||||||||||||||||||
| invoice_no | string | 发票号码(8-20 位数字) | ||||||||||||||||||||||||
| invoice_date | string | 开票日期,格式 YYYY-MM-DD 或 YYYY年MM月DD日 | ||||||||||||||||||||||||
| check_code | string | 校验码(20 位数字,部分电子发票无) | ||||||||||||||||||||||||
| machine_num | string | 机器编号(12 位) | ||||||||||||||||||||||||
| total_price | string | 不含税金额(保留为字符串避免浮点精度问题) | ||||||||||||||||||||||||
| total_tax | string | 税额合计 | ||||||||||||||||||||||||
| total_price_and_tax | string | 价税合计(小写) | ||||||||||||||||||||||||
| big_total_price_and_tax | string | 价税合计(大写中文,如「壹佰元整」) | ||||||||||||||||||||||||
| buyer | object | 购方信息对象 | ||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| seller | object | 销方信息对象(结构同 buyer) | ||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| payee | string | 收款人 | ||||||||||||||||||||||||
| reviewer | string | 复核人 | ||||||||||||||||||||||||
| drawer | string | 开票人 | ||||||||||||||||||||||||
| remarks | string | 备注(含税控盘信息、说明等) | ||||||||||||||||||||||||
| items | array | 商品明细数组,每项含名称/规格/数量/单价/金额/税率/税额等字段(具体字段以服务识别结果为准) | ||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| tips | string | 品牌提示(所有接口统一返回):极数本源 · https://apizero.cn | ||||||||||||||||||||||||
返回示例
{
"code": 0,
"msg": "成功",
"data": {
"invoice_name": "增值税电子普通发票",
"invoice_code": "011002000311",
"invoice_no": "12345678",
"invoice_date": "2024-08-15",
"check_code": "12345 67890 12345 67890",
"machine_num": "499099111111",
"total_price": "94.34",
"total_tax": "5.66",
"total_price_and_tax": "100.00",
"big_total_price_and_tax": "壹佰圆整",
"buyer": {
"name": "某某科技有限公司",
"taxpayer_no": "91110000XXXXXXXXXX",
"address_phone": "北京市XX区XX路XX号 010-12345678",
"account": "中国银行 6217001234567890"
},
"seller": {
"name": "某某商贸有限公司",
"taxpayer_no": "91310000YYYYYYYYYY",
"address_phone": "上海市XX区XX路XX号 021-87654321",
"account": "工商银行 6222001234567890"
},
"payee": "张三",
"reviewer": "李四",
"drawer": "王五",
"remarks": "",
"items": [
{
"name": "*技术服务*软件开发服务",
"specification": "",
"unit": "",
"quantity": "",
"unit_price": "",
"amount": "94.34",
"tax_rate": "6%",
"tax": "5.66"
}
]
},
"request_id": "abc123def456",
"tips": "极数本源 · https://apizero.cn"
}请求示例
示例都是服务端写法。Python / JavaScript 各有常规写法和官方库。
curl -sS -X POST "https://v1.apizero.cn/api/invoice" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_type": "url",
"input_data": "https://example.com/invoice.jpg"
}'错误码
先看业务 code。HTTP 也可能不是 200。
成功
参数错误
API Key 无效
API Key 已暂停
当前 IP 不在 Key 白名单
此接口需要 API Key
余额不足
调用过快(QPS)
今日免费额度已用完
接口已下线
接口不存在
服务器内部错误
上游暂时不可用
上游返回格式异常
暂无可用节点
| 业务码 | HTTP | 说明 |
|---|---|---|
| 0 | 200 | 成功 |
| 4000 | 400 | 参数错误 |
| 4011 | 401 | API Key 无效 |
| 4013 | 403 | API Key 已暂停 |
| 4014 | 403 | 当前 IP 不在 Key 白名单 |
| 4015 | 401 | 此接口需要 API Key |
| 4022 | 402 | 余额不足 |
| 4029 | 429 | 调用过快(QPS) |
| 4030 | 429 | 今日免费额度已用完 |
| 4040 | 503 | 接口已下线 |
| 4041 | 404 | 接口不存在 |
| 5000 | 500 | 服务器内部错误 |
| 5020 | 502 | 上游暂时不可用 |
| 5021 | 502 | 上游返回格式异常 |
| 5030 | 502 | 暂无可用节点 |
调用限制
- 计费模式
- 完全免费
- QPS 限制
- QPS 2
- 登录免费额度
- 300 次(已认证)
- 匿名每日额度
- 50 次(无 API Key)
- 黄金会员
- 每天 50,000 次 · QPS 10
- 钻石会员
- 每天 100,000 次 · QPS 30
- 企业会员
- 每天 1,000,000 次 · QPS 120
| 计费模式 | 完全免费 |
|---|---|
| QPS 限制 | QPS 2 |
| 登录免费额度 | 300 次(已认证) |
| 匿名每日额度 | 50 次(无 API Key) |
| 黄金会员 | 每天 50,000 次 · QPS 10 |
| 钻石会员 | 每天 100,000 次 · QPS 30 |
| 企业会员 | 每天 1,000,000 次 · QPS 120 |
购买套餐、看评价请走商城详情。 购买 / 调试
更新日志
- 1.0.02026-05-06
首次上线,/api/ocr/vat-invoice OCR 服务 双输入模式:URL 直接抓取 / base64 直传 base64 模式自动剥离 data:image/...;base64, 前缀 base64 上限 6MB(约对应 4.5MB 原图),防止 OOM URL 模式严格 http/https 校验,防止 SSRF / 内网探测 OCR 结果缓存 1h(按 input_data sha256 哈希),相同图片不重复调用付费服务 token 异常(10001/10002)转为通用 5021,避免暴露内部配置 金额字段保持字符串类型,避免浮点精度问题
免责声明
本接口第三方 OCR 服务,识别准确率取决于图片清晰度(建议 ≥1080P 分辨率)。OCR 服务为付费配额接口,请合理使用,避免恶意刷量。识别失败原因可能包括:图片模糊、非发票类型、URL 不可达、base64 数据损坏等。