發票核驗接口支持包括:增值稅專用發票、增值稅普通發票(折疊票)、增值稅普通發票(卷票)、增值稅電子普通發票(含收費公路通行費增值稅電子普通發票)、機動車銷售統一發票、二手車銷售統一發票多種類型發票核驗。您可以通過輸入發票的關鍵驗證字段,返回真實的票面信息,包括發票類型、發票代碼、發票號碼、作廢標志、開票日期、購方稅號及其他發票信息等。當天開具發票當日可查驗(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:VerifyVATInvoice | create | *全部資源 * |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
InvoiceCode | string | 否 | 發票代碼。數電發票(發票類型代碼為 31,32)時可為空(發票類型代碼見發票類型代碼說明)。 | 044032100311 |
InvoiceNo | string | 是 | 發票號碼。 | 66932410 |
InvoiceDate | string | 是 | 開票日期(日期格式為:YYYYMMDD)。 | 20220617 |
InvoiceSum | string | 否 | 發票類型代碼為 01,03,15,20,31,32 時必填:為 01,03,20 時填寫發票不含稅金額;為 15 時填寫發票車價合計;為 31,32 時填寫含稅金額;為區塊鏈發票(InvoiceKind=1)時填寫 不含稅金額。 其它類型可為空(詳見發票類型代碼說明)。 | 102 |
VerifyCode | string | 否 | 校驗碼,取后 6 位。發票類型代碼為 04,10,11,14 時必填,為區塊鏈發票(InvoiceKind=1)時必填,其他發票種類可為空(詳見發票類型代碼說明)。 | 980769 |
InvoiceKind | integer | 否 | 發票類型。用來區分是否為 區塊鏈發票。
| 0 |
- 發票類型代碼說明
發票類型代碼 | 發票類型說明 |
---|---|
01 | 增值稅專用發票 |
02 | 貨運運輸業增值稅專用發票 |
03 | 機動車銷售統一發票 |
04 | 增值稅普通發票 |
10 | 增值稅普通發票(電子) |
11 | 增值稅普通發票(卷式) |
14 | 增值稅普通發票(通行費) |
15 | 二手車銷售統一發票 |
20 | 增值稅電子專用發票 |
31 | 數電發票(增值稅專用發票) |
32 | 數電發票(增值稅普通發票) |
85 | 數電發票(紙質專用發票) |
86 | 數電發票(紙質普通發票) |
返回參數
- 返回結果字段描述
字段名稱 | 字段類型 | 描述 |
---|---|---|
code | string | 狀態碼 |
msg | string | 狀態信息 |
data | string | 發票信息(只有查驗成功,此字段才不為空) |
- 返回結果 data 字段描述(非區塊鏈發票)
序號 | 字段名稱 | 字段描述 | 字段類型 | 字段最大長度 | 是否一定返回 | 說明 |
---|---|---|---|---|---|---|
1 | invoiceType | 發票種類 | string | 2 | 是 | |
2 | invoiceCode | 發票代碼 | string | 20 | 是 | |
3 | invoiceNumber | 發票號碼 | string | 8 | 是 | |
4 | inspectionAmount | 查驗次數 | string | 100 | 否 | |
5 | salerName | 銷方名稱 | string | 100 | 否 | |
6 | salerTaxpayerNumber | 銷方稅號 | string | 20 | 否 | |
7 | salerAddressOrPhone | 銷方地址、電話 | string | 100 | 否 | |
8 | salerBankAndNumber | 銷方開戶行及賬號 | string | 100 | 否 | |
9 | purchaserTaxpayerNumber | 購方稅號 | string | 20 | 否 | |
10 | purchaserName | 購方名稱 | string | 100 | 否 | |
11 | purchaserAddressOrPhone | 購方地址、電話 | string | 100 | 否 | |
12 | purchaserBankAndNumber | 購方開戶行及賬號 | string | 100 | 否 | |
13 | invoiceDate | 開票日期 | string | 8 | 否 | 格式:yyyymmdd |
14 | invoiceMoney | 發票金額 | string | 20 | 否 | |
15 | allTax | 發票稅額 | string | 20 | 否 | |
16 | allValoremTax | 價稅合計 | string | 16 | 否 | |
17 | note | 備注 | string | 200 | 否 | |
18 | machineCode | 機器編號 | string | 20 | 否 | |
19 | checkCode | 校驗碼 | string | 20 | 否 | |
20 | blueInvoiceCode | 藍票發票代碼 | string | 12 | 否 | |
21 | blueInvoiceNo | 藍票發票號碼 | string | 8 | 否 | |
22 | invalidMark | 作廢標志 | string | 1 | 否 | N:未作廢,Y:已作廢,H:沖紅,7:部分沖紅,8:全額沖紅 |
23 | idCard | 購方身份證號/組織機構代碼 | string | 20 | 否 | 機動車、二手車發票返回該信息 |
24 | carType | 車輛類型 | string | 80 | 否 | 機動車、二手車發票返回該信息 |
25 | brandVersion | 廠牌型號 | string | 100 | 否 | 機動車、二手車發票返回該信息 |
26 | producingArea | 產地 | string | 80 | 否 | 機動車發票返回該信息 |
27 | licenseCode | 合格證號 | string | 100 | 否 | 機動車發票返回該信息 |
28 | inspectionNumber | 商檢單號 | string | 80 | 否 | 機動車發票返回該信息 |
29 | engineCode | 發動機號 | string | 120 | 否 | 機動車發票返回該信息 |
30 | carframeCode | 車輛識別代號/車架號碼 | string | 40 | 否 | 機動車、二手車發票返回該信息 |
31 | importLicense | 進口證明書號 | string | 80 | 否 | 機動車發票返回該信息 |
32 | taxUnitCode | 主管稅務機關代碼 | string | 11 | 否 | 機動車發票返回該信息 |
33 | afterTaxCode | 完稅憑證號碼 | string | 32 | 否 | 機動車發票返回該信息 |
34 | limitAmount | 限乘人數 | string | 40 | 否 | 機動車發票返回該信息 |
35 | taxUnitName | 主管稅務機關名稱 | string | 160 | 否 | 機動車發票返回該信息 |
36 | unit | 噸位 | string | 40 | 否 | 機動車發票返回該信息 |
37 | taxRate | 稅率 | string | 32 | 否 | 機動車發票返回該信息 |
38 | salerAddress | 銷方地址 | string | 160 | 否 | 機動車發票返回該信息 |
39 | salerPhone | 銷方電話 | string | 80 | 否 | 機動車發票返回該信息 |
40 | salerBankName | 銷方開戶銀行 | string | 160 | 否 | 機動車發票返回該信息 |
41 | salerBankAccount | 銷方開戶賬號 | string | 80 | 否 | 機動車發票返回該信息 |
42 | carrierName | 承運人名稱 | string | 20 | 否 | 貨物發票返回信息 |
43 | carrierTaxNo | 承運人識別號 | string | 80 | 否 | 貨物發票返回信息 |
44 | draweeName | 受票方名稱 | string | 20 | 否 | 貨物發票返回信息 |
45 | draweeTaxNo | 受票方識別號 | string | 80 | 否 | 貨物發票返回信息 |
46 | receiveName | 收貨人名稱 | string | 20 | 否 | 貨物發票返回信息 |
47 | receiveTaxNo | 收貨人識別號 | string | 80 | 否 | 貨物發票返回信息 |
48 | consignorName | 發貨人名稱 | string | 20 | 否 | 貨物發票返回信息 |
49 | consignorTaxNo | 發貨人識別號 | string | 80 | 否 | 貨物發票返回信息 |
50 | transportGoodsInfo | 運輸貨物信息 | string | 32 | 否 | 貨物發票返回信息 |
51 | throughAddress | 起運地、經由、到達地 | string | 32 | 否 | 貨物發票返回信息 |
52 | taxDiskNumber | 稅控盤號 | string | 32 | 否 | 貨物發票返回信息 |
53 | carTypeAndNumber | 車種車號 | string | 15 | 否 | 貨物發票返回信息 |
54 | vehicleTonnage | 車船噸位 | string | 200 | 否 | 貨物發票返回信息 |
55 | trafficFeeFlag | 通行費標準 | string | 2 | 否 | 通行費發票返回信息 Y:可抵扣通行費。N:不可抵扣通行費 |
56 | zeroTaxRateFlag | 零稅率標識 | string | 2 | 否 | 通行費發票返回信息為空表示非零稅率 1:稅率欄位顯示“免稅” 2:稅率欄位顯示“不征稅” 3:零稅率 |
57 | licensePlate | 車牌照號 | string | 100 | 否 | 二手車發票返回信息 |
58 | registrationNo | 登記證號 | string | 100 | 否 | 二手車發票返回信息 |
59 | carPrice | 車價合計 | string | 32 | 否 | 二手車發票返回信息 |
60 | transferredVehicleOffice | 轉入地車輛車管所名稱 | string | 240 | 否 | 二手車發票返回信息 |
61 | purchaserUnitOrIndividual | 買方單位/個人 | string | 240 | 否 | 二手車發票返回信息 |
62 | purchaserUnitcodeOrIdno | 買方單位代碼/身份證號 | string | 44 | 否 | 二手車發票返回信息 |
63 | purchaserUnitOrIndividualAddress | 買方單位/個人住址 | string | 240 | 否 | 二手車發票返回信息 |
64 | purchaserPhone | 買方電話 | string | 100 | 否 | 二手車發票返回信息 |
65 | sellerUnitOrIndividual | 賣方單位/個人 | string | 240 | 否 | 二手車發票返回信息 |
66 | sellerUnitCodeOrIdno | 賣方單位代碼/身份證號 | string | 44 | 否 | 二手車發票返回信息 |
67 | sellerUnitOrIndividualAddress | 賣方單位/個人住址 | string | 240 | 否 | 二手車發票返回信息 |
68 | sellerPhone | 賣方電話 | string | 100 | 否 | 二手車發票返回信息 |
69 | businessUnit | 經營、拍賣單位 | string | 240 | 否 | 二手車發票返回信息 |
70 | busmessUnitAddress | 經營、拍賣單位地址 | string | 240 | 否 | 二手車發票返回信息 |
71 | businessUnitTaxNo | 經營、拍賣單位納稅人識別號 | string | 44 | 否 | 二手車發票返回信息 |
72 | busmessUnitBankAndAccount | 開戶銀行及賬號 | string | 100 | 否 | 二手車發票返回信息 |
73 | busmessUnitPhone | 經營、拍賣單位電話 | string | 100 | 否 | 二手車發票返回信息 |
74 | lemonMarket | 二手車市場 | string | 240 | 否 | 二手車發票返回信息 |
75 | lemonMarketTaxNo | 二手車市場納稅人識別號 | string | 44 | 否 | 二手車發票返回信息 |
76 | lemonMarketAddress | 二手車市場地址 | string | 240 | 否 | 二手車發票返回信息 |
77 | lemonMarketBankAndAccount | 二手車市場開戶銀行及賬號 | string | 100 | 否 | 二手車發票返回信息 |
78 | lemonMarketPhone | 二手車市場電話 | string | 100 | 否 | 二手車發票返回信息 |
79 | cyjgxx | 驗真結果 | string | 100 | 否 | 驗真結果 |
- 返回結果 data 字段描述(區塊鏈發票)
序號 | 字段名稱 | 字段描述 | 字段類型 | 說明 |
---|---|---|---|---|
1 | invoiceCode | 發票代碼 | string | |
2 | invoiceNo | 發票號碼 | string | |
3 | checkCode | 校驗碼 | string | |
4 | billingDate | 開票日期 | string | |
5 | txHash | 交易哈希 | string | |
6 | amount | 不含稅總金額 | string | |
7 | totalAmount | 含稅總金額 | string | |
8 | taxAmount | 稅額 | string | |
9 | sellerName | 銷方名稱 | string | |
10 | sellerTaxpayerId | 銷方納稅人識別號 | string | |
11 | sellerAddress | 銷方地址 | string | |
12 | sellerPhone | 銷方電話 | string | |
13 | sellerBankInfo | 銷方開戶銀行名稱 | string | |
14 | buyerAddress | 購方地址 | string | |
15 | buyerPhone | 購方電話 | string | |
16 | buyerName | 購方名稱 | string | |
17 | sellerBankAccount | 銷方開戶銀行賬號 | string | |
18 | buyerTaxpayerId | 購方納稅人識別號 | string | |
19 | buyerType | 購買方類型 | string | |
20 | status | 發票狀態 | string | 0:正常,1:失控,2:作廢,3:紅沖,4:異常 |
21 | checkedBy | 復核人 | string | |
22 | reviewedBy | 審核人 | string | |
23 | remark | 開票備注 | string | |
24 | drawer | 開票人 | string | |
25 | time | 開票時間 | string | |
26 | platformCode | 平臺編碼 | string | |
27 | platformName | 平臺名稱 | string | |
28 | orderId | 訂單流水號 | string | |
29 | payId | 支付流水號 | string | |
30 | digitPaymentSign | 電子支付標識 | string | |
31 | invalidMark | 是否作廢 | string | |
32 | item | 發票明細集合 | 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 |
- 返回結果 detailList 字段描述
序號 | 字段名稱 | 字段描述 | 字段類型 | 說明 |
---|---|---|---|---|
1 | detailNo | 明細編號 | string | |
2 | goodsName | 貨物名稱 | string | |
3 | detailAmount | 金額 | string | |
4 | num | 數量 | string | |
5 | taxRate | 稅率 | string | |
6 | allTax | 稅額 | string | |
7 | taxUnitPrice | 含稅單價 | string | |
8 | taxDetailAmount | 含稅金額 | string | |
9 | netValue | 不含稅單價 | string | |
10 | standard | 規格型號 | string | |
11 | unit | 計量單位 | string | |
12 | expenseItem | 費用項目 | string | 貨物發票返回信息 |
13 | plate_no | 車牌號 | string | 通行費發票返回信息 |
14 | type | 類型 | string | 通行費發票返回信息 |
15 | trafficDateStart | 通行日期起 | string | 通行費發票返回信息 |
16 | trafficDateEnd | 通行日期止 | string | 通行費發票返回信息 |
17 | taxClassifyCode | 稅收分類編碼 | string | |
18 | rowNo | 行號 | string |
- code(狀態碼)和 msg(狀態信息)對應關系,以及是否計費說明
code | msg | 是否計費 |
---|---|---|
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 | 錯誤碼 | 錯誤信息 |
---|---|---|
503 | ServiceUnavailable | The request has failed due to a temporary failure of the server |
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2024-03-15 | OpenAPI 錯誤碼發生變更、OpenAPI 入參發生變更 | 查看變更詳情 |