TreeviewCopyright © aleen42 all right reserved, powered by aleen42
销项开票注意事项
1 开票接口
1.1 开蓝票
和开蓝票-自动拆分
接口的区别
- 在未超出限额的情况下,两者并无区别;
- 在超出限额的情况下,前者会直接报错;后者会进行自动拆分,返回新的发票请求流水号,并且只有最后一张发票金额不一样,其它发票的金额均是限额的数值;
- 开蓝票-自动拆分接口会实时返回拆分后的发票信息,业务系统这里需要注意,根据接口返回的【lyid字段】匹配原先的发票请求流水号,将原来的发票信息删除,保留最新的发票信息。开票成功回调通知,以新生成的发票请求流水号进行匹配更新;
- 开蓝票拆分接口不支持自动发送到微信卡包,因为一个订单号只能对应一张发票,拆分后多张发票发送卡包,会报订单号重复
1.2 开蓝票接口传参注意事项
- 表体Body数据提交格式为
x-www-form-unlencoded
,不然会报500的错误; - 表体明细行
items
通过项目价税合计【xmjshj】、税率【sl】、项目数量【xmsl】就可以确定其它所有数值,不传会自动计算,传值会进行验算,验算不平衡会直接报错; - 商品档案已存在的项目可以只传项目编码【xmbm】和项目价税合计【xmjshj】,系统会自动进行匹配;
- 常用公式:无税金额=价税合计/(1+税率)、无税金额=项目数量*项目单价,文档里的合计金额【hjje】和项目金额【xmje】都是指的无税金额;
- 蓝票接口文档中的商品编码【SPBM】实际为税收分类编码,与税局标准的税收分类编码统一(不清楚可以咨询各自公司财务),在【autoAudit】为true时商品编码【SPBM】必填。但【autoAudit】为flase时,商品编码【SPBM】为非必填;但是没有商品编码【SPBM】手动开票时会报错,所以理论上商品编码【SPBM】还是必传的;
- 开蓝票接口文档中的项目名称【XMMC】以及项目编码【XMBM】分别为:商品名称和商品编码。如果业务系统在税务云商品档案(物料创建)提前维护商品信息,则会自动匹配,如果商品名称重复,会按照商品编码匹配。否则,业务系统传什么,发票明细则显示什么,但是不会在税务云商品档案中自动创建该商品信息;
- 收购标志【SGBZ】为2时,开出的发票种类为收购发票,且接口传的销售方和购买方信息与票面是相反的,因为收购类发票一般都是由购买方代替销方开的
1.3 开票计算逻辑
1.4 回调服务注意事项
- 回调服务必须是post请求且公网可访问;
- 回调服务如何接收参数:1、@RequestBody Map
map;2、@RequestBody JSONObject json 必须用fastjson - 状态为开票中的发票不会调用回调服务,只有开票成功或开票失败才会去访问;
- 开票成功或失败会立马执行回调服务,平均开票时长3-5S;
- 税务云向回调服务地址最多发起三次POST请求,传输开票相关的数据和信息,时间间隔三分钟,第一次成功就不会再发起;
- 开票是异步操作,业务系统接收回调通知且处理成功后,接口需返回{"code":"0000","msg":"success"},0000:表示回调服务处理成功,整个流程结束;
- 邮箱和短信只有开票成功时才会收到电子票地址,测试环境只通知邮箱
- 手动在税务云系统开票也支持回调通知,需要找运营老师配置回调通知服务url,需提供回调url地址,提dsp工单
- 回调相关文档可参考:点击进入
1.5 开蓝票返回错误信息和解决方案
1.5.1 签名验签失败相关
1.5.2 开具发票失败相关
1.5.3 {"code":"9999","msg":"非法的开票请求,无法确定开票点!"}
- 税务云-> 应用设置 -> 组织管理 同一纳税人识别号下存在多个可以开票的组织,一定要传
ORGCODE
字段
1.5.4 测试环境纸质发票作废接口作废之后为什么发票状态没变?
- 测试环境的作废是不能真正作废的,接口返回成功仅仅代表接口调通了,具体回调处理参见1.5.5
- 第一次请求作废接口,返回成功
- 第二次请求作废接口,返回报文内容是:正在作废状态
1.5.5 关于纸质发票作废的回调服务问题
- (1)纸质发票作废接口为异步接口,税务云作废处理完成后,只有作废成功或者失败时会通过开蓝票的回调url通知。
- (2)发票作废回调通知报文示例:作废成功回调报文data里的zfbz字段为【Y】,开票成功回调报文data里的zfbz的字段为【N】,可根据zfbz是否为【Y】判断是哪种回调通知,其余字段不变。注意:作废失败时只会通过回调通知,通知信息示例:{"code":"9999","msg":"发票作废失败","fpqqlsh":"1234556767"}
- (3)作废后,通过【开票状态查询接口】返回报文示例:不管作废成功还是作废失败,返回的status都是开票成功,只需要关注data中的zfbz字段(Y:是;N:否;I:作废中)。注意:通过查询接口获取到的zfbz只有Y、N、I三种情况,不会有作废失败的标志。原因是税务云不会保存作废失败的信息。
- (4)测试环境不支持纸质发票真正作废,只能测试接口联通性。正式环境需要在系统开通作废回调的通知权限,联系秦嘉瑶,提供商务订单号以及企业名称
1.5.6 作废注意事项
- 只有纸票才能作废,且必须是当月作废,超过当月只能红冲;
- 电子发票只能红冲
1.5.7 红冲注意事项
- 红冲接口分为【发票红冲请求】和【发票部分红冲】,前者为整票红冲,后者为部分红冲。部分红冲支持任意拆分原蓝票信息,只要总金额不超过原蓝票即可。
- 专票红冲必须先申请红字信息表编号,通过【申请红字信息表编号】进行申请,该接口为异步接口,结果可以通过回调接口获取,也可以通过【查询红字信息表编号】接口主动获取。但是在税务云系统中手动申请红字信息表,编号无法通过线上的方式通知到业务系统。
- 【发票部分红冲】接口必须传明细信息items,否则会提示明细不能为空。
1.5.8 开票申请删除接口和删除开票失败申请接口的区别是什么?
- 开票申请删除接口可以删除发票状态为【待开票】和【开票失败】的申请
- 删除开票失败申请只能删除发票状态为【开票失败】的申请
1.5.9 关于未开票收入管理说明
- 未开票相关接口对应的是系统中的待开票明细列表。切记不要误认为是未开票列表
- 【未开票记录变更查询】接口功能是查询某一段时间内待开票明细开票动作等操作记录,返回单据请求流水号【djqqlsh】,再根据单据请求水号【djqqlsh】调用【未开票查询】接口查询详细信息
- 单据请求流水号【djqqlsh】由业务系统生成,必须保证唯一,否则会提示流水号重复,注意和来源单据号区分,来源单据号可以不唯一,且在系统界面有显示
1.5.10 开蓝票如何集成自动发送微信卡包?
- 接口文档中的【WXORDERID】微信订单号和【WXAPPID】微信商户id需要赋值
- 获取开票平台s_pappid,正式:"s_pappid", "d3hlMzZkNmZhNzBhZTM0YzViX4WtL77dZDOmhlIkuGIfd9WEkSlHW1Hnf7Wu8jVO4QfM" 测试:"s_pappid", "d3gzY2QwZTllYTEwY2I5ZGUyX9_oG2qD7GI80F5B-7LorwhkvHZfyaprF8uWipE7-Wtk"
- 开蓝票拆分接口不支持集成自动发送微信卡包
- 此处的接入模式为“商户+开票平台”模式,微信参考文档地址