发票查验(备份)
<h3>接口描述</h3>
<ul>
<li>查验发票是否真实</li>
<li>支持增值税发票和全电发票</li>
<li>每张发票每天最多可查验5次</li>
</ul>
<h3>请求地址</h3>
<p><code>https://api.jumdata.com/invoice/validate</code></p>
<h3>请求方式</h3>
<ul>
<li>GET/POST</li>
</ul>
<h3>请求格式</h3>
<ul>
<li>x-www-form-urlencoded</li>
</ul>
<h3>请求参数</h3>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:400px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>String</td>
<td>是</td>
<td>服务商分配的唯一标识</td>
</tr>
<tr>
<td>timestamp</td>
<td>Long</td>
<td>是</td>
<td>当前时间戳</td>
</tr>
<tr>
<td>sign</td>
<td>String</td>
<td>是</td>
<td>签名,详见签名算法说明</td>
</tr>
<tr>
<td>fpdm</td>
<td>String</td>
<td>否</td>
<td>发票代码 【注意:除全电票外,其他必传】</td>
</tr>
<tr>
<td>fphm</td>
<td>String</td>
<td>是</td>
<td>发票号码</td>
</tr>
<tr>
<td>kprq</td>
<td>String</td>
<td>是</td>
<td>开票日期 格式YYYYMMDD</td>
</tr>
<tr>
<td>xym</td>
<td>String</td>
<td>否</td>
<td>校验码 除专票外 其他必填</td>
</tr>
<tr>
<td>bhsje</td>
<td>String</td>
<td>否</td>
<td>不含税金额 【注意:除普票外 其他必填。全电票传含税金额,其他发票传不含税金额】</td>
</tr>
</tbody>
</table>
<h3>签名算法说明</h3>
<p><code>sign = sha256(appId + appSecret + timestamp)</code></p>
<p>用服务商分配的 appId、服务商分配的 appSecret,当前时间时间戳 timestamp,按上述顺序拼接成字符串,再进行 sha256 哈希得到。如下:</p>
<pre><code class="language-java">String appId = &quot;xyzxy2121zxyz&quot;;
String timestamp = &quot;1555378976238&quot;;
String appSecret = &quot;efcefcef1121cefcefc1212121&quot;;
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h3>成功返回样例</h3>
<pre><code class="language-json">{
&quot;data&quot;: {
&quot;result&quot;: 1,//1 一致 计费; 2 不一致 计费; 3 识别不成功 不计费;
&quot;info&quot;: {//发票信息
&quot;salerName&quot;: &quot;&quot;,//销方名称
&quot;salerAccount&quot;:&quot;&quot;,//销方开户行及账号
&quot;blueInvoiceCode&quot;:&quot;&quot;,//蓝票发票代码
&quot;blueInvoiceNo&quot;:&quot;&quot;,//蓝票发票号码
&quot;idNo&quot;:&quot;&quot;,//购方身份证号/组织机(机动车发票)
&quot;vehicleType&quot;:&quot;&quot;,//车辆类型(机动车\二手车发票)
&quot;bandModel&quot;:&quot;&quot;,//厂牌型号(机动车\二手车发票)
&quot;produceArea&quot;:&quot;&quot;,//产地(机动车发票)
&quot;qualifiedNo&quot;:&quot;&quot;,//合格证号(机动车发票)
&quot;commodityInspectionNo&quot;:&quot;&quot;,//商检单号(机动车发票)
&quot;engineNo&quot;:&quot;&quot;,//商检单号(机动车发票)
&quot;vehicleIdentificationNo&quot;:&quot;&quot;,//车辆识别代号/车架号码(机动车发票)
&quot;certificateOfImport&quot;:&quot;&quot;,//进口证明书号(机动车发票)
&quot;taxAuthorityCode&quot;:&quot;&quot;,//主管税务机关代码(机动车发票)
&quot;taxPaymentCertificateNo&quot;:&quot;&quot;,//完税凭证号码(机动车发票)
&quot;limitedPeopleCount&quot;:&quot;&quot;,//限乘人数(机动车发票)
&quot;taxAuthorityName&quot;:&quot;&quot;,//主管税务机关名称(机动车发票)
&quot;tonnage&quot;:&quot;&quot;,//吨位(机动车发票)
&quot;taxRate&quot;:&quot;&quot;,//税率(机动车发票)
&quot;salerAddress&quot;:&quot;&quot;,//销方地址(机动车发票)
&quot;salerPhone&quot;:&quot;&quot;,//销方电话(机动车发票)
&quot;salerBankName&quot;:&quot;&quot;,//销方开户银行(机动车发票)
&quot;salerBankAccount&quot;:&quot;&quot;,//销方开户账号(机动车发票)
&quot;carrierName&quot;:&quot;&quot;,//承运人名称(货运发票)
&quot;carrierTaxNo&quot;:&quot;&quot;,//承运人识别号(货运发票)
&quot;draweeName&quot;:&quot;&quot;,//受票方名称(货运发票)
&quot;draweeTaxNo&quot;:&quot;&quot;,//受票方识别号(货运发票)
&quot;receiveName&quot;:&quot;&quot;,//收货人名称(货运发票)
&quot;receiveTaxNo&quot;:&quot;&quot;,//收货人识别号(货运发票)
&quot;consignorName&quot;:&quot;&quot;,//发货人名称(货运发票)
&quot;consignorTaxNo&quot;:&quot;&quot;,//发货人识别号(货运发票)
&quot;transportGoodsInfo&quot;:&quot;&quot;,//运输货物信息(货运发票)
&quot;throughAddress&quot;:&quot;&quot;,//起运地、经由、到达地(货运发票)
&quot;taxDiskNumber&quot;:&quot;&quot;,//税控盘号(货运发票)
&quot;carNumber&quot;:&quot;&quot;,//车种车号(货运发票)
&quot;vehicleTonnage&quot;:&quot;&quot;,//车船吨位(货运发票)
&quot;trafficFeeFlag&quot;:&quot;&quot;,//通行费发票 Y-可抵扣通行费 N-不可抵扣通行费
&quot;zeroTaxRateFlag&quot;:&quot;&quot;,//零税率标志(通行费发票) 非零税率 1:税率栏位显示“免税”,2:税率栏位显示“不征税”,3:零税率
&quot;licensePlate&quot;:&quot;&quot;,//车牌照号(二手车发票)
&quot;registrationNo&quot;:&quot;&quot;,//登记证号(二手车发票)
&quot;carPrice&quot;:&quot;&quot;,//车价合计(二手车发票)
&quot;transferredVehicleOffice&quot;:&quot;&quot;,//转入地车辆车管所名称
&quot;buyerUnitOrIndividual&quot;:&quot;&quot;,//买方单位/个人(二手车发票)
&quot;buyerUnitCodeOrIdNo&quot;:&quot;&quot;,//买方单位代码/身份证号(二手车发票)
&quot;buyerUnitOrIndividualAddress&quot;:&quot;&quot;,//买方单位/个人住址(二手车发票)
&quot;buyerPhone&quot;:&quot;&quot;,//买方电话(二手车发票)
&quot;sellerUnitOrIndividual&quot;:&quot;&quot;,//卖方单位/个人(二手车发票)
&quot;sellerUnitCodeOrIdNo&quot;:&quot;&quot;,//卖方单位代码/身份证号(二手车发票)
&quot;sellerUnitOrIndividualAddress&quot;:&quot;&quot;,//卖方单位/个人住址(二手车发票)
&quot;sellerPhone&quot;:&quot;&quot;,//卖方电话(二手车发票)
&quot;businessUnit&quot;:&quot;&quot;,//经营、拍卖单位(二手车发票)
&quot;businessUnitAddress&quot;:&quot;&quot;,//经营、拍卖单位地址(二手车发票)
&quot;businessUnitTaxNo&quot;:&quot;&quot;,//经营、拍卖单位纳税人识别号(二手车发票)
&quot;businessUnitBankAndAccount&quot;:&quot;&quot;,//开户银行及账号(二手车发票)
&quot;businessUnitPhone&quot;:&quot;&quot;,//经营、拍卖单位电话(二手车发票)
&quot;lemonMarket&quot;:&quot;&quot;,//二手车市场(二手车发票)
&quot;lemonMarketTaxNo&quot;:&quot;&quot;,//二手车市场纳税人识别号(二手车发票)
&quot;lemonMarketAddress&quot;:&quot;&quot;,//二手车市场地址(二手车发票)
&quot;lemonMarketBankAndAccount&quot;:&quot;&quot;,//二手车市场开户银行及账号(二手车发票)
&quot;lemonMarketPhone&quot;:&quot;&quot;,//二手车市场电话(二手车发票)
&quot;remark_b64&quot;: &quot;&quot;,//备注base64
&quot;invoiceAmount&quot;: &quot;0.00&quot;,//发票金额
&quot;remark&quot;: &quot;&quot;,//备注
&quot;payee&quot;: &quot;&quot;,//收款人
&quot;salerTaxNo&quot;: &quot;&quot;,//销方税号
&quot;invoiceType&quot;: &quot;01&quot;,//发票类型,详见发票类型
&quot;machineNo&quot;: &quot;&quot;,//机器编号
&quot;invoiceNo&quot;: &quot;&quot;,//发票号码
&quot;buyerAddressPhone&quot;: &quot;&quot;,//购方地址、电话
&quot;qdbz&quot;: &quot;0&quot;,//清单标记 0-没有清单,1-有清单
&quot;cancellationMark&quot;: &quot;0&quot;,// 作废标志 1-已作废 0-未作废
&quot;hcbz&quot;: &quot;0&quot;,//红冲标记 0-未红冲,1-已红冲
&quot;buyerTaxNo&quot;: &quot;&quot;,//购方税号
&quot;salerBankAccount&quot;: &quot;招商银行股份有限公司&quot;,//销方开户账号(机动车发票)
&quot;checkCount&quot;: 12,//查验次数
&quot;drawer&quot;: &quot;&quot;,//开票人
&quot;reviewer&quot;: &quot;&quot;,//复核人
&quot;invoiceDate&quot;: &quot;20211117&quot;,//开票日期 yyyMMdd
&quot;buyerName&quot;: &quot;&quot;,//购方名称
&quot;invoiceCode&quot;: &quot;&quot;,//发票代码
&quot;checkCode&quot;: &quot;&quot;,//校验码
&quot;totalAmount&quot;: &quot;1440&quot;,//价税合计
&quot;salerAddressPhone&quot;: &quot;浙江省杭州市余杭区余杭街道&quot;,//销方地址、电话
&quot;buyerAccount&quot;: &quot;&quot;,//购方开户行及账号
&quot;taxAmount&quot;: &quot;81.51&quot;,//发票税额
&quot;detailList&quot;: [//明细
{
&quot;unitPrice&quot;: &quot;1358&quot;,//不含税单价
&quot;taxRate&quot;: &quot;6.0&quot;,//税率
&quot;taxUnitPrice&quot;: &quot;&quot;,//含税单价
&quot;unit&quot;: &quot;&quot;,//计量单位
&quot;expenseItem&quot;:&quot;&quot;,//费用项目
&quot;plateNo&quot;:&quot;&quot;,//车牌号
&quot;type&quot;:&quot;&quot;,//类型(货运发票)
&quot;trafficDateStart&quot;:&quot;&quot;,//通行日期起(通行费发票)
&quot;trafficDateEnd&quot;:&quot;&quot;,//通行日起止(通行费发票)
&quot;specificationModel&quot;: &quot;&quot;,//规格型号
&quot;num&quot;: &quot;1&quot;,//数量
&quot;detailNo&quot;: &quot;1&quot;,//明细编号
&quot;detailAmount&quot;: &quot;1358.49&quot;,//金额
&quot;taxAmount&quot;: &quot;81.51&quot;,//税额
&quot;goodsName&quot;: &quot;*现代服务*技术服务费&quot;,//货物名称
&quot;flbm&quot;: &quot;&quot;,//发票编号
&quot;taxDetailAmount&quot;: &quot;&quot;//含税金额
}
]
}
},
&quot;msg&quot;: &quot;成功&quot;, //code对应的描述
&quot;code&quot;: 200, // 200 指接口调用成功,详见code返回码说明
&quot;taskNo&quot;: &quot;12552230716560623515&quot; // 本次唯一请求号
}
</code></pre>
<h3>核验不一致、识别不成功样例</h3>
<pre><code class="language-json">{
&quot;data&quot;: {
&quot;result&quot;: 3,//1 一致 计费; 2 不一致 不计费; 3 识别不成功 不计费;
&quot;message&quot;: &quot;超过该张发票当日查验次数(请于次日再次查验)!&quot; // 查验不成功,请重试。- 查验不一致! - 查无此票! - 超过该张发票当日查验次数(请于次日再次查验)!
},
&quot;msg&quot;: &quot;成功&quot;,
&quot;success&quot;: true,
&quot;code&quot;: 200,
&quot;taskNo&quot;: &quot;88135987557275078971&quot;,
&quot;charge&quot;: false
}</code></pre>
<h3>失败返回样例</h3>
<pre><code class="language-json">{
&quot;msg&quot;: &quot;发票编码不能为空&quot;,
&quot;code&quot;: 400
}</code></pre>
<h3>返回字段说明</h3>
<table>
<thead>
<tr>
<th>字段名</th>
<th><div style="width:400px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>返回码,详见返回码说明</td>
</tr>
<tr>
<td>msg</td>
<td>code对应的描述</td>
</tr>
<tr>
<td>charge</td>
<td>计费标志</td>
</tr>
<tr>
<td>taskNo</td>
<td>本次请求号</td>
</tr>
<tr>
<td>data</td>
<td>返回具体结果,详见成功返回样例</td>
</tr>
</tbody>
</table>
<h4>发票类型列表</h4>
<table>
<thead>
<tr>
<th>字段值</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>01</td>
<td>增值税专用发票</td>
</tr>
<tr>
<td>02</td>
<td>货运运输业增值税专用发票</td>
</tr>
<tr>
<td>03</td>
<td>机动车销售统一发票</td>
</tr>
<tr>
<td>04</td>
<td>增值税普通发票</td>
</tr>
<tr>
<td>08</td>
<td>增值税专用发票(电子)</td>
</tr>
<tr>
<td>09</td>
<td>全电发票</td>
</tr>
<tr>
<td>10</td>
<td>增值税普通发票(电子)</td>
</tr>
<tr>
<td>11</td>
<td>增值税普通发票(卷式)</td>
</tr>
<tr>
<td>14</td>
<td>通行费发票</td>
</tr>
<tr>
<td>15</td>
<td>二手车发票</td>
</tr>
</tbody>
</table>
<h4>code返回码说明</h4>
<table>
<thead>
<tr>
<th>code</th>
<th><div style="width:400px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>成功(计费)</td>
</tr>
<tr>
<td>400</td>
<td>参数错误</td>
</tr>
<tr>
<td>404</td>
<td>请求地址不正确</td>
</tr>
<tr>
<td>500</td>
<td>服务商维护,请稍候再试</td>
</tr>
<tr>
<td>601</td>
<td>接口未开通</td>
</tr>
<tr>
<td>602</td>
<td>账号停用</td>
</tr>
<tr>
<td>603</td>
<td>余额不足请充值</td>
</tr>
<tr>
<td>604</td>
<td>接口停用</td>
</tr>
<tr>
<td>606</td>
<td>调用超限,请稍候再试</td>
</tr>
<tr>
<td>607</td>
<td>ip不在白名单</td>
</tr>
<tr>
<td>609</td>
<td>请求过于频繁,请稍候再试</td>
</tr>
<tr>
<td>610</td>
<td>请求超时</td>
</tr>
<tr>
<td>999</td>
<td>其他,以实际返回为准</td>
</tr>
</tbody>
</table>
<h4>温馨提示</h4>
<table>
<thead>
<tr>
<th>code</th>
<th>说明</th>
<th>提示</th>
</tr>
</thead>
<tbody>
<tr>
<td>999</td>
<td>查验不成功,请重试</td>
<td>税务总局不稳定导致的,需重新调用下接口。</td>
</tr>
<tr>
<td>999</td>
<td>查无此票</td>
<td>1、发票不存在 <br> 2、已开发票没有上传到税局上去</td>
</tr>
<tr>
<td>999</td>
<td>超过该张发票当日查验次数(请于次日再次查验)</td>
<td>税局规定的每张发票一天只能调用5次,超过5次在查验就会提示此说明</td>
</tr>
</tbody>
</table>