当前位置: 首页 > api商店 > 增值税发票识别Api接口详情
增值税发票识别

商务合作

*关于产品有效期*
  • 首次赠送0次
  • 2000.7/次
  • 10000.68/次
  • 50000.65/次
  • 100000.6/次
  • 300000.55/次
  • 500000.5/次
  • 随心搭

价格: (约元/次)

立即添加
接口简介:支持对增值税普票、专票、全电发票(新版全国统一电子发票,专票/普票)、卷票、区块链发票的所有字段进行结构化识别,包括发票基本信息、销售方及购买方信息、商品信息、价税信息等,其中五要素字段的识别准确率超过 99.9%; 同时,支持对增值税卷票的 21 个关键字段进行识别,包括发票类型、发票代码、发票号码、机打号码、机器编号、收款人、销售方名称、销售方纳税人识别号、开票日期、购买方名称、购买方纳税人识别号、项目、单价、数量、金额、税额、合计金额(小写)、合计金额(大写)、校验码、省、市,四要素字段的识别准确率可达95%。
  • Api文档
  • 状态码说明
  • 请求示例
手机号机主姓名核验

接口地址: https://登录后显示/pyi/185/359(支持:http/https)

返回格式:json,xml,jsonp调用

请求方式:GET,POST

POST 请求需要设置Header头:Content-Type: application/x-www-form-urlencoded;charset=utf-8

Api测试工具

请求说明:

名称 必填 类型 说明 示例 参数另存
appid String 应用ID,在后台我的应用查看或者添加 1
format String 返回数据格式类型,每个接口已经说明支持返回格式:json,xml, jsonp调用方法说明 json
sign String 1.使用Md5方式验证,参数按一定规则md5后返回的字符串,详情点击这里阅读
2.使用Hash验证方式,直接跟上密钥即可。如何设置hash验证
通过我的应用里面修改验证方式
52a9dbe274a5c537bbf7a53e2d66c09f
time String 请求时传递的当前服务器时间戳 1545829466
url_image String 支持URL地址或者base64编码数据:
1. 使用base64编码图像数据时,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式
2. 使用URL地址时,图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式, 请注意关闭URL防盗链

Md5验证方式-加密顺序

sign = MD5( appid1formatjsontime1545829466密钥) 查看加密规则说明 密钥不需要键名,请直接跟上32位的密钥
红色部分代表参数值,appid默认为1,请修改为自己的appid值,去我的应用查看以及密钥
*注意:空值不参与加密。

返回参数说明:

名称 必填 类型 说明 示例 参数另存
amount_in_figuers String 价税合计(小写) 7.99
amount_in_words String 价税合计(大写) 柒圆玖角玖分
check_code String 校验码。增值税专票无此参数 61084601970281760289
checker String 复核 张三
city String 所属城市 厦门市
codeid Integer 状态码,返回10000状态都会进行计费。具体说明可查看状态码说明 10000
commodity_amount Array 金额
commodity_end_date Array 通行日期止。仅通行费增值税电子普通发票含有此参数
commodity_name Array 货物名称
commodity_num Array 数量
commodity_plate_num Array 车牌号。仅通行费增值税电子普通发票含有此参数
commodity_price Array 单价
commodity_start_date Array 通行日期起。仅通行费增值税电子普通发票含有此参数
commodity_tax Array 税额
commodity_tax_rate Array 税率
commodity_type Array 规格型号
commodity_unit Array 单位
commodity_vehicle_type Array 类型。仅通行费增值税电子普通发票含有此参数
invoice_code String 发票代码 035022200111
invoice_code_confirm String 发票代码的辅助校验码,一般业务情景可忽略 035021100111
invoice_date String 开票日期 2022年12月13日
invoice_num String 发票号码 17230518
invoice_num_confirm String 发票号码的辅助校验码,一般业务情景可忽略 17230518
invoice_tag String 增值税发票左上角标志。 包含:通行费、销项负数、代开、收购、成品油、其他 其他
invoice_type String 发票种类。不同类型发票输出:普通发票、专用发票、电子普通发票、电子专用发票、通行费电子普票、区块链发票、通用机打电子发票、电子发票(专用发票)、电子发票(普通发票) 电子普通发票
invoice_type_org String 发票名称 厦门增值税电子普通发票
is_agent String 是否代开
machine_code String 机器编号。仅增值税卷票含有此参数 661927300875
message String 请求状态说明 返回成功
note_drawer String 开票人 李四
online_pay String 电子支付标识。仅区块链发票含有此参数
password String 密码区 29>9*4<>4450/036+*4>05/6/6908+*2309><><+>54>1<01<02*<7+565/1+357+8*--69/>--*3747/76106
payee String 收款人 李四
province String 银行卡所属省份 福建省
purchaser_address String 购方地址及电话
purchaser_bank String 购方开户行及账号
purchaser_name String 购方名称 天津****机电科技有限公司
purchaser_register_num String 购方纳税人识别号 911201****05M9C29R
remarks String 备注
retdata Array 回数据集合,可能是数据、对象或者字符串
row String 行号 1
seller_address String 销售方地址及电话 厦门市湖里区观日西二里32号801室
seller_bank String 销售方开户行及账号 中国工商银行厦门江头支行4100022909200254537
seller_name String 销售方名称 厦门挖码信息技术有限公司
seller_register_num String 销售方纳税人识别号 91350206MA32JUL977
service_type String 发票消费类型。不同消费类型输出:餐饮、电器设备、通讯、服务、日用品食品、医疗、交通、其他 服务
sheet_num String 联次信息。专票第一联到第三联分别输出:第一联:记账联、第二联:抵扣联、第三联:发票联;普通发票第一联到第二联分别输出:第一联:记账联、第二联:发票联
time String 请求时传递的当前服务器时间戳 1675049940
total_amount String 合计金额 7.99
total_tax String 合计税额 ***
word String 内容 7.99

JSON返回示例:

服务器状态码:

状态码 说明
10000 返回成功
10001 appid必须指定,可以我的应用里面查看
10002 sign值必须指定,加密规则请前往帮助中心查看
10003 sign值验证不通过,加密规则请前往帮助中心查看
10004 时差不能超过10分钟,可以不传递这个参数,注意时间戳单位是秒
10005 appid错误,请检查appid值,前往会员中心->我的应用查看或添加
10006 当前IP地址未授权,请前往用户中心->我的应用添加ip{@info}
10007 应用被禁用,请联系客服处理
10008 应用内没有该接口,请到我的应用里面添加这个接口
10009 api接口不存在
10010 您没有添加该api接口
10011 api已经到期
10012 没有订购任何api,请前往购买后再操作
10013 该接口已经暂停使用
10014 未知的错误,可以联系客服处理
10015 参数个数错误
10019 {@info}
10017 time必须是整型
10018 次数不足
10020 子接口不存在,可能已经被关闭
10021 服务器发生错误
10022 帐户余额不足,请充值!
10023 订单提交成功,等待回调结果
10024 调试模式数据
10025 查无数据

请选择开发语言:

  • PHP
  • Python
$method = 'GET'; //请求方式 GET,POST
$secretType = 'MD5'; //验证方式MD5,Hash 通过后台 我的应用去修改
$api_url = 'https://登录后显示/pyi/185/359';
$appid  =   '应用id';// 在后台我的应用查看;
$secret =   '应用密钥';// 在后台我的应用查看;
$data = array(
    'appid'=>  '1',
    'format'=>  'json',
    'time'=>  '1545829466',
    'url_image'=>  '',
    );

$data['appid'] = $appid;
$data['time'] = time();//当前服务器时间

if('MD5' == $secretType){
    ksort($data); //按照键名对数组排序,为数组值保留原来的键。
    $md5String = '';
    foreach($data as $key=>$val){
        if(strlen($val)>0){ //过滤空值
            $md5String.=$key.$val;
        }
    }
    $secret = md5($md5String.$secret);
}
$data['sign'] = $secret;
if('GET'==$method){
    $sendUrl = $api_url.'?'.http_build_query($data); //把数据转换成url参数形式,a=b&c=d&e=f
    $result = file_get_contents($sendUrl);
}else{
    $header = ['Content-Type: application/x-www-form-urlencoded;charset=utf-8'];
    $ch = curl_init();
    if(is_array($data))$data = http_build_query($data);
    curl_setopt($ch, CURLOPT_URL, $api_url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);//POST
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_ENCODING,'gzip,deflate');
    $result = curl_exec($ch);
}
$result = json_decode($result,true);
print_r($result);

                        
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
#该代码为python3.7示例代码
import ssl,time,hashlib,string
from urllib import request,parse,error;
from urllib.parse import quote


api_url = 'https://登录后显示/pyi/185/359';
appid  =   '应用id';#在后台我的应用查看;
secret =   '应用密钥';#在后台我的应用查看;
data = {
                'appid':'1',
                'format':'json',
                'time':'1545829466',
                'url_image':'',
            };
data['appid'] = appid;
data['time'] = round(time.time());#当前服务器时间
keysArr = list(data.keys()) #取出字典key
keysArr.sort()#对字典key进行排序
md5String = '';
params = []
for key in keysArr:
    if data[key]:
        val = str(data[key])
        md5String+=key+val
        params.append(key + "=" + val )
md5String += secret;
m = hashlib.md5()
b = md5String.encode(encoding='utf-8')
m.update(b)
sign = m.hexdigest()

params.append('sign='+sign)#加入计算后的sign值去请求
params = '&'.join(tuple(params)); #把列表转成元组后用&分隔,最终转换成字符串 a=b&c=d&e=f

ssl._create_default_https_context = ssl._create_unverified_context
url = api_url+'?'+params;
url = quote(url, safe=string.printable)
req = request.Request(url)
opener = request.build_opener()
r = opener.open(fullurl=req)

doc = r.read();
print(doc.decode('utf-8'))