发票查验
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/data/v1/verify_invoice
请求方式:HTTP Post
返回格式:json
Header
参数 | 值 |
---|---|
Content-Type | 使用二进制方式时,为multipart/form-data;使用url方式时,为application/x-www-form-urlencoded |
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | string | 请在控制台->我的应用中获取 |
app_secret | 是 | string | 请在控制台->我的应用中获取 |
invoice_type | 是 | string | 发票类型: 01-增值税专用发票 02-货运运输业增值税专用发票 03-机动车销售统一发票 04-增值税普通发票 09-增值税电子专用发票 10-增值税普通发票(电子) 11-增值税普通发票(卷式) 14-通行费发票 15-二手车销售统一发票 16-全电发票 17-区块链发票(目前只支持深圳地区) |
invoice_no | 是 | string | 发票号码 |
invoice_code | 否 | string | 发票代码,全电发票可为空 |
check_code_last6 | 否 | string | 校验码后六位: 机动车销售发票,二手车销售发票,专票可为空 区块链发票传入五位校验码 |
total | 否 | string | 01-开具金额(不含税) 02-合计金额 03-不含税价 04-可不传 09-开具金额(不含税) 10-价税合计 11-可不传 14-可不传 15-车价合计 16-价税合计 17-不含税金额 |
create_date | 是 | string | 开票日期 |
want_image | 否 | Int | 是否需要合成验证成功后的发票图片,值为1则返回图片的base64编码,0或不传则不进行图片合成 |
调用示例
java(相关依赖库下载)
package com.exocr.httpclient;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;
import com.exocr.common.utils.HttpClientUtils;
public class Test {
public static void main(String[] args) throws FileNotFoundException {
//识别url
String url = "http://api.exocr.com/ data/v1/verify_invoice";
//设置请求参数
Map<String, String> params = new HashMap<String, String>();
params.put("app_key", "#####");
params.put("app_secret", "#####");
// 增值税专票
params.put("invoice_type", "01");
params.put("invoice_no", "######");
params.put("invoice_code", "##########");
params.put("check_code_last6", "##########");
params.put("total", "##########");
params.put("create_date", "##########");
//发送请求,得到识别结果
String string = HttpClientUtils.doPost(url, params);
System.out.println(string);
}
}
返回示例
{
"result": {
"desc": "查验成功",
"data": {
"invoice_code": "########",
"invoice_no": "######",
"invoice_type": "90",
"verify_count": "1113",
"create_date": "20210121",
"buyer_name": "海口############有限公司",
"buyer_tax_no": "##########",
"buyer_address": "海南省#########",
"buyer_bank_info": "工行海口市#######",
"seller_name": "海口######有限公司",
"seller_tax_no": "########",
"seller_address": "海南省海口市#####",
"seller_bank_info": "工行琼山支行#######",
"total": "1300.00",
"total_tax": "117.00",
"amount": "1417.00",
"note": "",
"machine_no": "##############",
"check_code": "############",
"cancel_flag": "N",
"inv_status": "30",
"productO_oil_flag": "N",
"verify_date": "2023-10-17 21:09:47",
"detail_list": [
{
"name": "*水果*橙",
"type": "",
"unit": "kg",
"count": "100",
"unit_price": "13.00",
"amount": "1300.00",
"tax_rate": "9",
"tax": "117.00"
}
],
"agent_mark": "N"
},
"image_base64": "data:image/jpg;base64,#####",
"result_code": 1
},
"error_code": 0,
"description": "调用成功",
"request_id": "B540EA16BE344940A3818BD993E7995F",
"recognize_time": 668,
"available_count": 854,
"version": null
}
返回说明
通用参数
参数 | 类型 | 说明 |
---|---|---|
result | string | 查验结果 |
error_code | int | 错误码,返回0为正确,其他为错误 |
description | string | 结果描述 |
request_id | string | 请求唯一标识符 |
recognize_time | int | 耗时,单位为毫秒 |
available_count | int | 剩余可用次数,次数不足时无法继续调用接口,可在控制台进行充值次数 |
发票查验特有参数
参数 | 类型 | 说明 |
---|---|---|
data | string | 查验数据 |
desc | string | 结果描述 |
result_code | int | 结果码 |
image_base64 | string | 当want_image参数为1时,返回合成图片的base64编码 |
错误码
参数 | 类型 | 说明 |
---|---|---|
0 | int | 调用成功 |
3202 | int | 发票查验操作异常(调用上游接口出现异常) |
3204 | int | 发票代码格式错误 |
3207 | int | 5年以前开具的发票无法查询 |
3210 | int | 普票后六位校验码不能为空 |
3213 | int | 查验异常(查验通道网络原因) |
4001 | int | 参数非法,请重试 |
4002 | int | 授权验证未通过,请检查appKey与appSecret是否正确 |
4007 | int | 服务器忙,请重试 |
认证结果码
结果码 | 类型 | 说明 |
---|---|---|
1 | int | 查验成功 |
2 | int | 超过该张票当天查验次数 |
6 | int | 查验成功发票不一致 |
7 | int | 查验异常(查验通道网络原因) |
8 | int | 发票查验操作异常(调用上游接口出现异常) |
9 | int | 所查发票不存在 |
105 | int | 查询发票不规范 |
查验数据
增值税专用发票、增值税电子专用发票、增值税普通发票、增值税电子普通发票、电子发票(普通发票)、电子发票(增值税专用发票)、全电纸质发票(增值税专用发票)、全电纸质发票(普通发票)、区块链发票查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | string | 发票代码 |
invoice_no | string | 发票号码 |
invoice_type | string | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | string | 查验次数 |
create_date | string | 开票日期 |
buyer_name | string | 购方名称 |
buyer_tax_no | string | 购方纳税人识别号 |
buyer_address | string | 购方地址电话 |
buyer_bank_info | string | 购方开户行及账号 |
seller_name | string | 销方名称 |
seller_tax_no | string | 销方纳税人识别号 |
seller_address | string | 销方地址电话 |
seller_bank_info | string | 销方开户行及账号 |
total | string | 合计金额 |
total_tax | string | 合计税额 |
amount | string | 价税合计 |
note | string | 备注 |
machine_no | string | 机器编号 |
check_code | string | 校验码 |
cancel_flag | string | 作废标志,取值Y/N |
inv_status | string | 0=正常, 10=作废,20=红票,30=红冲,40=部分红尘,50=全额红冲 |
productO_oil_flag | string | 成品油标志,取值Y/N |
verify_date | string | 查验时间 |
detail_list | array | 货物明细列表 |
agent_mark | string | 代开标志,Y为代开 N为自开 W为委托代开 |
货物信息
参数 | 类型 | 说明 |
---|---|---|
name | string | 货物或应税劳务名称 |
type | string | 规格型号 |
unit | string | 单位 |
count | string | 数量 |
unit_price | string | 单价 |
amount | string | 金额 |
tax_rate | string | 税率 |
tax | string | 税额 |
卷式发票查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | string | 发票代码 |
invoice_no | string | 发票号码 |
invoice_type | string | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | string | 查验次数 |
create_date | string | 开票日期 |
seller_name | string | 销方名称 |
seller_tax_no | string | 销方纳税人识别号 |
buyer_name | string | 购方名称 |
buyer_tax_no | string | 购方纳税人识别号 |
machine_no | string | 机器编号 |
total_tax | string | 合计税额 |
amount | string | 价税合计 |
note | string | 备注 |
check_code | string | 校验码 |
total | string | 合计金额 |
receiver | string | 收款员 |
cancel_flag | string | 作废标志,取值Y/N |
productO_oil_flag | string | 成品油标志,取值Y/N |
verify_date | string | 查验时间 |
detail_list | array | 货物明细列表 |
agent_mark | string | 代开标志,Y为代开 N为自开 W为委托代开 |
货物信息
参数 | 类型 | 说明 |
---|---|---|
item | string | 项目 |
count | string | 数量 |
unit_prcie | string | 含税单价 |
amount | string | 含税金额 |
机动车销售统一发票查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | string | 发票代码 |
invoice_no | string | 发票号码 |
invoice_type | string | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | string | 查验次数 |
create_date | string | 开票日期 |
chinese_key | string | 机器编码 |
buyer_tax_name | string | 购买方名称 |
buyer_id | string | 身份证号码/组织机构代码 |
buyer_tax_no | string | 购方纳税人识别号 |
seller_name | string | 车辆类型 |
vehicle_type | string | 厂牌型号 |
production_addr | string | 产地 |
cert_no | string | 合格证号 |
total | string | 金额(不含税) |
test_no | string | 商检单号(合计) |
engine_no | string | 发动机号 |
note | string | 车辆识别代号/车架号码 |
import_no | string | 进口证明书号 |
tounit_name | string | 销货单位名称 |
phone | string | 电话 |
seller_tax_no | string | 销方纳税人识别号 |
account | string | 地址 |
receive_bank | string | 开户银行 |
zztax_rate | string | 增值税税率或征收率 |
zztax | string | 增值税税额 |
tax_authority_code | string | 主管税务机关代码 |
proof_num | string | 完税凭证号码 |
tonnage | string | 吨位 |
limit_num | string | 限乘人数 |
cancel_flag | string | 作废标志 |
inv_status | string | 发票状态 |
tax_authority_name | string | 主管税务机关名称 |
amount | string | 价税合计 |
verify_date | string | 查验时间 |
二手车发票查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | string | 发票代码 |
invoice_no | string | 发票号码 |
invoice_type | string | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | string | 查验次数 |
create_date | string | 开票日期 |
chinese_key | string | 机器编码 |
buyer_tax_name | string | 购买方名称 |
buyer_tax_no | string | 买方代码/身份证号 |
buyer_tax_address | string | 买方单位/个人住址 |
buyer_tax_phone | String | 买方电话 |
car_license | String | 车牌照号 |
register_no | String | 登记证号 |
seller_name | String | 车辆类型 |
total | String | 车价合计 |
car_no | String | 车辆识别代号/车架号码 |
vehicle_type | String | 厂牌型号 |
unit_name | String | 转入地车辆车管所名称 |
selier_name | String | 卖方单位/个人 |
selier_id | String | 卖方单位代码/身份证号 |
selier_tax_address | String | 卖方单位/个人住址 |
selier_tax_phone | String | 卖方电话 |
jy_unit | String | /经营、拍卖单位 |
jy_address | String | 经营、拍卖单位地址 |
jy_tax_no | String | 经营、拍卖单位纳税人识别号 |
bank_account | String | 经营、拍卖单位开户银行及账号 |
jy_phone | String | 经营、拍卖单位电话 |
Used_car_market | String | 二手车市场纳税人识别号 |
Used_car_market | String | 二手车市场名称 |
Used_car_address | String | 二手车市场地址 |
Used_car_bankno | String | 二手车市场开户银行及账号 |
Usedcar_matker_phone | String | 二手车市场电话 |
cancel_flag | String | 作废标志 |
inv_status | String | 发票状态 |
remark | String | 备注 |
verify_date | String | 查验时间 |
通行费发票查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | String | 发票代码 |
invoice_no | String | 发票号码 |
invoice_type | String | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | String | 查验次数 |
create_date | String | 开票日期 |
seller_name | String | 销方名称 |
seller_tax_no | String | 销方纳税人识别号 |
seller_address | String | 销方地址电话 |
seller_bank_info | String | 销方开户行及账号 |
buyer_name | String | 购方名称 |
buyer_tax_no | String | 购方纳税人识别号 |
buyer_address | String | 购方地址电话 |
buyer_bank_info | String | 购方开户行及账号 |
check_code | String | 校验码 |
total_tax | String | 税额 |
amount | String | 价税合计 |
note | String | 备注 |
equio_no | String | 设备编号 |
total | String | 金额 |
txf_flag | String | 通行费标志 |
detail_list | Array | 货物明细 |
cancel_flag | String | 作废标志 |
inv_status | String | 发票状态,0=正常, 10=作废,20=红票,30=红冲,40=部分红冲,50=全额红冲 |
verify_date | String | 查验时间 |
货物信息
参数 | 类型 | 说明 |
---|---|---|
name | String | 项目名称 |
license_type | String | 车牌号 |
type | String | 类型 |
txr_from | String | 通行日期起 |
txr_to | String | 通行日期止 |
total | String | 金额 |
tax_rate | String | 税率 |
tax | String | 税额 |
电子发票(铁路电子客票)查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | string | 发票代码 |
invoice_no | string | 发票号码 |
invoice_type | string | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | string | 查验次数 |
create_date | string | 开票日期 |
buyer_tax_no | string | 购方名称 |
buyer_name | string | 购方统一社会信用代码 |
business_type | string | 业务类型 |
name | string | 姓名 |
id_no | string | 证件号码 |
total | string | 金额 |
total_tax | string | 税额 |
amount | string | 票价 |
tax_rate | string | 税率 |
station_from | string | 出发站 |
station_to | string | 到达站 |
train_no | string | 车次 |
departure_date | string | 乘车日期 |
departure_time | string | 出发时间 |
seat_class | string | 席别 |
carriage_no | string | 车厢 |
seat | string | 席位 |
ticket_type | string | 票种 |
e_ticket_no | string | 电子客票号 |
air_condition_type | string | 空调特征 |
cancel_flag | String | 作废标志 |
inv_status | String | 发票状态,0=正常, 10=作废,20=红票,30=红冲,40=部分红冲,50=全额红冲 |
remark | String | 备注 |
verify_date | String | 查验时间 |
电子发票(航空运输电子客票行程单)查验响应报文
参数 | 类型 | 说明 |
---|---|---|
invoice_code | string | 发票代码 |
invoice_no | string | 发票号码 |
invoice_type | string | 发票类型: 10,增值税专用发票 20,增值税普通发票 30,增值税电子普通发票 40,货物运输业增值税专用发票 50,机动车销售统一发票 60,卷式发票 70,二手车发票 80,通行费发票 90,增值税电子专用发票 100,电子发票(增值税专用发票) 110,电子发票(普通发票) 140, 全电纸质发票(增值税专用发票) 150, 全电纸质发票(普通发票) 160, 区块链发票 |
verify_count | string | 查验次数 |
create_date | string | 开票日期 |
buyer_name | String | 购方名称 |
buyer_tax_no | String | 购方纳税人识别号 |
name | String | 姓名 |
id_no | String | 证件号码 |
total_tax | String | 税额 |
amount | String | 价税合计 |
domestic_or_intl | String | 国内国际标志 |
gp_no | String | GP单号 |
e_ticket_no | String | 电子客票号 |
cancel_flag | String | 作废标志 |
verify_date | String | 查验时间 |
detail_list | array | 货物明细列表 |
inv_status | String | 发票状态,0=正常, 10=作废,20=红票,30=红冲,40=部分红冲,50=全额红冲 |
remark | String | 备注 |
货物信息
参数 | 类型 | 说明 |
---|---|---|
invoice_detail_number | String | 航段 |
from | String | 出发站 |
to | String | 目的站 |
carrier | String | 承运人 |
flight_no | String | 航班号 |
seat_class | String | 座位等级 |
date | String | 承运日期 |
time | String | 起飞时间 |
fare_basis | String | 客票级别 |