文档

VerifyVATInvoice - 发票核验

更新时间:

发票核验接口支持包括:增值税专用发票、增值税普通发票(折叠票)、增值税普通发票(卷票)、增值税电子普通发票(含收费公路通行费增值税电子普通发票)、机动车销售统一发票、二手车销售统一发票多种类型发票核验。您可以通过输入发票的关键验证字段,返回真实的票面信息,包括发票类型、发票代码、发票号码、作废标志、开票日期、购方税号及其他发票信息等。当天开具发票当日可查验(T+0)。注意:可能有几小时到十几小时的延迟。

接口说明

如何开通/购买本服务

步骤概述
1开通 票证核验 服务。开通后您可享 50 次免费额度。
2购买发票核验资源包。您也可以不购买资源包,系统会通过“按量付费”方式按实际调用量自动扣款。
3可以参照调试页面提供的代码示例完成 API 接入开发。接入完成后,调用 API 获取识别结果。如果使用子账号调用接口,需要阿里云账号(主账号)对 RAM 账号进行授权。创建 RAM 用户的具体操作,请参考:创建 RAM 用户。文字识别服务提供一种系统授权策略,即 AliyunOCRFullAccess。具体授权操作,请参见在用户页面为 RAM 用户授权。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ocr:VerifyVATInvoiceWrite
  • 全部资源
    *

请求参数

名称类型必填描述示例值
InvoiceCodestring

发票代码。数电发票(发票类型代码为 31,32)时可为空(发票类型代码见发票类型代码说明)。

044032100311
InvoiceNostring

发票号码。

66932410
InvoiceDatestring

开票日期(日期格式为:YYYYMMDD)。

20220617
InvoiceSumstring

发票类型代码为 01,03,15,20,31,32 时必填:为 01,03,20 时填写发票不含税金额;为 15 时填写发票车价合计;为 31,32 时填写含税金额;为区块链发票(InvoiceKind=1)时填写 不含税金额。 其它类型可为空(详见发票类型代码说明)。

102
VerifyCodestring

机器验证码,取后 6 位。发票类型代码为 04,10,11,14 时必填,为区块链发票(InvoiceKind=1)时必填,其他发票种类可为空(详见发票类型代码说明)。

980769
InvoiceKindinteger

发票类型。用来区分是否为 区块链发票

  • InvoiceKind=0 或不填,表示 非区块链发票
  • InvoiceKind=1,表示 区块链发票。注意,如果核验区块链发票,则 InvoiceCodeInvoiceNumberInvoiceDateInvoiceSumVerifyCode 这 5 个入参均为必传参数。
0
  • 发票类型代码说明
发票类型代码发票类型说明
01增值税专用发票
02货运运输业增值税专用发票
03机动车销售统一发票
04增值税普通发票
10增值税普通发票(电子)
11增值税普通发票(卷式)
14增值税普通发票(通行费)
15二手车销售统一发票
20增值税电子专用发票
31数电发票(增值税专用发票)
32数电发票(增值税普通发票)
85数电发票(纸质专用发票)
86数电发票(纸质普通发票)

返回参数

名称类型描述示例值
object

Schema of Response

RequestIdstring

请求唯一 ID

43A29C77-405E-4CC0-BC55-EE694AD00655
Datastring

返回数据

{ "code": "001", "data": { "afterTaxCode": "", "allTax": "9.67", "allValoremTax": "332.00", "blueInvoiceCode": "", "blueInvoiceNo": "", "brandVersion": "", "businessUnit": "", "businessUnitTaxNo": "", "busmessUnitAddress": "", "busmessUnitBankAndAccount": "", "busmessUnitPhone": "", "carPrice": "", "carType": "", "carTypeAndNumber": "", "carframeCode": "", "carrierName": "", "carrierTaxNo": "", "checkCode": "07122942791187744XXXX", "code": "", "consignorName": "", "consignorTaxNo": "", "cyjgxx": "查验成功发票一致", "detailList": [ { "allTax": "9.67", "detailAmount": "322.33", "detailNo": "1", "expenseItem": "", "goodsName": "*餐饮服务*餐费", "netValue": "322.330097", "num": "1", "plate_no": "", "rowNo": "1", "standard": "", "taxClassifyCode": "0", "taxDetailAmount": "", "taxRate": "3", "taxUnitPrice": "", "trafficDateEnd": "", "trafficDateStart": "", "type": "", "unit": "" } ], "draweeName": "", "draweeTaxNo": "", "engineCode": "", "idCard": "", "importLicense": "", "inspectionAmount": "", "inspectionNumber": "", "invalidMark": "N", "invoiceCode": "01100180XXXX", "invoiceDate": "2018XXXX", "invoiceMoney": "322.XX", "invoiceNumber": "3531XXXX", "invoiceType": "10", "lemonMarket": "", "lemonMarketAddress": "", "lemonMarketBankAndAccount": "", "lemonMarketPhone": "", "lemonMarketTaxNo": "", "licenseCode": "", "licensePlate": "", "limitAmount": "", "machineCode": "49992273XXXX", "note": "机器编号:49992273XXXX", "producingArea": "", "purchaserAddressOrPhone": "杭州余杭区XXXX0571-8502XXXX", "purchaserBankAndNumber": "招商银行杭州高新支行571906593XXXXXX", "purchaserName": "XXXX软件有限公司", "purchaserPhone": "", "purchaserTaxpayerNumber": "913301007682XXXXXX", "purchaserUnitOrIndividual": "", "purchaserUnitOrIndividualAddress": "", "purchaserUnitcodeOrIdNo": "", "receiveName": "", "receiveTaxNo": "", "registrationNo": "", "salerAddress": "", "salerAddressOrPhone": "北京市海淀区XXX8211XXXX", "salerBankAccount": "中国银行海淀支行345456XXXXXX", "salerBankAndNumber": "中国银行海淀支行345456XXXXXX", "salerBankName": "", "salerName": "北京市XXX酒家", "salerPhone": "", "salerTaxpayerNumber": "911101081020XXXXXX", "sellerPhone": "", "sellerUnitCodeOrIdno": "", "sellerUnitOrIndividual": "北京市XXX酒家", "sellerUnitOrIndividualAddress": "", "taxDiskNumber": "", "taxRate": "", "taxUnitCode": "", "taxUnitName": "", "throughAddress": "", "trafficFeeFlag": "", "transferredVehicleOffice": "", "transportGoodsInfo": "", "unit": "", "vehicleTonnage": "", "zeroTaxRateFlag": "" }, "msg": "成功" }
  • 返回结果字段描述
字段名称字段类型描述
codestring状态码
msgstring状态信息
datastring发票信息(只有查验成功,此字段才不为空)
  • 返回结果 data 字段描述(非区块链发票)
序号字段名称字段描述字段类型字段最大长度是否一定返回说明
1invoiceType发票种类string2
2invoiceCode发票代码string20
3invoiceNumber发票号码string8
4inspectionAmount查验次数string100
5salerName销方名称string100
6salerTaxpayerNumber销方税号string20
7salerAddressOrPhone销方地址、电话string100
8salerBankAndNumber销方开户行及账号string100
9purchaserTaxpayerNumber购方税号string20
10purchaserName购方名称string100
11purchaserAddressOrPhone购方地址、电话string100
12purchaserBankAndNumber购方开户行及账号string100
13invoiceDate开票日期string8格式:yyyymmdd
14invoiceMoney发票金额string20
15allTax发票税额string20
16allValoremTax价税合计string16
17note备注string200
18machineCode机器编号string20
19checkCode校验码string20
20blueInvoiceCode蓝票发票代码string12
21blueInvoiceNo蓝票发票号码string8
22invalidMark作废标志string1N:未作废,Y:已作废,H:冲红,7:部分冲红,8:全额冲红
23idCard购方身份证号/组织机构代码string20机动车、二手车发票返回该信息
24carType车辆类型string80机动车、二手车发票返回该信息
25brandVersion厂牌型号string100机动车、二手车发票返回该信息
26producingArea产地string80机动车发票返回该信息
27licenseCode合格证号string100机动车发票返回该信息
28inspectionNumber商检单号string80机动车发票返回该信息
29engineCode发动机号string120机动车发票返回该信息
30carframeCode车辆识别代号/车架号码string40机动车、二手车发票返回该信息
31importLicense进口证明书号string80机动车发票返回该信息
32taxUnitCode主管税务机关代码string11机动车发票返回该信息
33afterTaxCode完税凭证号码string32机动车发票返回该信息
34limitAmount限乘人数string40机动车发票返回该信息
35taxUnitName主管税务机关名称string160机动车发票返回该信息
36unit吨位string40机动车发票返回该信息
37taxRate税率string32机动车发票返回该信息
38salerAddress销方地址string160机动车发票返回该信息
39salerPhone销方电话string80机动车发票返回该信息
40salerBankName销方开户银行string160机动车发票返回该信息
41salerBankAccount销方开户账号string80机动车发票返回该信息
42carrierName承运人名称string20货物发票返回信息
43carrierTaxNo承运人识别号string80货物发票返回信息
44draweeName受票方名称string20货物发票返回信息
45draweeTaxNo受票方识别号string80货物发票返回信息
46receiveName收货人名称string20货物发票返回信息
47receiveTaxNo收货人识别号string80货物发票返回信息
48consignorName发货人名称string20货物发票返回信息
49consignorTaxNo发货人识别号string80货物发票返回信息
50transportGoodsInfo运输货物信息string32货物发票返回信息
51throughAddress起运地、经由、到达地string32货物发票返回信息
52taxDiskNumber税控盘号string32货物发票返回信息
53carTypeAndNumber车种车号string15货物发票返回信息
54vehicleTonnage车船吨位string200货物发票返回信息
55trafficFeeFlag通行费标准string2通行费发票返回信息
Y:可抵扣通行费。N:不可抵扣通行费
56zeroTaxRateFlag零税率标识string2通行费发票返回信息为空表示非零税率
1:税率栏位显示“免税”
2:税率栏位显示“不征税”
3:零税率
57licensePlate车牌照号string100二手车发票返回信息
58registrationNo登记证号string100二手车发票返回信息
59carPrice车价合计string32二手车发票返回信息
60transferredVehicleOffice转入地车辆车管所名称string240二手车发票返回信息
61purchaserUnitOrIndividual买方单位/个人string240二手车发票返回信息
62purchaserUnitcodeOrIdno买方单位代码/身份证号string44二手车发票返回信息
63purchaserUnitOrIndividualAddress买方单位/个人住址string240二手车发票返回信息
64purchaserPhone买方电话string100二手车发票返回信息
65sellerUnitOrIndividual卖方单位/个人string240二手车发票返回信息
66sellerUnitCodeOrIdno卖方单位代码/身份证号string44二手车发票返回信息
67sellerUnitOrIndividualAddress卖方单位/个人住址string240二手车发票返回信息
68sellerPhone卖方电话string100二手车发票返回信息
69businessUnit经营、拍卖单位string240二手车发票返回信息
70busmessUnitAddress经营、拍卖单位地址string240二手车发票返回信息
71businessUnitTaxNo经营、拍卖单位纳税人识别号string44二手车发票返回信息
72busmessUnitBankAndAccount开户银行及账号string100二手车发票返回信息
73busmessUnitPhone经营、拍卖单位电话string100二手车发票返回信息
74lemonMarket二手车市场string240二手车发票返回信息
75lemonMarketTaxNo二手车市场纳税人识别号string44二手车发票返回信息
76lemonMarketAddress二手车市场地址string240二手车发票返回信息
77lemonMarketBankAndAccount二手车市场开户银行及账号string100二手车发票返回信息
78lemonMarketPhone二手车市场电话string100二手车发票返回信息
79cyjgxx验真结果string100验真结果
  • 返回结果 data 字段描述(区块链发票)
序号字段名称字段描述字段类型说明
1invoiceCode发票代码string
2invoiceNo发票号码string
3checkCode校验码string
4billingDate开票日期string
5txHash交易哈希string
6amount不含税总金额string
7totalAmount含税总金额string
8taxAmount税额string
9sellerName销方名称string
10sellerTaxpayerId销方纳税人识别号string
11sellerAddress销方地址string
12sellerPhone销方电话string
13sellerBankInfo销方开户银行名称string
14buyerAddress购方地址string
15buyerPhone购方电话string
16buyerName购方名称string
17sellerBankAccount销方开户银行账号string
18buyerTaxpayerId购方纳税人识别号string
19buyerType购买方类型string
20status发票状态string0:正常,1:失控,2:作废,3:红冲,4:异常
21checkedBy复核人string
22reviewedBy审核人string
23remark开票备注string
24drawer开票人string
25time开票时间string
26platformCode平台编码string
27platformName平台名称string
28orderId订单流水号string
29payId支付流水号string
30digitPaymentSign电子支付标识string
31invalidMark是否作废string
32item发票明细集合list(以下为 item 字段的说明)
1+code货物或应税劳务、服务编码string
2+name货物或应税劳务、服务名称string
3+subName商品名称string
4+specModel规格型号string
5+unit计量单位string
6+count数量string
7+unitPrice单价string
8+amount金额string
9+taxFlag含税标记string
10+taxRate税率string
11+taxAmount税额string
12+taxPreferMark是否享受税收优惠标识string
13+taxPreferDescrip享受税收优惠的具体说明string
14+zeroTaxRateMark零税率标识string
15+deduction差额开票时,从总额中扣除的金额string
  • code(状态码)和 msg(状态信息)对应关系,以及是否计费说明
codemsg是否计费
001成功
002超过该张票当天查验次数
005请求不合法
006发票信息不一致
009所查发票不存在
104已超过最大查验量
105查询发票不规范。可能是以下原因导致:
  • 接口参数传入不完整或错误。
  • 发票类型不支持(例如区块链发票)。
  • 发票不是真实有效的。
106查验异常
108参数不为空
109参数长度不正确
110参数"InvoiceCode"的格式或取值范围错误
111参数"InvoiceSum"的格式或取值范围错误
112参数"VerifyCode"的格式或取值范围错误
113参数"InvoiceNo"的格式或取值范围错误
114校验码不正确,应为后六位
115超过服务有效期限限制
1005请核对四要素是否符合发票规范
1010日期格式不正确(请检查日期是否符合格式 YYYYMMDD)
1011请求参数不完整
1021网络超时,税局升级维护
10014日期当天不能查验
10015开票金额:不合法的格式
10016检验码:不能为空
10017超过五年的不能查验
10018检验码:不合法的长度
10020没有查验权限
000000成功
000001查询无数据
101000系统异常
111000参数不能为空
111001参数格式不正确
121000内部处理失败
121001内部处理限流
121002内部处理超时
131002接口无权限
131003接口调用次数过限
131004接口已到期
131005接口调用频率过高
152000超过用户 QPS 调用阈值
171000数据源业务异常

示例

正常返回示例

JSON格式

{
  "RequestId": "43A29C77-405E-4CC0-BC55-EE694AD00655",
  "Data": "{\n      \"code\": \"001\",\n      \"data\": {\n            \"afterTaxCode\": \"\",\n            \"allTax\": \"9.67\",\n            \"allValoremTax\": \"332.00\",\n            \"blueInvoiceCode\": \"\",\n            \"blueInvoiceNo\": \"\",\n            \"brandVersion\": \"\",\n            \"businessUnit\": \"\",\n            \"businessUnitTaxNo\": \"\",\n            \"busmessUnitAddress\": \"\",\n            \"busmessUnitBankAndAccount\": \"\",\n            \"busmessUnitPhone\": \"\",\n            \"carPrice\": \"\",\n            \"carType\": \"\",\n            \"carTypeAndNumber\": \"\",\n            \"carframeCode\": \"\",\n            \"carrierName\": \"\",\n            \"carrierTaxNo\": \"\",\n            \"checkCode\": \"07122942791187744XXXX\",\n            \"code\": \"\",\n            \"consignorName\": \"\",\n            \"consignorTaxNo\": \"\",\n            \"cyjgxx\": \"查验成功发票一致\",\n            \"detailList\": [\n                  {\n                        \"allTax\": \"9.67\",\n                        \"detailAmount\": \"322.33\",\n                        \"detailNo\": \"1\",\n                        \"expenseItem\": \"\",\n                        \"goodsName\": \"*餐饮服务*餐费\",\n                        \"netValue\": \"322.330097\",\n                        \"num\": \"1\",\n                        \"plate_no\": \"\",\n                        \"rowNo\": \"1\",\n                        \"standard\": \"\",\n                        \"taxClassifyCode\": \"0\",\n                        \"taxDetailAmount\": \"\",\n                        \"taxRate\": \"3\",\n                        \"taxUnitPrice\": \"\",\n                        \"trafficDateEnd\": \"\",\n                        \"trafficDateStart\": \"\",\n                        \"type\": \"\",\n                        \"unit\": \"\"\n                  }\n            ],\n            \"draweeName\": \"\",\n            \"draweeTaxNo\": \"\",\n            \"engineCode\": \"\",\n            \"idCard\": \"\",\n            \"importLicense\": \"\",\n            \"inspectionAmount\": \"\",\n            \"inspectionNumber\": \"\",\n            \"invalidMark\": \"N\",\n            \"invoiceCode\": \"01100180XXXX\",\n            \"invoiceDate\": \"2018XXXX\",\n            \"invoiceMoney\": \"322.XX\",\n            \"invoiceNumber\": \"3531XXXX\",\n            \"invoiceType\": \"10\",\n            \"lemonMarket\": \"\",\n            \"lemonMarketAddress\": \"\",\n            \"lemonMarketBankAndAccount\": \"\",\n            \"lemonMarketPhone\": \"\",\n            \"lemonMarketTaxNo\": \"\",\n            \"licenseCode\": \"\",\n            \"licensePlate\": \"\",\n            \"limitAmount\": \"\",\n            \"machineCode\": \"49992273XXXX\",\n            \"note\": \"机器编号:49992273XXXX\",\n            \"producingArea\": \"\",\n            \"purchaserAddressOrPhone\": \"杭州余杭区XXXX0571-8502XXXX\",\n            \"purchaserBankAndNumber\": \"招商银行杭州高新支行571906593XXXXXX\",\n            \"purchaserName\": \"XXXX软件有限公司\",\n            \"purchaserPhone\": \"\",\n            \"purchaserTaxpayerNumber\": \"913301007682XXXXXX\",\n            \"purchaserUnitOrIndividual\": \"\",\n            \"purchaserUnitOrIndividualAddress\": \"\",\n            \"purchaserUnitcodeOrIdNo\": \"\",\n            \"receiveName\": \"\",\n            \"receiveTaxNo\": \"\",\n            \"registrationNo\": \"\",\n            \"salerAddress\": \"\",\n            \"salerAddressOrPhone\": \"北京市海淀区XXX8211XXXX\",\n            \"salerBankAccount\": \"中国银行海淀支行345456XXXXXX\",\n            \"salerBankAndNumber\": \"中国银行海淀支行345456XXXXXX\",\n            \"salerBankName\": \"\",\n            \"salerName\": \"北京市XXX酒家\",\n            \"salerPhone\": \"\",\n            \"salerTaxpayerNumber\": \"911101081020XXXXXX\",\n            \"sellerPhone\": \"\",\n            \"sellerUnitCodeOrIdno\": \"\",\n            \"sellerUnitOrIndividual\": \"北京市XXX酒家\",\n            \"sellerUnitOrIndividualAddress\": \"\",\n            \"taxDiskNumber\": \"\",\n            \"taxRate\": \"\",\n            \"taxUnitCode\": \"\",\n            \"taxUnitName\": \"\",\n            \"throughAddress\": \"\",\n            \"trafficFeeFlag\": \"\",\n            \"transferredVehicleOffice\": \"\",\n            \"transportGoodsInfo\": \"\",\n            \"unit\": \"\",\n            \"vehicleTonnage\": \"\",\n            \"zeroTaxRateFlag\": \"\"\n      },\n      \"msg\": \"成功\"\n}"
}

错误码

HTTP status code错误码错误信息
503ServiceUnavailableThe request has failed due to a temporary failure of the server

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2024-03-15OpenAPI 错误码发生变更、OpenAPI 入参发生变更看变更集
变更项变更内容
错误码OpenAPI 错误码发生变更
    删除错误码:503
入参OpenAPI 入参发生变更
    新增入参:InvoiceKind
  • 本页导读 (0)