文档中心

- API文档
- 通用文字识别
- 通用表格识别
- 通用文档解析
- 通用文本向量
- 智能文档抽取
- 国内通用票据识别
- 图片切边增强
- 人脸伪造检测
- PDF转Word
- 发票验真
- 身份证识别
- 营业执照识别
- 银行卡识别
- 行驶证识别
- 驾驶证识别
- 票据分类
- 机动车购车发票识别
- 车辆合格证识别
- 名片识别
- 车牌号识别
- 社保卡识别
- 护照识别
- 车辆VIN码识别
- 电子承兑汇票识别
- 车辆登记证识别
- 图片转word
- 二手车购车发票识别
- 证件分类
- 印章检测识别
- 出租车发票识别
- 税务登记证识别
- 组织机构代码证识别
- 开户许可证识别
- 澳门身份证识别
- 港澳居民来往内地通行证
- 台湾居民来往大陆通行证识别
- 台湾身份证识别
- 马来西亚身份证识别
- 户口本识别
- 结婚证识别
- 房产证识别
- 军官证识别
- 飞机行程单识别
- 定额发票识别
- 商铺小票识别
- 海关进出口货物报关单识别
- 事业单位法人证识别
- 港澳台通行证识别
- 日本驾驶证识别
- 香港身份证识别
- 办公文档识别
- 出生证明识别
- 通用篡改检测
- 不动产权证书识别
- 银行回单识别
- 自动擦除手写文字
- 去屏幕纹
- 图像质量检测
- 港澳台居民居住证
- 二维码识别
- 汽车商业险保单识别
- 文档图像切边矫正
- PDF转Excel
- PDF转PPT
- PDF转图片
- Word转PDF
- Excel转PDF
- 图片转PDF
- Word转图片
- 完税证明
- 图像水印去除
- 手写签名识别
- 区块链发票验真
- 合同比对
- 外国人永久居留身份证识别
- 卡证篡改检测
- 毕业证识别
- 学位证识别
查看文档
示例代码
API调试
功能描述
支持增值税专用发票、增值税普通发票(折叠票)、增值税普通发票(卷票)、增值税电子普通发票(含收费公路通行费增值税电子普通发票)、机动车销售统一发票、二手车销售统一发票在线查验,当天开具发票次日可查验。
请求URL
https://api.textin.com/robot/v1.0/api/verify_vat
HTTP请求方法
HTTP POST
请求头说明(Request Header)
请在HTTP请求中添加以下自定义Header。
header 名 | 值 |
---|---|
x-ti-app-id | 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id |
x-ti-secret-code | 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code |
请求体说明(Request Body)
Content-Type:application/json
{
"invoice_code": "",
"invoice_no": "",
"invoice_date": "",
"invoice_sum": "",
"verify_code": ""
}
提示:Request Body 为 JSON字符串。
字段 | 说明 |
---|---|
invoice_code | 非必填,发票代码,全电发票(发票类型代码为 31,32,85,86)时非必填,其他发票类型必填 |
invoice_no | 必填,发票号码 |
invoice_date | 必填,开票日期,形如20190203 |
invoice_sum | 非必填,发票类型代码为 01,03,15,20,31,32 时必填:为 01,03,20 时填写发票不含税金额,为 15 时填写发票车价合计,为 31,32 时填写含税金额。其它可为空 |
verify_code | 非必填,机器验证码,取后六位,例如:发票上的校验码为43663064992194675523,接口传参传“675523”即可;发票类型代码为 04,10,11,14,86 时必填,发票类型代码为 86 时,填写密码区数电票号码后六位,其他发票种类可为空 |
engine | 非必填,指定验真源,枚举值1, 2, 3 |
支持验真的票种
发票类型代码 | 发票类型说明 |
---|---|
01 | 增值税专用发票 |
02 | 货运运输业增值税专用发票 |
03 | 机动车销售统一发票 |
04 | 增值税普通发票 |
10 | 增值税普通发票(电子) |
11 | 增值税普通发票(卷式) |
14 | 增值税普通发票(通行费) |
15 | 二手车销售统一发票 |
20 | 增值税电子专用发票 |
31 | 电子发票(增值税专用发票) |
32 | 电子发票(增值税普通发票) |
85 | 全电发票(纸质专用发票) |
86 | 数电纸质发票(普通发票) |
响应体说明(Response Data)
Content-Type:application/json
JSON结构说明如下:
字段 | 说明 |
---|---|
code | 错误码,详见“错误码说明” |
message | 返回对应code的状态说明 |
result | 图片结果信息 |
+ code | 验证状态码 |
+ msg | 验证状态码说明 |
+ invoice_type | 发票类型 |
+ invoice_code | 发票代码 |
+ invoice_number | 发票号码 |
+ invalid_mark | 作废标志 |
+ invoice_date | 开票日期 |
+ purchaser_taxpayer_number | 购方税号 |
+ data | 发票信息,见下方说明 |
其中,data
(发票信息)字段详细说明如下:
序号 | 参数 | 参数名称 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|---|---|
1 | invoice_type | 发票种类 | String | 2 | 是 | |
2 | invoice_code | 发票代码 | String | 20 | 是 | |
3 | invoice_number | 发票号码 | String | 8 | 是 | |
4 | inspection_amount | 查验次数 | String | 100 | 否 | |
5 | saler_name | 销方名称 | String | 100 | 否 | |
6 | saler_taxpayer_number | 销方税号 | String | 20 | 否 | |
7 | saler_address_or_phone | 销方地址、电话 | String | 100 | 否 | |
8 | saler_bank_and_number | 销方开户行及账号 | String | 100 | 否 | |
9 | purchaser_taxpayer_number | 购方税号 | String | 20 | 否 | |
10 | purchaser_name | 购方名称 | String | 100 | 否 | |
11 | purchaser_address_or_phone | 购方地址、电话 | String | 100 | 否 | |
12 | purchaser_bank_and_number | 购方开户行及账号 | String | 100 | 否 | |
13 | invoice_date | 开票日期 | String | 8 | 否 | 格式 YYYYMMDD |
14 | invoice_money | 发票金额 | String | 20 | 否 | 发票种类为增值税专用发票、货物运输业增值税专用发票、机动车销售统一发票时不可为空,填写发票不含税金额 |
15 | all_tax | 发票税额 | String | 20 | 否 | |
16 | all_valorem_tax | 价税合计 | String | 16 | 否 | |
17 | note | 备注 | String | 200 | 否 | |
18 | machine_code | 机器编号 | String | 20 | 否 | |
19 | check_code | 校验码 | String | 20 | 否 | |
20 | blue_invoice_code | 蓝票发票代码 | String | 12 | 否 | |
21 | blue_invoice_no | 蓝票发票号码 | String | 8 | 否 | |
22 | invalid_mark | 作废标志 | String | 1 | 否 | N 未作废,Y 已作废, H 冲红,7 部分冲红,8 全额冲红 |
23 | id_card | 购方身份证号/组织机构代码 | String | 20 | 否 | 机动车、二手车发票返回该信息 |
24 | car_type | 车辆类型 | String | 80 | 否 | 机动车、二手车发票返回该信息 |
25 | brand_version | 厂牌型号 | String | 100 | 否 | 机动车、二手车发票返回该信息 |
26 | producing_area | 产地 | String | 80 | 否 | 机动车发票返回该信息 |
27 | license_code | 合格证号 | String | 100 | 否 | 机动车发票返回该信息 |
28 | inspection_number | 商检单号 | String | 80 | 否 | 机动车发票返回该信息 |
29 | engine_code | 发动机号 | String | 120 | 否 | 机动车发票返回该信息 |
30 | carframe_code | 车辆识别代号/车架号码 | String | 40 | 否 | 机动车、二手车发票返回该信息 |
31 | import_license | 进口证明书号 | String | 80 | 否 | 机动车发票返回该信息 |
32 | tax_unit_code | 主管税务机关代码 | String | 11 | 否 | 机动车发票返回该信息 |
33 | after_tax_code | 完税凭证号码 | String | 32 | 否 | 机动车发票返回该信息 |
34 | limit_amount | 限乘人数 | String | 40 | 否 | 机动车发票返回该信息 |
35 | tax_unit_name | 主管税务机关名称 | String | 160 | 否 | 机动车发票返回该信息 |
36 | unit | 吨位 | String | 40 | 否 | 机动车发票返回该信息 |
37 | tax_rate | 税率 | String | 32 | 否 | 机动车发票返回该信息 |
38 | saler_address | 销方地址 | String | 160 | 否 | 机动车发票返回该信息 |
39 | saler_phone | 销方电话 | String | 80 | 否 | 机动车发票返回该信息 |
40 | saler_bank_name | 销方开户银行 | String | 160 | 否 | 机动车发票返回该信息 |
41 | saler_bank_account | 销方开户账号 | String | 80 | 否 | 机动车发票返回该信息 |
42 | carrier_name | 承运人名称 | String | 20 | 否 | 货物发票返回信息 |
43 | carrier_tax_no | 承运人识别号 | String | 80 | 否 | 货物发票返回信息 |
44 | drawee_name | 受票方名称 | String | 20 | 否 | 货物发票返回信息 |
45 | drawee_tax_no | 受票方识别号 | String | 80 | 否 | 货物发票返回信息 |
46 | receive_name | 收货人名称 | String | 20 | 否 | 货物发票返回信息 |
47 | receive_tax_no | 收货人识别号 | String | 80 | 否 | 货物发票返回信息 |
48 | consignor_name | 发货人名称 | String | 20 | 否 | 货物发票返回信息 |
49 | consignor_tax_no | 发货人识别号 | String | 80 | 否 | 货物发票返回信息 |
50 | transport_goods_info | 运输货物信息 | String | 32 | 否 | 货物发票返回信息 |
51 | through_address | 起运地、经由、到达地 | String | 32 | 否 | 货物发票返回信息 |
52 | tax_disk_number | 税控盘号 | String | 32 | 否 | 货物发票返回信息 |
53 | car_type_and_number | 车种车号 | String | 15 | 否 | 货物发票返回信息 |
54 | vehicle_tonnage | 车船吨位 | String | 200 | 否 | 货物发票返回信息 |
55 | traffic_fee_flag | 通行费标准 | String | 2 | 否 | 通行费发票返回信息Y-可抵扣通行费N-不可抵扣通行费 |
56 | zero_tax_rate_flag | 零税率标识 | String | 2 | 否 | 通行费发票返回信息空:非零税率1:税率栏位显示“免税“2:税率栏位显示“不征税“3:零税率 |
57 | license_plate | 车牌照号 | String | 100 | 否 | 二手车发票返回信息 |
58 | registration_no | 登记证号 | String | 100 | 否 | 二手车发票返回信息 |
59 | car_price | 车价合计 | String | 32 | 否 | 二手车发票返回信息 |
60 | transferred_vehicle_office | 转入地车辆车管所名称 | String | 240 | 否 | 二手车发票返回信息 |
61 | purchaser_unit_or_individual | 买方单位/个人 | String | 240 | 否 | 二手车发票返回信息 |
62 | purchaser_unitcode_or_idNo | 买方单位代码/身份证号 | String | 44 | 否 | 二手车发票返回信息 |
63 | purchaser_unit_or_individual_address | 买方单位/个人住址 | String | 240 | 否 | 二手车发票返回信息 |
64 | purchaser_phone | 买方电话 | String | 100 | 否 | 二手车发票返回信息 |
65 | seller_unit_or_individual | 卖方单位/个人 | String | 240 | 否 | 二手车发票返回信息 |
66 | seller_unit_code_or_idno | 卖方单位代码/身份证号 | String | 44 | 否 | 二手车发票返回信息 |
67 | seller_unit_or_individual_address | 卖方单位/个人住址 | String | 240 | 否 | 二手车发票返回信息 |
68 | seller_phone | 卖方电话 | String | 100 | 否 | 二手车发票返回信息 |
69 | business_unit | 经营、拍卖单位 | String | 240 | 否 | 二手车发票返回信息 |
70 | busmess_unit_address | 经营、拍卖单位地址 | String | 240 | 否 | 二手车发票返回信息 |
71 | business_unit_tax_no | 经营、拍卖单位纳税人识别号 | String | 44 | 否 | 二手车发票返回信息 |
72 | busmess_unit_bank_and_account | 开户银行及账号 | String | 100 | 否 | 二手车发票返回信息 |
73 | busmess_unit_phone | 经营、拍卖单位电话 | String | 100 | 否 | 二手车发票返回信息 |
74 | lemon_market | 二手车市场 | String | 240 | 否 | 二手车发票返回信息 |
75 | lemon_market_tax_no | 二手车市场纳税人识别号 | String | 44 | 否 | 二手车发票返回信息 |
76 | lemon_market_address | 二手车市场地址 | String | 240 | 否 | 二手车发票返回信息 |
77 | lemon_market_bank_and_account | 二手车市场开户银行及账号 | String | 100 | 否 | 二手车发票返回信息 |
78 | lemon_market_phone | 二手车市场电话 | String | 100 | 否 | 二手车发票返回信息 |
79 | cyjgxx | 验真结果 | String | 100 | 否 | 验真结果 |
detailList
字段详细说明如下:
序号 | 参数 | 参数名称 | 类型 | 长度 | 必须 | 说明 |
---|---|---|---|---|---|---|
1 | detail_no | 明细编号 | String | 90 | 否 | |
2 | goods_name | 货物名称 | String | 40 | 否 | |
3 | detail_amount | 金额 | String | 22 | 否 | |
4 | num | 数量 | String | 24 | 否 | |
5 | tax_rate | 税率 | String | 24 | 否 | |
6 | all_tax | 税额 | String | 24 | 否 | |
7 | tax_unit_price | 含税单价 | String | 24 | 否 | |
8 | tax_detail_amount | 含税金额 | String | 24 | 否 | |
9 | net_value | 不含税单价 | String | 24 | 否 | |
10 | standard | 规格型号 | String | 100 | 否 | |
11 | unit | 计量单位 | String | 10 | 否 | |
12 | expense_item | 费用项目 | String | 30 | 否 | 货物发票返回信息 |
13 | plate_no | 车牌号 | String | 40 | 否 | 通行费发票返回信息 |
14 | type | 类型 | String | 32 | 否 | 通行费发票返回信息 |
15 | traffic_date_start | 通行日期起 | String | 32 | 否 | 通行费发票返回信息 |
16 | traffic_date_end | 通行日期起止 | String | 32 | 否 | 通行费发票返回信息 |
17 | taxClassifyCode | 税收分类编码 | String | 90 | 否 | |
18 | rowNo | 行号 | string | 32 | 否 |
验证状态码字段与扣费说明
返回码 | 说明 | 是否扣费 |
---|---|---|
001 | 成功 | 是 |
002 | 超过该张票当天查验次数 | 否 |
005 | 请求不合法 | 否 |
006 | 发票信息不一致 | 是 |
009 | 所查发票不存在 | 是 |
104 | 已超过最大查验量 | 否 |
105 | 查询发票不规范 | 否 |
106 | 查验异常 | 否 |
107 | 鉴权失败 | 否 |
108 | 参数不为空 | 否 |
109 | 参数长度不正确 | 否 |
110 | 参数"invoice_code"的格式或取值范围错误 | 否 |
111 | 参数"invoice_sum"的格式或取值范围错误 | 否 |
112 | 参数"verify_code"的格式或取值范围错误 | 否 |
113 | 参数"invoice_no"的格式或取值范围错误 | 否 |
114 | 校验码不正确,应为后六位 | 否 |
115 | 超过服务有效期限限制 | 否 |
116 | 查验发票张数超过限制 | 否 |
1005 | 请核对四要素是否符合发票规范 | 是 |
1010 | 日期格式不正确(请检查日期是否符合格式YYYYMMDD) | 否 |
1011 | 请求参数不完整 | 否 |
1021 | 网络超时,税局升级维护 | 否 |
10014 | 日期当天不能查验 | 否 |
10015 | 开票金额:不合法的格式 | 否 |
10016 | 检验码:不能为空 | 否 |
10017 | 超过五年的不能查验 | 否 |
10018 | 检验码:不合法的长度 | 否 |
10020 | 没有查验权限 | 否 |
JSON结构示例
{
"code": 200,
"message": "success",
"result": {
"code": "001",
"msg": "成功",
"invoice_type": "04",
"invoice_code": "04400*****0104",
"invoice_number": "002*****965",
"invalid_mark": "N",
"invoice_date": "20181205",
"purchaser_taxpayer_number": "914401*****599453",
"data": {
"brand_version": "",
"blue_invoice_code": "",
"blue_invoice_no": "",
"business_unit": "",
"business_unit_address": "",
"business_unit_bank_and_account": "",
"business_unit_phone": "",
"business_unit_tax_no": "",
"purchaser_bank_and_number": "",
"purchaser_address_or_phone": "广州市天河区天河*****、104、105、106、107房",
"purchaser_name": "广州柏德口****限公司",
"purchaser_phone": "",
"purchaser_taxpayer_number": "9144*****935599453",
"purchaser_unitcode_or_idNo": "",
"purchaser_unit_or_individual": "",
"purchaser_unit_or_individual_address": "",
"invalid_mark": "N",
"car_number": "",
"car_price": "",
"carrier_name": "",
"carrier_tax_no": "",
"import_license": "",
"check_code": "639801*****37999873",
"inspection_amount": "2",
"inspection_number": "",
"consignor_name": "",
"consignor_tax_no": "",
"drawee_name": "",
"drawee_tax_no": "",
"engine_code": "",
"id_card": "",
"invoice_money": "43*****27",
"invoice_code": "044*****800104",
"invoice_date": "201*****05",
"invoice_number": "00*****965",
"invoice_type": "04",
"lemon_market": "",
"lemon_market_address": "",
"lemon_market_bank_and_account": "",
"lemon_market_phone": "",
"lemon_market_tax_no": "",
"license_plate": "",
"limit_amount": "",
"machine_code": "661*****46146",
"producing_area": "",
"license_code": "",
"receive_name": "",
"receive_tax_no": "",
"registration_no": "",
"note": "",
"code": "0001",
"saler_bank_and_number": "工行广州兴*****519200036703",
"saler_address": "",
"saler_address_or_phone": "广州市越秀区广州大*****21房 37596351",
"saler_bank_account": "",
"saler_bank_name": "",
"saler_name": "广州市南*****公司",
"saler_phone": "",
"saler_taxpayer_number": "91440*****68316H",
"seller_phone": "",
"seller_unit_code_or_idno": "",
"seller_unit_or_individual": "",
"seller_unit_or_individual_address": "",
"all_tax": "699.73",
"tax_unit_code": "",
"tax_unit_name": "",
"tax_disk_number": "",
"after_tax_code": "",
"tax_rate": "",
"through_address": "",
"unit": "",
"all_valorem_tax": "5073.00",
"traffic_fee_flag": "",
"transferred_vehicle_office": "",
"transport_goods_info": "",
"carframe_code": "",
"vehicle_tonnage": "",
"car_type": "",
"zero_tax_rate_flag": "",
"detailList": [
{
"detail_amount": "620.69",
"detail_no": "1",
"expense_item": "",
"goods_name": "*医药*3M 701*****用型纳米树脂",
"num": "4",
"plate_no": "",
"standard": "4g/支",
"all_tax": "99.31",
"tax_detail_amount": "",
"tax_rate": "16%",
"tax_unit_price": "",
"traffic_date_end": "",
"traffic_date_start": "",
"type": "",
"unit": "支",
"net_value": "155.17241379310346"
},
{
"detail_amount": "448.28",
"detail_no": "2",
"expense_item": "",
"goods_name": "*医药*3M 56*****小号)-补充装",
"num": "10",
"plate_no": "",
"standard": "黄色,1:3MM",
"all_tax": "71.72",
"tax_detail_amount": "",
"tax_rate": "16%",
"tax_unit_price": "",
"traffic_date_end": "",
"traffic_date_start": "",
"type": "",
"unit": "根",
"net_value": "44.827586206896555"
},
{
"detail_amount": "1344.83",
"detail_no": "3",
"expense_item": "",
"goods_name": "*医药*3M 568*****管桩(大号)-补充装",
"num": "30",
"plate_no": "",
"standard": "蓝色,1:9MM",
"all_tax": "215.17",
"tax_detail_amount": "",
"tax_rate": "16%",
"tax_unit_price": "",
"traffic_date_end": "",
"traffic_date_start": "",
"type": "",
"unit": "根",
"net_value": "44.827586206896555"
},
{
"detail_amount": "282.76",
"detail_no": "4",
"expense_item": "",
"goods_name": "*医药*3M 810*****专用复合树脂",
"num": "2",
"plate_no": "",
"standard": "4g/支",
"all_tax": "45.24",
"tax_detail_amount": "",
"tax_rate": "16%",
"tax_unit_price": "",
"traffic_date_end": "",
"traffic_date_start": "",
"type": "",
"unit": "支",
"net_value": "141.3793103448276"
},
{
"detail_amount": "610.34",
"detail_no": "5",
"expense_item": "",
"goods_name": "*医药*Z350XT 7032A2流动树脂",
"num": "4",
"plate_no": "",
"standard": "一包有两小支,每支2g",
"all_tax": "97.66",
"tax_detail_amount": "",
"tax_rate": "16%",
"tax_unit_price": "",
"traffic_date_end": "",
"traffic_date_start": "",
"type": "",
"unit": "包",
"net_value": "152.58620689655172"
},
{
"detail_amount": "610.34",
"detail_no": "6",
"expense_item": "",
"goods_name": "*医药*Z350XT 7032A3 流动树脂",
"num": "4",
"plate_no": "",
"standard": "一包有两小支,每支2g",
"all_tax": "97.66",
"tax_detail_amount": "",
"tax_rate": "16%",
"tax_unit_price": "",
"traffic_date_end": "",
"traffic_date_start": "",
"type": "",
"unit": "包",
"net_value": "152.58620689655172"
}
]
}
}
}
错误码说明
错误码 | 描述 |
---|---|
40101 | x-ti-app-id 或 x-ti-secret-code 为空 |
40102 | x-ti-app-id 或 x-ti-secret-code 无效,验证失败 |
40103 | 客户端IP不在白名单 |
40003 | 余额不足,请充值后再使用 |
40004 | 参数错误,请查看技术文档,检查传参 |
40007 | 机器人不存在或未发布 |
40008 | 机器人未开通,请至市场开通后重试 |
40301 | 图片类型不支持 |
40302 | 上传文件大小不符,文件大小不超过 10M |
40303 | 文件类型不支持 |
40304 | 图片尺寸不符,图像宽高须介于 20 和 10000(像素)之间 |
40305 | 识别文件未上传 |
30203 | 基础服务故障,请稍后重试 |
500 | 服务器内部错误 |