增值税发票识别 intsig API
POST
http[s]: //webapi.xfyun.cn/v1/service/v1/ocr/invoice接口说明
增值税发票识别,通过OCR(光学字符识别 Optical Character Recognition)技术,对增值税发票(中文简体)图像切边、压缩、增强、校正,将发票上的文字信息识别并导出。使用扫描仪或手机拍摄,即可批量快速扫描发票,节省大量人工录入时间。
该能力是通过HTTP API的方式给开发者提供一个通用的接口,适用于一次性交互数据传输的AI服务场景,块式传输。相较于SDK,API具有轻量、跨语言的特点,不过请注意该接口使用的HTTP API协议不支持跨域。
#接口Demo
示例demo请点击 这里 下载。
目前仅提供部分开发语言的demo,其他语言请参照下方接口文档进行开发。
也欢迎热心的开发者到 讯飞开放平台社区 分享你们的demo。
#接口要求
集成增值税发票识别API时,需按照以下要求。
内容 | 说明 |
---|---|
请求协议 | http[s] (为提高安全性,强烈推荐https) |
请求地址 | http[s]: //webapi.xfyun.cn/v1/service/v1/ocr/invoice 注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用 |
请求方式 | POST |
接口鉴权 | 签名机制,见授权认证 |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向讯飞云服务发起HTTP请求的均可 |
图片格式 | jpg/png/bmp |
图片属性 | 建议最短边至少15px,最长边最大4096px |
图片大小 | 图像数据按要求编码后(base64编码后进行urlencode)大小不超过4M |
#接口调用流程
注: 若需配置IP白名单,请前往控制台。IP白名单规则请参照 IP白名单。
- 通过接口密钥基于MD5计算签名,将签名以及其他参数放在Http Request Header中,详见下方 请求头 。
- 将图片数据放在Http Request Body中,以POST表单的形式提交,详见下方 请求体 。
- 向服务器端发送Http请求后,接收服务器端的返回结果,返回结果详见各接口的详细说明。
接口地址示例:
POST http[s]://webapi.xfyun.cn/v1/service/v1/ocr/invoice
#白名单
在调用该业务接口时
- 若关闭IP白名单,接口认为IP不限,不会校验IP。
- 若打开IP白名单,则服务端会检查调用方IP是否在讯飞开放平台配置的IP白名单中,对于没有配置到白名单中的IP发来的请求,服务端会拒绝服务。
IP白名单规则
- IP白名单,在 控制台-我的应用-相应服务的应用管理卡片上 编辑,保存后五分钟左右生效;
- 不同Appid的不同服务都需要分别设置IP白名单;
- IP白名单需设置为外网IP,请勿设置局域网IP;
- 如果服务器返回结果如下所示(illegal client_ip),则表示由于未配置IP白名单或配置有误,服务端拒绝服务。
{
"code":"10105",
"desc":"illegal access|illegal client_ip",
"data":"",
"sid":"xxxxxx"
}
#接口请求参数
#请求头
在 Http Request Header 中配置以下参数。
#授权认证
以下参数用于授权认证:
参数 | 格式 | 说明 | 必须 |
---|---|---|---|
X-Appid | string | 讯飞开放平台注册申请应用的应用ID(appid) | 是 |
X-CurTime | string | 当前UTC时间戳 从1970年1月1日0点0 分0 秒开始到现在的秒数 | 是 |
X-Param | string | 相关参数JSON串经Base64编码后的字符串,详见业务参数 | 是 |
X-CheckSum | string | 令牌,计算方法:MD5(APIKey + X-CurTime + X-Param),三个值拼接的字符串,进行MD5哈希计算(32位小写) | 是 |
注:
- APIKey:接口密钥,在讯飞开放平台控制台添加相应服务后即可获取,调用方注意保管,如泄露,可到控制台提交工单联系技术人员重置;
- X-CheckSum 有效期:出于安全性考虑,每个 X-CheckSum 的有效期为 5 分钟(用 X-CurTime 计算),同时 X-CurTime 要与标准时间同步,否则时间相差太大,服务端会直接认为 X-CurTime 无效;
- BASE64 编码采用 MIME 格式,字符包括大小写字母各26个,加上10个数字,和加号 + ,斜杠 / ,一共64个字符。
X-CheckSum生成示例:
String APIKey="abcd1234";
String X-CurTime="1502607694";
String X-Param="eyAiYXVmIjogImF1ZGlvL0wxNjtyYXR...";
String X-CheckSum=MD5(apiKey + X-CurTime + X-Param);
#业务参数
X-Param 为各配置参数组成的 JSON 串经 BASE64 编码之后的字符串,原始 JSON 串各字段说明如下:
参数 | 类型 | 必填 | 说明 | 示例 |
---|---|---|---|---|
engine_type | string | 是 | 识别类型 | invoice |
X-Param生成示例:
原始JSON串:
{
"engine_type":"invoice"
}
BASE64编码(即X-Param):
ewoJICAgICJsYW5ndWFnZSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJfQ==
#请求体
以POST表单的形式提交以下参数:
参数 | 类型 | 必须 | 说明 | 示例 |
---|---|---|---|---|
image | string | 是 | 图像数据 base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M 最短边至少15px,最长边最大4096px 支持jpg/png/bmp格式 | exSI6ICJ... |
注:
一般基础类库会默认进行urlencode处理,请注意不要重复处理
调用示例
注: demo只是一个简单的调用示例,不适合直接放在复杂多变的生产环境使用
#视频教程
#常见问题
#集成增值税发票识别API时,对上传的图片有什么要求?
答:图片格式:jpg/png/bmp,图片属性:建议最短边至少15px,最长边最大4096px,图片大小:图像数据按要求编码后(base64编码后进行urlencode)大小不超过4M。 为提高识别率,增值税发票所在图片的位置需摆正,相对图片倾斜角度请勿过大,一般小于15度,否则导致识别错误。
#目前增值税发片识别支持哪些应用平台?
答:目前仅支持webai应用,暂不支持sdk应用接入。
#增值税发票识别的识别率是多少?
答:目前增值税发票识别识别准确率高达99.1%。
#按照规范上传的图片为什么识别不出增值税发票信息?
答:按照规范上传的图片还要注意图片的清晰度,否则也会对识别的结果产生影响。
#为什么我设置白名单之后还报10105( illegal client_ip)错误
答:用户的ip可能是多变的,多个IP都需要设置到白名单里面,最大数量是5个,超过这个ip量可申请线下取消ip白名单设置,同时注意下风险:请妥善保管您的appid和key, 否则一旦泄露任意终端(不受ip限制)都可使用您的服务。
#增值税发票识别的收费价格是多少?怎么购买?
答:每个账号免费领取一次3000服务量有效期90天,套餐一:1w次服务量/840元/年,套餐二:10w次服务量/8000元/年,套餐三:100w次服务量/50000元/年,可在控制台对应服务--->实时用量--->购买服务量,套餐详细说明页 。
请求参数
示例代码
返回响应
校验码 增值税发票上的校验码识别结果。
发票代码 增值税发票上的发票代码识别结果。
货物或服务名称 增值税发票上的货物或服务名称识别结果。
发票号码 增值税发票上的发票号码识别结果。
开票日期 增值税发票上的开票日期识别结果。
购买方名称 增值税发票上的购买方名称识别结果。
金额明细 增值税发票上的金额明细识别结果。
纳税人识别号 增值税发票上的纳税人识别号识别结果。
销售方地址电话 增值税发票上的销售方地址电话识别结果。
销售方开户行及账号 增值税发票上的销售方开户行及账号识别结果。
销售方纳税人识别号 增值税发票上的销售方纳税人识别号识别结果。
销售方名称 增值税发票上的销售方名称识别结果。
税额明细 增值税发票上的税额明细识别结果。
增值税发票上的税率识别结果。
增值税发票上的税率明细识别结果。
税额合计 增值税发票上的税额合计识别结果。
增值税发票上的合计识别结果。
增值税发票上的价税合计大写识别结果。
增值税发票上的价税合计小写识别结果。
增值税发票上的专票/普票识别结果。
{
"code": "0",
"data": {
"error_code": 0,
"error_msg": "OK",
"time_cost": {
"preprocess": 22,
"recognize": 2473
},
"type": "增值税发票",
"vat_invoice_correct_code": "64974132813525186653",
"vat_invoice_correct_code_pos": {
"height": 43,
"left": 393,
"top": 174,
"width": 436
},
"vat_invoice_daima": "034011700111",
"vat_invoice_daima_pos": {
"height": 125,
"left": 422,
"top": 31,
"width": 318
},
"vat_invoice_goods_list": "*餐饮服务*餐费",
"vat_invoice_goods_list_pos": {
"height": 255,
"left": 304,
"top": 347,
"width": 332
},
"vat_invoice_haoma": "09445857",
"vat_invoice_haoma_pos": {
"height": 110,
"left": 1145,
"top": 55,
"width": 447
},
"vat_invoice_issue_date": "2018年07月19日",
"vat_invoice_issue_date_pos": {
"height": 63,
"left": 1295,
"top": 148,
"width": 297
},
"vat_invoice_payer_name": "科大讯飞股份有限公司",
"vat_invoice_payer_name_pos": {
"height": 40,
"left": 349,
"top": 195,
"width": 693
},
"vat_invoice_price_list": "678.30",
"vat_invoice_price_list_pos": {
"height": 52,
"left": 1136,
"top": 362,
"width": 207
},
"vat_invoice_rate_payer_id": "91340000711771143J",
"vat_invoice_rate_payer_id_pos": {
"height": 62,
"left": 349,
"top": 225,
"width": 693
},
"vat_invoice_seller_addr_tell": "安徽省合肥市蜀山区黄山路与怀宁路路口中皖金大地1912\"A区7号楼一楼三层局部A7-6商铺0551-65128129",
"vat_invoice_seller_addr_tell_pos": {
"height": 61,
"left": 349,
"top": 719,
"width": 693
},
"vat_invoice_seller_bank_account": "中国民生银行股份有限公司合肥分行699685583",
"vat_invoice_seller_bank_account_pos": {
"height": 60,
"left": 349,
"top": 749,
"width": 693
},
"vat_invoice_seller_id": "91340100MA2NG9JTIN",
"vat_invoice_seller_id_pos": {
"height": 61,
"left": 349,
"top": 690,
"width": 693
},
"vat_invoice_seller_name": "四川新派餐饮管理有限公司合肥黄山路分公司",
"vat_invoice_seller_name_pos": {
"height": 38,
"left": 349,
"top": 661,
"width": 693
},
"vat_invoice_tax_list": "40.70",
"vat_invoice_tax_list_pos": {
"height": 52,
"left": 1387,
"top": 362,
"width": 200
},
"vat_invoice_tax_rate": "6%",
"vat_invoice_tax_rate_list": "6%",
"vat_invoice_tax_rate_list_pos": {
"height": 52,
"left": 1327,
"top": 362,
"width": 76
},
"vat_invoice_tax_rate_pos": {
"height": 52,
"left": 1327,
"top": 362,
"width": 76
},
"vat_invoice_tax_total": "¥40.70",
"vat_invoice_tax_total_pos": {
"height": 85,
"left": 1387,
"top": 553,
"width": 192
},
"vat_invoice_total": "¥678.30",
"vat_invoice_total_cover_tax": "柒佰壹拾玖圆整",
"vat_invoice_total_cover_tax_digits": "¥719.00",
"vat_invoice_total_cover_tax_digits_pos": {
"height": 54,
"left": 635,
"top": 623,
"width": 937
},
"vat_invoice_total_cover_tax_pos": {
"height": 54,
"left": 635,
"top": 623,
"width": 937
},
"vat_invoice_total_pos": {
"height": 84,
"left": 1136,
"top": 554,
"width": 214
},
"vat_invoice_type": "电子普通发票",
"vat_invoice_zhuan_yong_flag": "普票"
},
"desc": "success",
"sid": "wcr000011f2@dxe4290f1b549b6f2b00"
}