前言
发片认证,简单来说,就是企业在采购货物或原材料后,如需将增值税发片上的进项税额用于抵扣,就需要把收到的发片录入税务系统,完成识别、确认、勾选等流程。这个完整操作过程,就是通常所说的发片认证,也可理解为进项发片认证或进项发片勾选认证。

如今,这一认证流程已经支持免插盘、多税号管理和集中批量处理。通俗地说,就是可以定时抓取企业名下的进项发片信息及认证状态,再统一完成批量勾选、汇总统计和确认操作,从而高效完成发片勾选认证工作。
API介绍
下面结合具体接口说明,看看如何通过 API 将进项发片认证流程真正落地。
进项发片勾选任务
请求说明
先来看调用该接口时需要传入哪些请求参数。
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
| nsrsbh | String | 是 | 企业纳税人识别号 |
| skssq | String | 是 | 税款所属期,格式 yyyyMM,必填。退税勾选及撤销退税勾选时,传当前月份 |
| gxlx | String | 是 | 勾选类型,1:抵扣,2:退税,3:代办退税,4:不抵扣,5:逾期,6:撤销抵扣,7:撤销不抵扣,8:撤销逾期,9:勾选抵扣(出口转内销),10:勾选不抵扣(出口转内销),11:撤销抵扣(出口转内销),12:勾选类型代码撤销不抵扣(出口转内销),13:撤销退税 |
| bdkyy | Integer | 否 | 不抵扣原因,当gxlx=4时不能为空,即勾选不抵扣时必须填写,1:用于非应税项目,2:用于免税项目,3:用于集体福利或者个人消费,4:非正常损失的,5:其他 |
| bdkyyms | String | 否 | 不抵扣原因描述,当gxlx=4并且bdkyy=5时必填 |
| list | String | 是 | 勾选发片列表,数组的JSON字符串,例:[{"fpdm": "3300222133","fphm": "36762501","qdfphm": "","zmbh": ""}],详见勾选发片列表 |
勾选发片列表
在 list 参数中,每一条发片记录的字段格式如下:
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
| fpdm | String | 是 | 发片代码,增值税发片、全电纸质发片必填 |
| fphm | Integer | 是 | 发片号码,增值税发片、全电纸质发片必填 |
| qdfphm | Integer | 是 | 全电发片号码(20位),为全电电子发片时必填,全电纸质发片可为空 |
| yxse | Integer | 否 | 有效税额,不填则默认使用税额 |
| zmbh | Integer | 否 | 出口转内销证明编号,出口转内销发片必填 |
返回样例
当接口调用成功后,会返回一个任务号,便于后续继续查询勾选结果。以下是返回示例:
{
"code": 200,//返回码,详见返回码说明
"msg": "成功",//返回码对应描述
"taskNo": "329903325198037812330158",//本次请求号
"data": {
"reqId": "509099847312345"//申请勾选 id,用于查询结果接口
}
}
进项发片勾选结果查询
提交发片勾选任务后,如果想确认是否处理成功,就需要通过该查询接口获取最终结果。
请求参数
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
| nsrsbh | String | 是 | 企业纳税人识别号 |
| reqId | String | 是 | 申请勾选 id,申请接口返回值 |
返回样例
查询结果中会返回每张发片的具体处理状态和详细信息,示例如下:
{
"msg": "成功",//返回码对应描述
"code": 200,//返回码,详见返回码说明
"taskNo": "724137130167701427733365",//本次请求号
"data": {
"list": [{
"fphm": "36762500",//发片号码
"qdfphm": "", //全电发片号码
"kprq": "", // 开票日期,格式 yyyyMMdd
"zmbh": "",//出口转内销证明编号
"gfsbh": "91330110MA2CC1X505",//购买方纳税人识别号
"fpdm": "3300222130",//发片代码
"code": "FprzBusinessVerification",//
"fplx": "01",//发片类型,具体见字段说明
"cljg": "2",//申请勾选的处理结果,具体见字段说明
"message": "无此票",//查询结果描述
"zt": "2",//状态,1:申请处理中,2:申请处理失败,3:申请处理完成
"gxsj": "", // 勾选时间,格式 yyyyMMdd
"gxzt": "0",//勾选状态,0未勾选 1已勾选
"gxlx": "", // 勾选类型,具体见字段说明
"je": 113.0, // 金额
"se": 13.0, // 税额
"yxse": 13.0, // 有效税额
"skssq": "", // 税款所属期,格式 yyyyMM
"yskssq": "", // 原税款所属期,格式 yyyyMM,针对历史已认证当期变异常的发片该字段有值,值为历史认证的所属期
"bdkyy": "",//不抵扣原因,1 用于非应税项目 2 用于免税项目 3 用于集体福利或者个人消费 4 非正常损失的 5 其他; 当gxlx=4时不为空
"bdkyyms": ""//不抵扣原因描述,1、2、3、4 字典描述 5 其他-自定义描述;当gxlx=4并且bdkyy=5时必传
}]
}
}
发片类型
下面整理接口中常见的发片类型代码,方便在对接进项发片认证 API 时进行字段对照。
| 类型 | 类型描述 |
|---|---|
| 01 | 增值税专用发片 |
| 03 | 机动车销售统一发片 |
| 04 | 增值税普通发片 |
| 08 | 增值税电子专用发片 |
| 10 | 增值税电子普通发片 |
| 17 | 海关缴款书 |
| 61 | 全电发片(航空运输电子客票行程单) |
| 83 | 全电发片(铁路电子客票) |
| 81 | 全电发片(增值税专用发片) |
| 82 | 全电发片(增值税普通发片) |
| 85 | 全电纸质发片(增值税专用发片) |
| 86 | 全电纸质发片(增值税普通发片) |
| 87 | 机动车销售电子统一发片 |
注:24、30、80 为出口转内销发片类型,61、81、82、83、85、86 为全电发片类型。
申请勾选的处理结果
在查询结果中,cljg 字段用于表示该张发片的处理结果,具体含义如下:
| 类型 | 类型描述 |
|---|---|
| 1 | 成功 |
| 2 | 无此票 |
| 3 | 该票异常无法认证 |
| 4 | 该票已经认证 |
| 5 | 不在可勾选范围内,可勾选[2017-01-01 至 当前税款所属期]的发片 |
| 6 | 该票已经申请认证 |
| 7 | 申请认证月份已过期 |
| 8 | 其它异常 |
| 9 | 认证类型错误 |
| 10 | 该票不可勾选为逾期 |
| 11 | 有效税额异常(有效税额大于实际税额) |
| 12 | 当期已锁定 |
| 13 | 该缴款书已申请核查 |
| 14 | 税额为零不可勾选 |
| 15 | 该票未到期 |
| 16 | 红票不能抵扣 |
| 17 | 发片未勾选(确认) |
| 18 | 取消操作不匹配 |
| 19 | 不抵扣原因为空或异常 |
| 20 | 该票未抵扣,无法撤销抵扣 |
勾选类型
最后,汇总所有发片勾选类型及对应代码,便于接口开发和业务配置时快速查阅:
| 类型 | 类型描述 |
|---|---|
| 1 | 抵扣 |
| 2 | 退税 |
| 3 | 代办退税 |
| 4 | 不抵扣 |
| 5 | 逾期 |
| 6 | 撤销抵扣 |
| 7 | 撤销不抵扣 |
| 8 | 撤销逾期 |
| 9 | 勾选抵扣(出口转内销) |
| 10 | 勾选不抵扣(出口转内销) |
| 11 | 撤销抵扣(出口转内销) |
| 12 | 勾选类型代码撤销不抵扣(出口转内销) |
| 13 | 撤销退税 |
