发票查验
接口描述
支持多种发票的信息核验。
tip
- 可查验最近5年内增值税发票管理系统开具的发票,当日开具的发票建议次日进行查验
- 区块链发票支持深圳地区、北京地区、云南地区区块链发票,深圳使用密码区查验支持查验最近两年的发票,使用校验码支持查验全部
- 财政、非税票据最早可查验截止当前日期一年内的票据
请求方式
POST
请求地址
https://qst.imfbp.com/apihub/api
URL 参数
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| Action | String | 是 | 操作的接口名称,本接口取值:VatInvoiceVerify。 |
Header 参数
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| Timestamp | String | 是 | 公共参数。 |
| SecretId | String | 是 | 公共参数。 |
| Signature | String | 是 | 公共参数。 |
| Algorithm | String | 否 | 公共参数。 |
| Content-Type | String | 是 | 取值:application/json |
Body 请求参数
增值税普通发票
增值税普通发票、增值税电子普通发票、增值税普通发票(卷票)、增值税电子普通发票(通行费)、增值税普通发票(成品油)、增值税电子普通发票(成品油)、成品油普通发票(卷式)
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceCode | String | 是 | 发票代码。查验未成功超过5次后当日无法再查。 |
| invoiceNum | String | 是 | 发票号码,8位 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| checkCode | String | 是 | 校验码,后 6 位 (数电普纸票,使用数电票号码,后 6 位) |
| invoiceType | String | 是 | 增值税普通发票:0 增值税普通发票(成品油):20 增值税电子普通发票:2 增值税电子普通发票(通行费):17 增值税电子普通发票(成品油):19 增值税普通发票(卷票):12 成品油普通发票(卷式):22 |
| taxpayerNumber | String | 否 | 纳税人识别号 |
增值税专用发票
增值税专用发票、增值税电子专用发票、增值税专用发票(成品油)
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceCode | String | 是 | 发票代码。查验未成功超过5次后当日无法再查。 |
| invoiceNum | String | 是 | 发票号码,8位 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| totalAmount | String | 是 | 不含税金额 (税前金额) |
| invoiceType | String | 是 | 增值税专用发票:1 增值税专用发票(成品油):21 增值税电子专用发票:3 |
| taxpayerNumber | String | 否 | 纳税人识别号 |
机动车/二手车 销售统一发票
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceCode | String | 是 | 发票代码。查验未成功超过5次后当日无法再查。 |
| invoiceNum | String | 是 | 发票号码,8位 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| totalAmount | String | 是 | 机动车的不含税金额 (税前金额),二手车的总价金额 |
| invoiceType | String | 是 | 机动车销售统一发票:13 二手车销售统一发票:14 |
| taxpayerNumber | String | 否 | 纳税人识别号 |
区块链发票
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceCode | String | 是 | 发票代码。查验未成功超过5次后当日无法再查。 |
| invoiceNum | String | 是 | 发票号码,8位 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| area | String | 是 | 地区,可选参数:SHEN_ZHEN, BEI_JING, YUN_NAN |
| invoiceType | String | 是 | 区块链电子发票:26 |
| checkCode | String | 否 | 校验码,6 位 深圳的区块链,密码区和校验码不能都为空 北京的区块链,校验码不能为空 |
| password | String | 否 | 密码区,只支持深圳的区块链 校验码和密码区选填 |
| sellerRegisterNum | String | 否 | 销售方纳税人识别号,深圳的区块链,使用校验码查验需必填,云南的区块链查验需必填,其他地区可为空 |
| amountInFigures | String | 否 | 价税合计,深圳的区块链使用密码区查验需必填 |
| taxpayerNumber | String | 否 | 纳税人识别号 |
数电发票
电子发票(普通发票)、电子发票(增值税专用发票)、电子发票(铁路电子客票)、电子发票(航空运输电子客票行程单)、电子发票(机动车销售统一发票)、电子发票(二手车销售统一发票)
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceNum | String | 是 | 发票号码,20位 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| amountInFigures | String | 是 | 价税合计 |
| invoiceType | String | 是 | 电子发票(增值税专用发票):24 电子发票(普通发票):25 电子发票(航空运输电子客票行程单):30 电子发票(铁路电子客票):31 电子发票(机动车销售统一发票):35 电子发票(二手车销售统一发票):36 |
| taxpayerNumber | String | 否 | 纳税人识别号 |
机打发票
广东通用机打发票(电子)、浙江通用(电子)发票
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceCode | String | 是 | 发票代码。查验未成功超过5次后当日无法再查。 |
| invoiceNum | String | 是 | 发票号码,8位 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| area | String | 是 | 地区,可选参数:GUANG_DONG, ZHE_JIANG |
| invoiceType | String | 是 | 通用机打(电子)发票:18 |
| sellerRegisterNum | String | 是 | 销售方纳税人识别号 |
| amountInFigures | String | 是 | 价税合计 |
| taxpayerNumber | String | 否 | 纳税人识别号 |
非税收入通用票据、医疗票据
| 参数名称 | 类型 | 必选 | 说明 |
|---|---|---|---|
| invoiceCode | String | 是 | 票据代码。8位,查验未成功超过5次后当日无法再查。 |
| invoiceNum | String | 是 | 票据号码。 |
| issueDate | String | 是 | 开票日期,格式为:yyyy年MM月dd日 |
| invoiceType | String | 是 | 非税收入通用票据:33、医疗门诊27,医疗住院28; |
| checkCode | String | 是 | 校验码,后 6 位 |
| amountInFigures | String | 是 | 金额 |
| useNewFinance | String | 否 | 是否返回医疗收费附加明细。 0:否 1:是。 |
返回参数
公共返回参数
| 参数名称 | 类型 | 说明 |
|---|---|---|
| code | Integer | 200 表示请求成功,其他参见错误码 |
| message | String | 错误提示信息 |
| startTime | long | 开始时间 |
| endTime | long | 结束时间 |
| callId | long | 调用记录主键 |
| data | Object | 识别结果 |
data 内容说明
| 参数名称 | 类型 | 说明 |
|---|---|---|
| startTime | long | 请求开始毫秒 |
| endTime | long | 请求结束毫秒 |
| invoiceList | [] | 发票具体信息,验真结果为真票是返回,否则不返回,具体参见票据识别结果 |
| invoiceValidationList | [] | 发票查验结果,验真结果为真票是返回,否则不返回 |
发票查验结果
| 参数名称 | 类型 | 说明 |
|---|---|---|
| invoiceNum | String | 发票号码 |
| invoiceCode | String | 发票代码 |
| invoiceTypeCode | Integer | 票据类型 |
| status | String | 发票状态:valid:正常,invalidated:已作废,reversed:红冲,reversed_half:部分红冲,reversed_all:全额红冲,reversing:红字发票待确认 区块链发票状态: invoiced:已开票,printed:已打印,received:已收票,reimbursed:已报销,reversed:已冲红,registered_exception:已登记异常,marked_destroyed:已标记销毁,marked_return:已回退 |
| verifyTimes | String | 查验次数 |
| district | String | 所属地区 |
错误码
若请求错误,服务器将返回的JSON文本包含以下参数:
- code:错误码。
- message:错误描述信息,帮助理解和解决发生的错误。
| 错误码 | 描述 |
|---|---|
| 10001 | 查验失败 |
| 10002 | 查无此票 |
| 10003 | 无效参数(发票代码,号码,开票日期等为空或者格式错误,发票类型为空,普票验证码为空,专票税前金额为空等不合法参数错误) |
| 10004 | 查验信息不一致,请检查发票号码、发票代码、开票日期、开票金额、以及校验码信息是否与票面一致(一般是专票未税金额不正确) |
| 10005 | 价税合计不能为空 |
| 10006 | 专票(税前金额)、机动车票(税前金额)、二手车票(总价)不能为空! |
| 10007 | 普票'校验码'不能为空! |
| 10008 | 发票类型不能为空! |
| 10100 | 不支持当天发票核验。 |
| 10101 | 当天查验同一张发票最多5次,已超过5次 |
| 10102 | 税务局网络异常,请稍后访问。 |
| 10103 | 深圳区块链的参数[校验码]和[密码区]不可同时为空 |
| 10104 | 深圳的区块链使用密码区查验时,价税合计不能为空 |
| 10105 | 深圳的区块链使用校验码查验时,销售方纳税人识别号不能为空 |
| 10106 | 机打发票的销售方纳税人识别号不可为空 |
| 10107 | 暂不支持的地区[area],现取值范围[GUANG_DONG, SHEN_ZHEN, BEI_JING, YUN_NAN, ZHE_JIANG] |
| 10108 | 暂不支持的发票类型[invoiceType],现取值范围['0','1','2','3','12','13','14'] |
| 10111 | 错误信息不固定 |
| 10112 | 查验发票张数超过限制 |
| 10113 | 查询发票不规范 |
| 4001 | 调用SDK权限校验不通过! |
| 4002 | 调用接口Action不能为空! |
| 4003 | API名称出错! |
| 4004 | SecretId不能为空! |
| 4005 | Timestamp不能为空! |
| 4006 | Signature不能为空! |
| 4007 | 用户没有调用当前API的权限! |
| 4008 | 签名不正确 |
| 4009 | 查询用户密钥为空,请联系管理员 |
| 4010 | 无当前接口权限 |
| 4011 | Timestamp与服务器接收到请求的时间相差不得超过五分钟 |
| 4012 | apicode不能为空! |
| 4013 | apicode未关联客户! |
| 5001 | 不支持的请求方式 |
| 6001 | 套餐包余量不足 |
| 6002 | 未开通访问此API套餐 |