【阿里商家对接阿里电子发票业务操作流程】
1、部分开票必选入参作为常量输入,需要ERP提供初始化功能,商家手工填写,ERP服务端做长期存储,主要有一下几个:
2、触发订单发起自动开票的订单状态(trade_status),不同的商家需求不一样,有的要求在订单出库开始开票,有的要求货到签收之后,有的要求订单金额入账之后,所以该状态需要让商家进行初始化配置。(建议根据erp管理订单的所有状态,设计成可选项)
差别 |
同步方案 |
异步方案 |
说明 |
开票请求和结果返回一步完成 |
开票请求和结果返回分2步实现 |
开票请求API |
||
特点 |
实时性高,对系统性能要求高,适用于开票量小的情况 |
分解数据传输的压力,降低系统压力,避免数据堵塞而导致系统瘫痪,保障数据传输的有效性。适用于开票量大的情况 |
试用模式 |
只支持税控盘托管模式 |
税控盘托管和非托管的模式都支持 |
方法一:ERP进行本地服务端或云端存储PDF,生成可下载链接,商家短信或其他方式通知消费者下载。
方法二:商家通知消费者,前往对应的开票服务商服务平台下载。
1、退款退货、换货冲红
2、多渠道实现开票
支持来自于任何渠道的订单实现开票,开票请求入参platform_code来表示渠道
(TB= 淘宝 、TM=天猫 、JD=京东、DD=当当、PP=拍拍、YX=易讯、EBAY=ebay、QQ=QQ网购、AMAZON=亚马逊、SN=苏宁、GM=国美、WPH=唯品会、JM=聚美、LF=乐蜂、MGJ=蘑菇街、JS=聚尚、PX=拍鞋、YT=银泰、YHD=1号店、VANCL=凡客、YL=邮乐、YG=优购、1688=阿里巴巴、POS=POS门店、OTHER=其他)
3、天猫订单与发票数量关系
4、企业票和个人票
天猫、淘宝平台店铺面向消费者,故开具的都是个人发票。ERP在发起开票请求时,入参business_type默认都应该是0。
企业发票一般是在分销平台开具。
开具负数发票,开票服务器系统自动在备注中注明“对应正数发票代码:XXXXXXXXXX号码:YYYYYYYY”字样,其中“X”为发票10位或12位代码,“Y”为8位号码。
负数发票商品行,如果存在单价和数量,那么单价应为正,数量应为负。
在发票和销货清单中,可在每一行商品下加入折扣行,折扣行商品名称栏填写“折扣(X.XXX%)”字样,其中“X”为折扣率数字,金额和税额栏以负数填写,税率与被折扣行商品税率相同,其它栏不填写。
对于相邻商品行折扣率相同的,可汇总填写折扣行,折扣行商品名称栏填写“折扣行数Y(X.XXX%)”字样,其中“Y”为汇总行数数字,汇总金额和汇总税额栏以负数填写,税率与被折扣行商品税率相同,其它栏不填写。
开具负数发票,如果对应正数发票中有折扣行,需要将折扣行折回到被折扣商品行中,处理规则:
1a、被折扣商品行金额(折回后)=被折扣商品行金额-折扣金额,
折扣商品行税额(折回后)=被折扣商品行税额-折扣税额;
1b、如果存在单价数量,要反算单价,如单价不含税,
单价=被折扣商品行金额(折回后)/商品行数量;
1c、如果不存在单价数量,无需反算单价;
2a、第一行:
折回金额=被折扣商品行金额*折扣率
折回税额=被折扣商品行税额*折扣率
被折扣商品行金额(折回后)=被折扣商品行金额-折回金额,
被折扣商品行税额(折回后)=被折扣商品行税额-折回税额,
单价反算见1中描述;
2b、第二行到第N-1行:
处理同2a;
2c、第N行 :
被折扣商品行金额(折回后)=被折扣商品行金额-(折扣行金额-前N-1行折回金额之和),
被折扣商品行税额(折回后)=被折扣商品行税额-(折扣行税额-前N-1行折回税额之和),
单价反算见1中描述;
3a、开票软件中金额、税额都统一保留2位小数;
3b、开票中的折扣行紧挨着被折扣商品行,第N行被折扣商品行是离折扣行最远的一行。
3c、折扣率需要传入正确,并至少保留3位小数(百分数)
1)不含税单价=含税单价/(1+税率),最大21字符(含小数点) ,最大15位小数位;
2)不含税金额=含税金额/(1+税率),并保留两位小数;
3)税额=含税金额-不含税金额,并保留两位小数
4)价税合计=合计金额+合计税额;
注意:可能会因为软件运行环境的不同导致同一转换规则下出现结果精度不同的情况
|单价×数量-金额|<=0.01 元 此处单价和金额是否含税以传入组件接口的含税标志为准
|不含税金额×税率-税额|<=0.06元
1)正数发票合计金额>0、负数发票合计金额<0;
2)价税合计=合计金额+合计税额;
3)开票合计金额 与 明细行所有金额加起来要一致;
4)开票合计税额 与 明细行所有税额加起来要一致;