2.01.电子发票开具(czlx-110) ,【注】开数电票请对接:1.03.发票开具(czlx-3)
POST
/当前接口只能开电子发票,不区分税控设备是税盘还是ukey
1. 发票金额算法:
1.1 蓝票算法:
不含税金额(四舍五入,保留两位小数)= 含税金额/(1+税率)
税额= 含税金额-不含税金额
不含税总金额=各行不含税金额相加
总税额 = 价税合计-不含税总金额
最后一项税额 = 总税额-(前n项税额之和)
1.2 红票算法:
价税合计=取蓝票的价税合计
合计税额=取蓝票的合计税额
合计金额=取蓝票合计金额
2. 明细项:
不含税金额(四舍五入,保留两位小数)= 含税金额/(1+税率)
税额= 含税金额-不含税金额
最后一项不含税金额 = 合计金额-(前n项不含税金额之和)
最后一项税额 = 合计税额-(前n项税额之和)
3. 误差规则
单行商品明细 |单价×数量-金额|<=0.01 元
|不含税金额×税率-税额|<=0.06元
4. 发票开具校验注意事项
4.1 正数发票
正数发票合计金额>0 ;
价税合计=合计金额+合计税额;
开票合计金额 与 明细行所有金额加起来要一致;
开票合计税额 与 明细行所有税额加起来要一致;
除折扣行外,正数发票的商品行金额必须大于0 ;
正数发票每行商品行金额均不能为0,税额不能为负数 ;
折扣行金额不能大于被折扣行金额。多行折扣情况下,折扣行金额不能大于各被折扣行金额之和。
正数发票金额为负的商品行(即折扣行),其上一行商品金额必须为正。
单价和数量同时为空,或都不能为空 ;
金额、税额、数量、单价必须是合法数字 ;
折扣行税率必须与被折扣行税率相同。多行折扣情况下,各被折扣行税率相同,且与折扣行税率相同。
流水号可以不填(发票云会生成),如果业务需要自己生成的话,请注意不要与已开成功的发票重复,负责只会把该流水号对应的发票查询出来
4.2 负数发票
负数发票合计金额<0 ;
价税合计=合计金额+合计税额;
开票合计金额 与 明细行所有金额加起来要一致;
开票合计税额 与 明细行所有税额加起来要一致;
负数发票的商品行金额必须小于0,税额不能为正数;
单价和数量同时为空,或都不能为空 ;
金额、税额、数量、单价必须是合法数字
流水号可以不填(发票云会生成),如果业务需要自己生成的话,请注意不要和蓝票重复,负责只会把该流水号对应的蓝票查询出来
4.4 税收分类编码
5. 差额征税发票注意事项
5.1 如果BMB_BBH不为空,并且第一行商品明细中KCE不为空,则认为是差额征税发票。
5.2 差额征税蓝字发票:只允许一条商品行,如果存在折扣行,则最多两条。
5.3 差额征税红字发票:只允许一条商品行。
5.4 差额征税蓝字发票:第一行商品明细中KCE不能为负数,并且不能大于第一行商品的不含税金额。
5.5 差额征税红字发票:第一行商品明细中KCE不能为正数,并且不能大于第一行商品的不含税金额。
5.6 差额征税蓝字发票:备注中要增加“差额征税:20.00。”字样,如图1。
5.7 差额征税红字发票:备注中要增加“差额征税。”字样,如图2。
5.8 差额征税计算公式:不含税差额 = 不含税金额 - 扣除额; 税额 = 不含税差额*税率。 开具请求报文要按照上述计算公式计算税额,合计税额等,开票服务不进行相应计算,只进行误差校验。
图一:
图二:
请求参数
clientsecret+税盘号
当前13位毫秒级时间戳加3位随机数字(总共16位)
流水号 相同流水号将返回上一次的开票结果(少于20位则由发票云生成)
订单编号,客户业务单据id
含税标识 0:不含税 1:含税
开票类型 0:蓝子发票 1:红字发票
发票类型 51:电子普通发票 ; 61:电子专票
征收方式 0:普通征收 1:减按计增 2:差额征收
清单标志 0非清单开具 1清单开具
销售方纳税人银行账号
购货方纳税人手机,可用于发送短信通知
购货方邮箱地址,可用于发送邮件
购货方微信openid,后续可用于推送微信消息
购货方纳税人地址电话
购货方纳税人银行账号
购买方自然人标识,Y-是,N-否;默认N
开票合计金额(不含税)
放弃享受减按1%征收率原因,非必填,注释:小规模纳税人开具1%税率时必填
红冲原因 1:销货退回 2:开票有误 3:服务中止 4:销售折让,非专票红冲必填
对应蓝票票种 2:普通发票 41:卷票 51:电子普通发票 999:其他普通发票(如 通行费发票),非专票红冲必填
对应蓝票开票日期 yyyyMMdd 如20211230,非专票红冲必填
{
"czlx": "110",
"sfrz": {
"client_id": "string"
},
"sjd": {
"fpqqlsh": "string",
"ddh": "string",
"hsbz": "string",
"kplx": "string",
"kpzl": "string",
"zsfs": "string",
"qdbz": "string",
"bz": "string",
"yfpdm": "string",
"yfphm": "string",
"xhf_nsrsbh": "string",
"xhf_mc": "string",
"xhf_dz": "string",
"xhf_dh": "string",
"xhf_yhzh": "string",
"ghf_nsrsbh": "string",
"ghf_mc": "string",
"ghf_sj": "string",
"ghf_email": "string",
"ghf_openid": "string",
"ghf_dzdh": "string",
"ghf_yhzh": "string",
"gmfzrrbs": "string",
"kpy": "string",
"sky": "string",
"fhr": "string",
"hjbhsje": "string",
"kphjse": "string",
"jshjje": "string",
"kjly": "string",
"items": [
{
"xmlx": "string",
"xmdw": "string",
"xmmc": "string",
"xmsl": "string",
"xmdj": "string",
"xmje": "string",
"ggxh": {},
"se": "string",
"sl": "string",
"hh": "string",
"taxcode": {
"kce": "string",
"lslbs": "string",
"qyzbm": "string",
"ssflbm": "string",
"ssyhzc": "string",
"ssyhzcnr": "string"
}
}
],
"hcyy": "string",
"dylppz": "string",
"dylpkprq": "string"
}
}
示例代码
返回响应
0000:成功 其他:失败
是否是重复流水号,若是则会返回上一次的开票结果
开票设备信息对象 该信息只在开具单机版电子发票时有效
流水号,对应参数中fpqqlsh字段,如果fpqqlsh少于20位则会由发票云生成
税控设备是ukey开电子普票,或者发票是电子专票时该地址为预览地址,航信百旺开普通电票时则是PDF下载地址
税局生成的PDF文件(电子专票\ukey开具的电子发票)
税局生成的OFD源文件(电子专票\ukey开具的电子发票)
单据编号,和请求信息中的ddh一致
{
"data": {
"business_id": "KP21092200000010",
"invoicecode": "044031611112",
"invoicenum": "13514645",
"jym": "47112685370389776289",
"kdorgpdfurl": "",
"kprq": "2021-09-22 16:38:22",
"pdfurl": "https://api-dev.piaozone.com/test/m5/download/img/pdffile?fileSno=1753620210922163107",
"serialnum": "ee1f1ffa5111422f81de81a26d382c11",
"snapshoturl": ""
},
"description": "开具成功",
"device_info": {
"card_no": "661532817749",
"subid": 0,
"taxcode": "440301999999030"
},
"errcode": "0000",
"is_duplicate": false
}