文档中心
查看文档
示例代码
接入技术服务
发票验真
功能描述
支持增值税专用发票、增值税普通发票(折叠票)、增值税普通发票(卷票)、增值税电子普通发票(含收费公路通行费增值税电子普通发票)、机动车销售统一发票、二手车销售统一发票在线查验、铁路电子客发票、航空运输电子客票行程单发票,当天开具发票次日可查验。
请求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
提示:Request Body 为 JSON字符串。
| 字段 | 说明 |
|---|---|
| invoice_code | 非必填,发票代码,全电发票(发票类型代码为 31,32,51,61,83,84,87)时非必填,其他发票类型必填 |
| invoice_no | 必填,发票号码 |
| invoice_date | 必填,开票日期,形如20190203 |
| invoice_sum | 非必填,发票类型代码为 01,03,15,20,31,32,51,61,85,83,84,87时必填:为 01,03,20,85时填写发票不含税金额,为 15,84 时填写发票车价合计,为 31,32,51,61,83,87时填写含税金额。其它可为空 |
| verify_code | 非必填,机器验证码,取后六位,例如:发票上的校验码为43663064992194675523,接口传参传“675523”即可;发票类型代码为 04,10,11,14,86 时必填,发票类型代码为 86 时,填写密码区数电票号码后六位,其他发票种类可为空 |
支持验真的票种
| 发票类型代码 | 发票类型说明 |
|---|---|
| 01 | 增值税专用发票 |
| 02 | 货运运输业增值税专用发票 |
| 03 | 机动车销售统一发票 |
| 04 | 增值税普通发票 |
| 10 | 增值税普通发票(电子) |
| 11 | 增值税普通发票(卷式) |
| 14 | 增值税普通发票(通行费) |
| 15 | 二手车销售统一发票 |
| 20 | 增值税电子专用发票 |
| 31 | 电子发票(增值税专用发票) |
| 32 | 电子发票(增值税普通发票) |
| 51 | 电子发票(铁路电子客票) |
| 61 | 电子发票(航空运输电子客票行程单) |
| 85 | 全电发票(纸质专用发票) |
| 86 | 数电纸质发票(普通发票) |
| 83 | 电子发票(机动车销售统一发票) |
| 84 | 电子发票(二手车销售统一发票) |
| 87 | 电子发票-通行费发票 |
响应体说明(Response Data)
Content-Type:application/json
JSON结构说明如下:
说明:所有接口响应中均包含字段 x_request_id(string类型),作为请求的唯一标识。
| 字段 | 说明 |
|---|---|
| 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 | elecTicketNum | 电子客票号码 | String | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 80 | 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 | 否 | |
| 19 | documentNum | 证件号 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 20 | startTime | 出发时间 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 21 | kttz | 空调特征 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 22 | name | 姓名 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息、电子发票(航空运输电子客票行程单)返回信息 |
| 23 | elecTicketNum | 电子客票号 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 24 | carriage | 车厢 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 25 | xw | 席位 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 26 | xb | 席别 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 27 | trainNum | 车次 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 28 | startStation | 出发站 | string | 32 | 否 | 电子发票(铁路电子客票)、电子发票(航空运输电子客票行程单)返回信息 |
| 29 | endStation | 到达站 | string | 32 | 否 | 电子发票(铁路电子客票)、电子发票(航空运输电子客票行程单)返回信息 |
| 30 | businessType | 业务类型 0-售 1-退 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 31 | taxRate | 税率 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 32 | boardDate | 乘车日期 | string | 32 | 否 | 电子发票(铁路电子客票)返回信息 |
| 33 | carrierDate | 承运日期 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 34 | carrier | 承运人 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 35 | leg | 航段 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 36 | tickedLevel | 客票级别 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 37 | seatLevel | 座位等级 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 38 | flightTime | 起飞时间 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
| 39 | flightNumber | 航班号 | string | 32 | 否 | 电子发票(航空运输电子客票行程单)返回信息 |
验证状态码字段与扣费说明
| 返回码 | 说明 | 是否扣费 |
|---|---|---|
| 001 | 成功,验证为真 | 是 |
| 002 | 此发票今日查询次数已达上限(5次),请次日查询 | 否 |
| 005 | 请求不合法,请核对验真参数 | 否 |
| 006 | 发票信息不一致,请核对发票信息 | 是 |
| 009 | 查无此票,请核对发票信息 | 是 |
| 104 | 已超过最大查验量 | 否 |
| 105 | 查询发票不规范,请核对发票信息 | 否 |
| 106 | 查验异常,国税局/发票查验地区升级维护,请稍后重试 | 否 |
| 107 | 鉴权失败 | 否 |
| 108 | 参数不为空 | 否 |
| 109 | 参数长度不正确 | 否 |
| 110 | 参数"invoice_code"的格式或取值范围错误 | 否 |
| 111 | 参数"invoice_sum"的格式或取值范围错误 | 否 |
| 112 | 参数"verify_code"的格式或取值范围错误 | 否 |
| 113 | 参数"invoice_no"的格式或取值范围错误 | 否 |
| 114 | 校验码不正确,应为后六位 | 否 |
| 115 | 超过服务有效期限限制 | 否 |
| 116 | 此发票今日查询次数已达上限(5次),请次日查询 | 否 |
| 1005 | 请核对验真参数是否符合发票规范 | 是 |
| 1010 | 日期格式不正确(请检查日期是否符合格式YYYYMMDD) | 否 |
| 1011 | 请求参数不完整 | 否 |
| 1021 | 查验异常,国税局/发票查验地区升级维护,请稍后重试 | 否 |
| 10014 | 日期当天不能查验 | 否 |
| 10015 | 开票金额:不合法的格式 | 否 |
| 10016 | 检验码:不能为空 | 否 |
| 10017 | 超过五年的不能查验 | 否 |
| 10018 | 检验码:不合法的长度 | 否 |
| 10020 | 没有查验权限 | 否 |