发票开具-税盘
<p>[TOC]</p>
<p><a href="#使用流程">一、使用流程</a>
<a href="#接口调用方式">二.1、接口调用方式</a>
<a href="#接口清单">二.2、接口清单</a>
<a href="#专普票开具">1. 专普票开具</a>
<a href="#发票重新下载">1-1. 发票重新下载</a>
<a href="#机动车发票开具">2. 机动车发票开具</a>
<a href="#发票开具结果查询">3. 发票开具结果查询</a>
<a href="#发票作废">4. 发票作废</a>
<a href="#发票修复">5. 发票修复</a>
<a href="#发票库存查询">6. 发票库存查询</a>
<a href="#发票红字信息表申请">7. 发票红字信息表申请</a>
<a href="#发票红字信息表查询">8. 发票红字信息表查询</a>
<a href="#发票红字信息表撤销">9. 发票红字信息表撤销</a>
<a href="#抄税清卡">10. 抄税清卡</a>
<a href="#发票打印说明">三、发票打印说明</a>
<a href="#获取打印基本信息">1. 获取打印基本信息</a>
<a href="#发票打印">2. 发票打印</a></p>
<p><a name="使用流程"></a></p>
<h1>一、使用流程</h1>
<p>第一步:用户提供【企业税号、终端类型、所属省份、终端编号、复核人、收款人、开票人、地址电话、银行帐号】,用于绑定税盘,由聚美智数通过这个信息生成唯一spid [税盘id]
第二步:聚美智数提供发票开具接口配套伺服系统,用户安装
第三步:用户安装伺服系统的计算机,使用数据线连接税盘,打开伺服系统,关闭其他发票软件
第四步:通过生成的 spid [税盘id] ,拼装发票报文json ,调用发票开票接口即可</p>
<p><a name="接口调用方式"></a></p>
<h1>二、开票接口说明</h1>
<h2>接口调用方式</h2>
<h3>请求方式</h3>
<p>如接口没有单独说明,均为:<strong>POST</strong></p>
<h3>请求格式</h3>
<p>如接口没有单独说明,均为:<strong>application/x-www-form-urlencoded</strong></p>
<h3>请求参数</h3>
<p>请求参数包括公共参数和业务参数(业务参数见具体接口说明)
调用接口时,需要把<strong>公共参数</strong>和<strong>业务参数</strong>一并放在<strong>请求参数</strong>中提交</p>
<h4>公共参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</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>签名,详见<a href="#签名算法">签名算法说明</a></td>
</tr>
</tbody>
</table>
<p><a name="签名算法"></a></p>
<h4>签名算法说明</h4>
<pre><code>sign = sha256(appId + appSecret + timestamp)</code></pre>
<p>用服务商分配的 <strong>appId</strong>、服务商分配的 <strong>appSecret</strong>,当前时间戳(毫秒) <strong>timestamp</strong>,按上述顺序拼接成字符串,再进行 <strong>sha256</strong> 哈希得到。如下:</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>
<table>
<thead>
<tr>
<th>字段名</th>
<th><div style="width:420px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>返回码,详见:code返回码说明</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>返回具体结果,object类型,详见data返回字段描述</td>
</tr>
</tbody>
</table>
<p><a name="code返回码说明"></a></p>
<h3>code返回码说明</h3>
<table>
<thead>
<tr>
<th>code</th>
<th><div style="width:420px;">说明</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>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>
<p><a name="接口清单"></a></p>
<h2>接口清单</h2>
<p><a name="专普票开具"></a></p>
<h3>专普票开具</h3>
<h4>接口描述</h4>
<ul>
<li>专普电发票开具(含蓝字和红字发票)</li>
</ul>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/makeout</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>data</td>
<td>String</td>
<td>是</td>
<td>发票报文json,详见发票报文data说明</td>
</tr>
</tbody>
</table>
<h4>发票报文data说明</h4>
<h5>报文结构</h5>
<p>> 注:报文节点全大写</p>
<pre><code>[{
&quot;XTLSH&quot;: &quot;单据号&quot;,
&quot;KHMC&quot;: &quot;客户名称&quot;,
&quot;KHSH&quot;: &quot;税号&quot;,
&quot;KHDZ&quot;: &quot;地址&quot;,
&quot;KHKHYHZH&quot;: &quot;客户银行账号&quot;,
&quot;FPZL&quot;: &quot;发票种类&quot;,
&quot;BZ&quot;: &quot;备注&quot;,
&quot;KPR&quot;: &quot;开票人&quot;,
&quot;SKR&quot;: &quot;收款人&quot;,
&quot;FHR&quot;: &quot;复核人&quot;,
&quot;QYKHYHZH&quot;: &quot;企业开户银行账号&quot;,
&quot;QYDZDH&quot;: &quot;企业地址电话&quot;,
&quot;YFPHM&quot;: &quot;红冲原发票号&quot;,
&quot;XXBBH&quot;: &quot;信息表编号&quot;,
&quot;QDBZ&quot;: &quot;清单标志&quot;,
&quot;KHYJ&quot;: &quot;客户邮件&quot;,
&quot;KHSJ&quot;: &quot;客户手机号&quot;,
&quot;JDC&quot;: &quot;机动车标识&quot;,
&quot;DBTS&quot;: &quot;代办退税标识&quot;,
&quot;ITEM&quot;: [{
&quot;CPMC&quot;: &quot;产品名称1&quot;,
&quot;CPXH&quot;: &quot;产品型号&quot;,
&quot;CPDW&quot;: &quot;产品单位&quot;,
&quot;SL&quot;: &quot;税率&quot;,
&quot;CPSL&quot;: &quot;数量&quot;,
&quot;BHSJE&quot;: &quot;不含税金额&quot;,
&quot;SE&quot;: &quot;税额&quot;,
&quot;FLBM&quot;: &quot;分类编码&quot;,
&quot;XSYH&quot;: &quot;税率优惠&quot;,
&quot;KCJE&quot;:&quot;0&quot;
}, {
&quot;CPMC&quot;: &quot;产品名称2&quot;,
&quot;CPXH&quot;: &quot;产品型号&quot;,
&quot;CPDW&quot;: &quot;产品单位&quot;,
&quot;SL&quot;: &quot;税率&quot;,
&quot;CPSL&quot;: &quot;数量&quot;,
&quot;BHSJE&quot;: &quot;不含税金额&quot;,
&quot;SE&quot;: &quot;税额&quot;,
&quot;FLBM&quot;: &quot;分类编码&quot;,
&quot;XSYH&quot;: &quot;税率优惠&quot;,
&quot;KCJE&quot;:&quot;0&quot;
},... ]
},...
]
</code></pre>
<h5>字段说明</h5>
<table>
<thead>
<tr>
<th>字段</th>
<th>是否必需</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>XTLSH</td>
<td>是</td>
<td>单据号,由调用方自行生成,唯一。返回时会同样返回,便于匹配结果</td>
</tr>
<tr>
<td>KHMC</td>
<td>是</td>
<td>客户名称</td>
</tr>
<tr>
<td>KHSH</td>
<td>否</td>
<td>客户税号</td>
</tr>
<tr>
<td>KHDZ</td>
<td>否</td>
<td>客户地址</td>
</tr>
<tr>
<td>KHKHYHZH</td>
<td>否</td>
<td>开户银行账号</td>
</tr>
<tr>
<td>FPZL</td>
<td>是</td>
<td>发票种类 <br>- 004 纸质专票 <br>- 007 纸质普票 <br>- 020 全电专票 <br>- 021 全电普票 <br>- 026 电子普票 <br>- 028 电子专票</td>
</tr>
<tr>
<td>BZ</td>
<td>否</td>
<td>备注</td>
</tr>
<tr>
<td>KPR</td>
<td>否</td>
<td>开票人</td>
</tr>
<tr>
<td>SKR</td>
<td>否</td>
<td>收款人</td>
</tr>
<tr>
<td>FHR</td>
<td>否</td>
<td>复核人</td>
</tr>
<tr>
<td>QYKHYHZH</td>
<td>否</td>
<td>销方银行账号,注意:银行名称和账号之间使用空格分隔下</td>
</tr>
<tr>
<td>QYDZDH</td>
<td>否</td>
<td>销方地址电话,注意:地址和电话之间使用空格分隔下</td>
</tr>
<tr>
<td>YFPHM</td>
<td>条件是</td>
<td>原发票号(原发票代码+原发票号码) <br>红字发票必传,普票和电票必有<br>注:含(代码)总共18位或20位。</td>
</tr>
<tr>
<td>XXBBH</td>
<td>条件是</td>
<td>信息表编号 红字专票必传,普票电票不需要传</td>
</tr>
<tr>
<td>QDBZ</td>
<td>否</td>
<td>清单标志 默认为0</td>
</tr>
<tr>
<td>KHYJ</td>
<td>否</td>
<td>客户邮件 自动发邮件</td>
</tr>
<tr>
<td>KHSJ</td>
<td>否</td>
<td>客户手机</td>
</tr>
<tr>
<td>JDC</td>
<td>否</td>
<td>机动车标识 1为开具机动车专票</td>
</tr>
<tr>
<td>DBTS</td>
<td>否</td>
<td>代办退税标识 1为开具代办退税发票</td>
</tr>
<tr>
<td>ITEM</td>
<td>是</td>
<td>详见ITEM字段说明</td>
</tr>
</tbody>
</table>
<p>> 注:非必须节点,可以不带此节点</p>
<h5>ITEM字段说明</h5>
<table>
<thead>
<tr>
<th>字段</th>
<th>是否必需</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>CPMC</td>
<td>是</td>
<td>产品名称 如果是折扣行,必需与正数行一致的名称</td>
</tr>
<tr>
<td>CPXH</td>
<td>否</td>
<td>产品型号 如果是折扣行,此值为空</td>
</tr>
<tr>
<td>CPDW</td>
<td>否</td>
<td>产品单位 如果是折扣行,此值为空</td>
</tr>
<tr>
<td>SL</td>
<td>是</td>
<td>税率</td>
</tr>
<tr>
<td>CPSL</td>
<td>否</td>
<td>产品数量 红冲时为负,红冲时,不能有正数金额。</td>
</tr>
<tr>
<td>BHSJE</td>
<td>是</td>
<td>不含税金额 红冲时为负</td>
</tr>
<tr>
<td>SE</td>
<td>是</td>
<td>税额 红冲时为负</td>
</tr>
<tr>
<td>FLBM</td>
<td>是</td>
<td>分类编码 必需到未级编码</td>
</tr>
<tr>
<td>XSYH</td>
<td>否</td>
<td>税收优惠 有优惠1, 无优惠0 默认 0</td>
</tr>
<tr>
<td>KCJE</td>
<td>否</td>
<td>扣除金额 差额开票时有用</td>
</tr>
</tbody>
</table>
<p>> 注:非必须节点,可以不带此节点</p>
<h4>返回说明</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 200指接口调用成功,不表示发票开具成功,详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;successList&quot;: [{ // 成功列表
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;JQBH&quot;: &quot;&quot;, // 机器编号
&quot;FPDM&quot;: &quot;1233456789012&quot;, // 发票代码
&quot;FPHM&quot;: &quot;12345678&quot;, // 发票号码
&quot;KPRQ&quot;: &quot;2019-01-12t11:20:33&quot;, // 开票日期
&quot;SKM&quot;: &quot;密文&quot;, // 密文
&quot;JYM&quot;: &quot;校验码&quot;, // 校验码
&quot;EWM&quot;: &quot;二维码&quot;, // 二维码
&quot;URL&quot;: &quot;&quot;,// 电子发票下载网址【永久有效】
&quot;KPJG&quot;: &quot;&quot;,// 开票结果 1开票成功 0开票失败
&quot;KPFK&quot;: &quot;&quot;// 开票反馈信息
},...
],
&quot;errorList&quot;: [ // 失败列表
{
&quot;XTLSH&quot;: &quot;&quot;, // 单据号
&quot;ERRMSG&quot;: &quot;&quot; // 错误信息
},...
]}
}</code></pre>
<ul>
<li>当离线开票或税盘不在线时可能只是接口调用成功,此时需要关注下errorList这个值,此时有可能是部份成功,部份不成功。</li>
<li>唯一能确定开票成功开票的情况:successList列表中的发票号码字段,有值就直接获取successList 中的开票成功的发票详情信息。为空就需要通过调用 发票开具结果查询接口 获取开票成功的发票详情信息</li>
<li>
</li>
</ul>
<h5>开具成功示例</h5>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 200指接口调用成功,不表示发票开具成功,详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;successList&quot;: [{ // 成功列表
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;FPZL&quot;: &quot;&quot;, // 发票种类
&quot;FPDM&quot;: &quot;1233456789012&quot;, // 发票代码
&quot;FPHM&quot;: &quot;12345678&quot;, // 发票号码
&quot;KPRQ&quot;: &quot;2019-01-12t11:20:33&quot;, // 开票日期
&quot;JQBH&quot;: &quot;&quot;, // 机器编号
&quot;SKM&quot;: &quot;密文&quot;, // 密文
&quot;JYM&quot;: &quot;校验码&quot;, // 校验码
&quot;EWM&quot;: &quot;二维码&quot;, // 二维码
&quot;URL&quot;: &quot;&quot;,// 电子发票下载网址
&quot;KPJG&quot;: &quot;&quot;,// 开票结果 1开票成功 0开票失败
&quot;KPFK&quot;: &quot;&quot;// 开票反馈信息
},...
]
}</code></pre>
<h5>开具失败示例</h5>
<pre><code class="language-json">{
&quot;code&quot;: 999, //
&quot;msg&quot;: &quot;&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;errorList&quot;: [{
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;ERRMSG&quot;: &quot;&quot; // 错误信息
},...
]
}</code></pre>
<h5>接口调用失败示例</h5>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;税盘id不能为空&quot;
}</code></pre>
<hr />
<p><a name="发票重新下载"></a></p>
<h3>发票重新下载</h3>
<h4>接口描述</h4>
<ul>
<li>因网络抖动原因,个别发票PDF无法下载,该接口可重新下载</li>
</ul>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/makeout/pdf/reload</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>taskNo</td>
<td>String</td>
<td>是</td>
<td>发票开具接口返回的请求号</td>
</tr>
</tbody>
</table>
<h4>返回说明</h4>
<pre><code class="language-json">{
&quot;charge&quot;: false,//该接口不收费
&quot;code&quot;: 200,//详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;,//code对应的描述
&quot;taskNo&quot;: &quot;332844491207624722580105&quot;,//本次唯一请求号
&quot;data&quot;: {
&quot;result&quot;: true,//是否成功,true:成功,false:失败
&quot;message&quot;: &quot;成功&quot;,
&quot;url&quot;: &quot;https://xxxxxx.pdf&quot; //发票开具接口返回的链接
}
}
</code></pre>
<h4>失败示例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;taskNo不能为空!&quot;
}</code></pre>
<hr />
<p><a name="机动车发票开具"></a></p>
<h3>机动车发票开具</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/vehicle-makeout</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>data</td>
<td>String</td>
<td>是</td>
<td>发票报文json,详见发票报文data说明</td>
</tr>
</tbody>
</table>
<h4>发票报文data说明</h4>
<h5>报文结构</h5>
<p>> 注:报文节点全大写</p>
<pre><code>[
{
&quot;XTLSH&quot;: &quot;单据号&quot;,
&quot;KHMC&quot;: &quot;客户名称&quot;,
&quot;KHSH&quot;: &quot;税号&quot;,
&quot;ENGINENO&quot;: &quot;发动机号码&quot;,
&quot;MANUFACTURERNAME&quot;: &quot;生产企业名称&quot;,
&quot;ORIGINPLACE&quot;: &quot;产地&quot;,
&quot;PEOPLENO&quot;: &quot;限乘人数&quot;,
&quot;SELLERACCOUNT&quot;: &quot;销方账号&quot;,
&quot;SELLERADDRESS&quot;: &quot;销方地址&quot;,
&quot;SELLERBANK&quot;: &quot;销方银行&quot;,
&quot;SELLERPHONE&quot;: &quot;销方电话&quot;,
&quot;SL&quot;: &quot;税率&quot;,
&quot;VEHICLEKIND&quot;: &quot;车辆类型&quot;,
&quot;VEHICLENO&quot;: &quot;车辆识别代号/车架号码&quot;,
&quot;JSHJ&quot;: &quot;价税合计&quot;,
&quot;BRANDMODEL&quot;: &quot;厂牌型号&quot;,
&quot;COMMINSPECTIONNO&quot;: &quot;商检单号&quot;,
&quot;IDCARD&quot;: &quot;身份证号码/组织机构代码&quot;,
&quot;QUALITYCERTIFICATE&quot;: &quot;合格证号&quot;,
&quot;IMPCERTIFICATENO&quot;: &quot;进口证明书号&quot;,
&quot;TONNAGE&quot;: &quot;吨位&quot;,
&quot;KPR&quot;: &quot;开票人&quot;,
&quot;BZ&quot;: &quot;备注&quot;,
&quot;FLBM&quot;: &quot;分类编码&quot;,
&quot;LSLVBS&quot;: &quot;零税率标识&quot;,
&quot;XSYH&quot;: &quot;税收优惠&quot;,
&quot;YHSM&quot;: &quot;优惠说明&quot;,
&quot;JDCBLUEINVKJSJ&quot;: &quot;蓝字发票开具时间&quot;,
&quot;FPZT&quot;: &quot;发票状态&quot;,
&quot;YFPHM&quot;: &quot;原发票号&quot;,
&quot;JDCBZ&quot;: &quot;新版机动车标识&quot;
},
...
]</code></pre>
<h5>报文说明</h5>
<table>
<thead>
<tr>
<th>字段</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>XTLSH</td>
<td>系统流水号</td>
</tr>
<tr>
<td>KHMC</td>
<td>购买方名称</td>
</tr>
<tr>
<td>KHSH</td>
<td>购买方税号 <br>- 旧版票样含义:纳税人识别号,最长20位;<br>- 2021版票样含义:纳税人识别号/统一社会信用代码/身份证号码,最长22位</td>
</tr>
<tr>
<td>ENGINENO</td>
<td>发动机号码</td>
</tr>
<tr>
<td>MANUFACTURERNAME</td>
<td>生产企业名称</td>
</tr>
<tr>
<td>ORIGINPLACE</td>
<td>产地</td>
</tr>
<tr>
<td>PEOPLENO</td>
<td>限乘人数</td>
</tr>
<tr>
<td>SELLERACCOUNT</td>
<td>销货单位 账号</td>
</tr>
<tr>
<td>SELLERADDRESS</td>
<td>销货单位 地址</td>
</tr>
<tr>
<td>SELLERBANK</td>
<td>销货单位 开户银行</td>
</tr>
<tr>
<td>SELLERPHONE</td>
<td>销货单位 电话</td>
</tr>
<tr>
<td>SL</td>
<td>税率</td>
</tr>
<tr>
<td>VEHICLEKIND</td>
<td>车辆类型</td>
</tr>
<tr>
<td>VEHICLENO</td>
<td>车辆识别代号/车架号码</td>
</tr>
<tr>
<td>JSHJ</td>
<td>价税合计</td>
</tr>
<tr>
<td>BRANDMODEL</td>
<td>厂牌型号</td>
</tr>
<tr>
<td>COMMINSPECTIONNO</td>
<td>商检单号</td>
</tr>
<tr>
<td>IDCARD</td>
<td>身份证号码/组织机构代码 <br>- 旧版票样含义:身份证号码/组织机构代码,2022-01-01起停用。 <br>- 2021版票样含义:改版发票不再使用 2021-05-01 ~ 2021-12-31期间,旧版机动车发票仍可开具</td>
</tr>
<tr>
<td>QUALITYCERTIFICATE</td>
<td>合格证号</td>
</tr>
<tr>
<td>IMPCERTIFICATENO</td>
<td>进口证明书号</td>
</tr>
<tr>
<td>TONNAGE</td>
<td>吨位</td>
</tr>
<tr>
<td>KPR</td>
<td>开票人</td>
</tr>
<tr>
<td>BZ</td>
<td>备注</td>
</tr>
<tr>
<td>FLBM</td>
<td>分类编码</td>
</tr>
<tr>
<td>LSLVBS</td>
<td>零税率标识</td>
</tr>
<tr>
<td>XSYH</td>
<td>税收优惠</td>
</tr>
<tr>
<td>YHSM</td>
<td>优惠说明</td>
</tr>
<tr>
<td>JDCBLUEINVKJSJ</td>
<td>蓝字发票开具时间。开具机动车红字发票时,需要传入对应蓝字发票的开具时间</td>
</tr>
<tr>
<td>FPZT</td>
<td>发票状态 待审:0</td>
</tr>
<tr>
<td>YFPHM</td>
<td>原发票号</td>
</tr>
<tr>
<td>JDCBZ</td>
<td>新版机动车标识。 0:旧版,1:新版</td>
</tr>
</tbody>
</table>
<h4>返回说明</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 200指接口调用成功,不表示发票开具成功,详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;successList&quot;: [{ // 成功列表
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;JQBH&quot;: &quot;&quot;, // 机器编号
&quot;FPDM&quot;: &quot;1233456789012&quot;, // 发票代码
&quot;FPHM&quot;: &quot;12345678&quot;, // 发票号码
&quot;KPRQ&quot;: &quot;2019-01-12t11:20:33&quot;, // 开票日期
&quot;SKM&quot;: &quot;密文&quot;, // 密文
&quot;JYM&quot;: &quot;校验码&quot;, // 校验码
&quot;EWM&quot;: &quot;二维码&quot;, // 二维码
&quot;URL&quot;: &quot;&quot;,// 电子发票下载网址
&quot;KPJG&quot;: &quot;&quot;,// 开票结果 1开票成功 0开票失败
&quot;KPFK&quot;: &quot;&quot;// 开票反馈信息
},...
],
&quot;errorList&quot;: [ // 失败列表
{
&quot;XTLSH&quot;: &quot;&quot;, // 单据号
&quot;ERRMSG&quot;: &quot;&quot; // 错误信息
},...
]}
}</code></pre>
<ul>
<li>当离线开票或税盘不在线时可能只是接口调用成功,此时需要关注下errorList这个值,此时有可能是部份成功,部份不成功。</li>
<li>唯一能确定开票成功开票的情况:successList列表中的发票号码不是为空</li>
</ul>
<h5>开具成功示例</h5>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 200指接口调用成功,不表示发票开具成功,详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;successList&quot;: [{ // 成功列表
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;FPZL&quot;: &quot;&quot;, // 发票种类
&quot;FPDM&quot;: &quot;1233456789012&quot;, // 发票代码
&quot;FPHM&quot;: &quot;12345678&quot;, // 发票号码
&quot;KPRQ&quot;: &quot;2019-01-12t11:20:33&quot;, // 开票日期
&quot;JQBH&quot;: &quot;&quot;, // 机器编号
&quot;SKM&quot;: &quot;密文&quot;, // 密文
&quot;JYM&quot;: &quot;校验码&quot;, // 校验码
&quot;EWM&quot;: &quot;二维码&quot;, // 二维码
&quot;URL&quot;: &quot;&quot;,// 电子发票下载网址
&quot;KPJG&quot;: &quot;&quot;,// 开票结果 1开票成功 0开票失败
&quot;KPFK&quot;: &quot;&quot;// 开票反馈信息
},...
]
}</code></pre>
<h5>开具失败示例</h5>
<pre><code class="language-json">{
&quot;code&quot;: 999, //
&quot;msg&quot;: &quot;&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;errorList&quot;: [{
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;ERRMSG&quot;: &quot;&quot; // 错误信息
},...
]
}</code></pre>
<hr />
<p><a name="发票开具结果查询"></a></p>
<h3>发票开具结果查询</h3>
<h4>接口描述</h4>
<ul>
<li>查询发票开具结果</li>
</ul>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/makeout-result</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>fpzl</td>
<td>String</td>
<td>是</td>
<td>发票种类 <br>- 004 纸质专票 <br>- 007 纸质普票 <br>- 020 全电专票 <br>- 021 全电普票 <br>- 026 电子普票 <br>- 028 电子专票</td>
</tr>
<tr>
<td>xtlsh</td>
<td>String</td>
<td>是</td>
<td>单据号,即开具发票的传入的单据号</td>
</tr>
</tbody>
</table>
<h4>返回说明</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;XTLSH&quot;: &quot;001&quot;, // 单据号
&quot;FPHM&quot;: &quot;12345678&quot;, // 发票号码(18位或20位)包含发票代码 。18位:发票代码前10位,发票号码后8位;20位:发票代码前12,发票号码后8位
&quot;KPRQ&quot;: &quot;2021-11-12 00:00:00.000&quot;, // 开票日期
&quot;MW&quot;: &quot;[ODA0NDw2KjYwMD]&quot;, // 发票密文, 前后都有中括号
&quot;XYM&quot;: &quot;57408721592&quot;,//校验码
&quot;JQBH&quot;: &quot;66180&quot;, //机器编号
&quot;URL&quot;: &quot;574087215921.PDF&quot;,//发票下载地址
&quot;SJURL_OFD&quot;: &quot;xxxxx.OFD&quot;,//发票OFD下载地址
&quot;SJURL_XML&quot;: &quot;XXXXX.XML&quot;//xml电子发票下载地址
}
}
</code></pre>
<hr />
<p><a name="发票作废"></a></p>
<h3>发票作废</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/cancel</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>fpzl</td>
<td>String</td>
<td>是</td>
<td>发票种类 <br>- 004 纸质专票 <br>- 007 纸质普票 <br>- 020 全电专票 <br>- 021 全电普票 <br>- 026 电子普票 <br>- 028 电子专票</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>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;zfrq&quot;: &quot;001&quot;, // 作废日期
&quot;zfjg&quot;: &quot;12345678&quot;, // 作废结果
&quot;fkxx&quot;: &quot;2021-11-12 00:00:00.000&quot;, // 反馈信息
}
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;发票种类不能为空&quot;
}</code></pre>
<hr />
<p><a name="发票修复"></a></p>
<h3>发票修复</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/fix</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>xfyf</td>
<td>String</td>
<td>是</td>
<td>修复月份,格式YYYYMM</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;// 本次唯一请求号
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;修复月份不能为空&quot;
}</code></pre>
<hr />
<p><a name="发票库存查询"></a></p>
<h3>发票库存查询</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/inventory-query</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;:{
&quot;count&quot;: 2,
&quot;items&quot;: [{
&quot;fplxdm&quot;: &quot;007&quot;, // 发票类型代码
&quot;fpdm&quot;: &quot;123456789012&quot;, // 发票代码
&quot;qshm&quot;: &quot;12345678&quot;, // 发票起始号码
&quot;zzhm&quot;: &quot;12345688&quot;, // 发票终止号码
&quot;fpfs&quot;: 10, // 发票份数
&quot;syfs&quot;: 3, // 剩余份数
&quot;lgrq&quot;: &quot;20190130&quot;, // 领购日期
&quot;lgry&quot;: &quot;zhang&quot; // 领购人员
},...
]
}
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 201,
&quot;msg&quot;: &quot;未查询到库存数据&quot;
}</code></pre>
<hr />
<p><a name="发票红字信息表申请"></a></p>
<h3>发票红字信息表申请</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/deficit-apply</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>data</td>
<td>String</td>
<td>是</td>
<td>红字信息报文json,详见红字信息报文说明。注意:每次调用,只有一张红字申请单。</td>
</tr>
</tbody>
</table>
<h4>红字信息报文说明</h4>
<pre><code>{
&quot;fpdm&quot;: &quot;&quot;, // 原发票代码
&quot;fphm&quot;: &quot;&quot;, // 原发票号码
&quot;fpzl&quot;: &quot;&quot;, // 发票种类
&quot;sqlx&quot;: &quot;&quot;, // 申请类型:0-正常,1-逾期
&quot;dslbz&quot;: &quot;&quot;, // 多税率标志,如果是多税率,就空,如果不是多税率,就用实际税率
&quot;gfsh&quot;: &quot;443312345678901&quot;, // 购方税号
&quot;gfmc&quot;: &quot;XXX公司&quot;, // 购方名称
&quot;xfsh&quot;: &quot;335551234567890&quot;, // 销方税号
&quot;xfmc&quot;: &quot;AAA公司&quot;, // 销方名称
&quot;sqly&quot;: &quot;&quot;, // 申请理由 详见申请理由说明
&quot;zsfs&quot;: &quot;&quot;, // 征税方式:0-普通征税 2-差额征税
&quot;kprq&quot;: &quot;&quot;, // 原发票的开票日期 格式 YYYYMMDD
&quot;zhsl&quot;: &quot;&quot;, // 综合税率
&quot;fyxm&quot;: [ // 商品明细列表
{
&quot;spmc&quot;: &quot;苹果&quot;, // 商品名称
&quot;dj&quot;: 1.03, // 单价(是否含税根据HSBZ)
&quot;sl&quot;: 0.03, // 税率
&quot;spsl&quot;: 1, // 数量
&quot;je&quot;: 1.0, // 不含税金额
&quot;se&quot;: 0.03, // 税额
&quot;hsbz&quot;: 0, // 含税标记
&quot;dw&quot;: &quot;&quot;, // 计量单位
&quot;ggxh&quot;: &quot;&quot;, // 规格型号
&quot;spbm&quot;: &quot;222200000000022&quot;, // 分类编码
&quot;zxbm&quot;: &quot;01&quot;, // 产品代码
&quot;yhzcbs&quot;: 0, // 税收优惠
&quot;lslbs&quot;: 0, // 零税率标识
&quot;zzstsgl&quot;: &quot;&quot; // 优惠政策
},...
]
}</code></pre>
<h4>详见申请理由说明</h4>
<ul>
<li>
<p>购方申请
0: 已抵扣
7: 未抵扣无法认证
未抵扣税号认证不符
未抵扣代码号码认证不符
货物不属于增值税项目范围</p>
</li>
<li>销方申请
8: 开票有误购买方拒收
开票有误等原因尚未交付</li>
</ul>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;// 本次唯一请求号
&quot;data&quot;:{
&quot;sqdh&quot;: &quot;201901271234567890&quot;, // 申请单编号
&quot;xxbbh&quot;: &quot;123456789012&quot;, // 信息表编号
&quot;ztdm&quot;: &quot;TZD0000&quot;, // 信息表状态代码。TZD0000-非逾期;TZD1000:-逾期。这两个标识可以填开红票
&quot;ztms&quot;: &quot;审核通过&quot;, // 状态描述
}
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;申请报文不能为空&quot;
}</code></pre>
<hr />
<p><a name="发票红字信息表查询"></a></p>
<h3>发票红字信息表查询</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/deficit-query</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>qsrq</td>
<td>String</td>
<td>是</td>
<td>填开起始日期(YYYYMMDD)</td>
</tr>
<tr>
<td>jzrq</td>
<td>String</td>
<td>是</td>
<td>填开终止日期(YYYYMMDD)</td>
</tr>
<tr>
<td>xfsh</td>
<td>String</td>
<td>否</td>
<td>销方税号</td>
</tr>
<tr>
<td>gfsh</td>
<td>String</td>
<td>否</td>
<td>购方税号</td>
</tr>
<tr>
<td>xxbbh</td>
<td>String</td>
<td>否</td>
<td>信息表编号</td>
</tr>
<tr>
<td>pageNo</td>
<td>String</td>
<td>否</td>
<td>分页页码</td>
</tr>
<tr>
<td>pageSize</td>
<td>String</td>
<td>否</td>
<td>分页大小</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;// 本次唯一请求号
&quot;data&quot;:{
&quot;count&quot;: 2,
&quot;items&quot;: [{
&quot;sqdh&quot;: &quot;&quot;, // 申请单编号
&quot;xxbbh&quot;: &quot;&quot;, // 信息表编号
&quot;xxbzt&quot;: &quot;&quot;, // 信息表状态代码:TZD0000-非逾期;TZD1000-逾期。这两个标识可以填开红票
&quot;ztms&quot;: &quot;&quot;, // 信息表状态描述
&quot;xxblx&quot;: &quot;&quot;, // 信息表类型
&quot;fpzl&quot;: &quot;&quot;, // 发票种类
&quot;sqly&quot;: &quot;&quot;, // 申请理由 详见[发票红字信息表申请]中申请理由说明
&quot;fpdm&quot;: &quot;&quot;, // 原发票代码(购方已抵扣无需输入)
&quot;fphm&quot;: &quot;&quot;, // 原发票号码(购方已抵扣无需输入)
&quot;dslbz&quot;: 0, // 多税率标识:0: 一票一税率1: 一票多税率
&quot;tkrq&quot;: &quot;&quot;, // 填开日期
&quot;gfmc&quot;: &quot;&quot;, // 购货单位名称
&quot;gfsh&quot;: &quot;&quot;, // 购货单位税号
&quot;xfmc&quot;: &quot;&quot;, // 销货单位名称
&quot;xfsh&quot;: &quot;&quot;, // 销货单位税
&quot;hjje&quot;: &quot;&quot;, // 合计金额
&quot;hjse&quot;: &quot;&quot;, // 合计税额
&quot;zhsl&quot;: &quot;&quot;, // 综合税率
&quot;fyxm&quot;: [{ // 商品列表
&quot;spmc&quot;: &quot;&quot;, // 商品名称
&quot;spdj&quot;: 1.03, // 单价(是否含税根据HSBZ)
&quot;sl&quot;: 0.03, // 税率
&quot;spsl&quot;: 1, // 数量
&quot;je&quot;: 1.0, // 不含税金额
&quot;se&quot;: 0.03, // 税额
&quot;hsbz&quot;: 0, // 含税标记
&quot;dw&quot;: &quot;&quot;, // 计量单位
&quot;ggxh&quot;: &quot;&quot;, // 规格型号
&quot;spbm&quot;: &quot;222200000000022&quot;, // 分类编码
&quot;zxbm&quot;: &quot;01&quot;, // 产品代码
&quot;yhzcbs&quot;: 0, // 税收优惠
&quot;lslbs&quot;: 0, // 零税率标识
&quot;zzstsgl&quot;: &quot;&quot; // 优惠政策
}]
},
}
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 201,
&quot;msg&quot;: &quot;未查询到红字申请表信息&quot;
}</code></pre>
<hr />
<p><a name="发票红字信息表撤销"></a></p>
<h3>发票红字信息表撤销</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/invoice/deficit-cancel</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
<tr>
<td>fplxdm</td>
<td>String</td>
<td>是</td>
<td>发票类型代码</td>
</tr>
<tr>
<td>xxbbh</td>
<td>String</td>
<td>是</td>
<td>信息表编号</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;// 本次唯一请求号
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;信息表编号不能为空&quot;
}</code></pre>
<hr />
<p><a name="抄税清卡"></a></p>
<h3>抄税清卡</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/tax-plate/copy-tax-clear-card</code></p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>spid</td>
<td>String</td>
<td>是</td>
<td>税盘id,联系服务商获取</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;taskNo&quot;: &quot;69564903663951243279&quot;// 本次唯一请求号
&quot;data&quot;:{
&quot;CSXX&quot;: &quot;&quot;, // 抄税信息(也叫汇总上报信息)
&quot;QKXX&quot;: &quot;&quot;, // 清卡信息
}
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;code&quot;: 400,
&quot;msg&quot;: &quot;税盘id不能为空&quot;
}</code></pre>
<p><a name="发票打印说明"></a></p>
<h1>三、发票打印说明</h1>
<p><a name="获取打印基本信息"></a></p>
<h3>获取打印基本信息</h3>
<h4>请求地址</h4>
<p><code>http://127.0.0.1:829/</code></p>
<h4>请求格式</h4>
<p>Content-Type:application/json</p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>LX</td>
<td>String</td>
<td>是</td>
<td>固定值:PRINTINFO</td>
</tr>
<tr>
<td>DYLX</td>
<td>String</td>
<td>是</td>
<td>发票打印类型 0:发票;1:清单; 2:电子发票</td>
</tr>
<tr>
<td>FPZL</td>
<td>String</td>
<td>是</td>
<td>发票种类 004:纸质专票; 007:纸质普票</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;Result&quot;: &quot;1&quot;, //状态 0 失败 1 成功
&quot;Message&quot;: &quot;读取成功&quot;,//描述
&quot;PrintName&quot;: [ //打印机名称base字符串列表
&quot;T25lTm90ZSBmb3IgV2luZG93cyAxMA==&quot;,
&quot;TlBJRUYyNzM4IChIUCBMYXNlckpldCBNRlAgTTEzMnNudyk=&quot;,
&quot;SFAgTGFzZXJKZXQgTUZQIE0xMjktTTEzNA==&quot;
],
&quot;DEFAULT&quot;: &quot;TlBJRUYyNzM4IChIUCBMYXNlckpldCBNRlAgTTEzMnNudyk=&quot;, //默认打印机名称base字符串
&quot;TOP&quot;: &quot;0&quot;, //右偏移
&quot;LEFT&quot;: &quot;0&quot; //左偏移
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;Result&quot;: &quot;0&quot;,
&quot;Message&quot;: &quot;没有发票种类&quot;
}</code></pre>
<p><a name="发票打印"></a></p>
<h3>发票打印</h3>
<h4>请求地址</h4>
<p><code>http://127.0.0.1:829/</code></p>
<h4>请求格式</h4>
<p>Content-Type:application/json</p>
<h4>业务参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>必须</th>
<th><div style="width:420px;">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>LX</td>
<td>String</td>
<td>是</td>
<td>固定值:PRINT</td>
</tr>
<tr>
<td>DATA</td>
<td>String</td>
<td>是</td>
<td>获取发票列表或信息接口返回结果中的的 rows[0]的值,通过 base64 编码后的字符串,在放入中括号内。例如:[ewogIC.....gICAgICAgfQ==]</td>
</tr>
<tr>
<td>DYLX</td>
<td>String</td>
<td>是</td>
<td>发票打印类型 0:发票;1:清单; 2:电子发票</td>
</tr>
<tr>
<td>FPZL</td>
<td>String</td>
<td>是</td>
<td>发票种类 004:纸质专票; 007:纸质普票</td>
</tr>
<tr>
<td>PRINTNAME</td>
<td>String</td>
<td>是</td>
<td>打印机名称</td>
</tr>
<tr>
<td>LEFT</td>
<td>String</td>
<td>是</td>
<td>左偏移 例如:0</td>
</tr>
<tr>
<td>TOP</td>
<td>String</td>
<td>是</td>
<td>右偏移 例如:0</td>
</tr>
</tbody>
</table>
<h4>成功返回样例</h4>
<pre><code class="language-json">{
&quot;Result&quot;: &quot;1&quot;,
&quot;Message&quot;: &quot;打印完毕。&quot;
}</code></pre>
<h4>失败返回样例</h4>
<pre><code class="language-json">{
&quot;Result&quot;: &quot;0&quot;,
&quot;Message&quot;: &quot;执行错误&quot;,
&quot;DATA&quot;: []
}</code></pre>