阿里发票平台:https://efapiao.taobao.com/
税控盘/税控服务器:按照国家税务总局的“税控盘技术规范”进行研制,是专用的税控装置。该产品分为单税号税控服务器和多税号税控服务器。
聚石塔:聚石塔是阿里巴巴面向电商行业推出的云计算平台,用来支撑电商生态的发展。 基于聚石塔,服务商可以开发各类商家所需的应用服务,商家可以获取贴合业务发展需要的各类电商云产品和解决方案。
自动开票:消费者自主触发,从原始订单到产出发票结果,由阿里发票平台全链路自动化实现,没有三方系统介入。
ERP对接发票平台:指商家在入驻发票平台后,不使用平台提供的自动 或手动批量开票功能,需要自定义开票功能,可通过参考该文档使用ERP进行对接,也即当前入驻发票平台是ERP对接的前提
从2015年开始,阿里巴巴以平台的角色参与到国家电子发票在电商企业领域的推广工作,为企业实现电子发票跨出了第一步。
2016年,阿里巴巴开始全方位的进行电子发票业务整合,并搭建了‘阿里电子发票服务平台’,平台核心价值是为商家提供一站式服务,帮助商家快速实现电子发票业务接入,降低接入门槛。
阿里发票服务平台为淘宝、天猫商家提供一站式发票服务,平台提供全自动开票能力,同时也支持商家自有或三方系统,如ERP系统对接完成开票。平台支持全渠道订单来源实现发票开具/冲红,比如JD、一号店、官网,以及线下门店。
针对天猫\淘宝的发票,平台自动实现发票上传到订单详情,支持消费者从淘系任何一个端进来下载发票,比如手淘、猫客、PC天猫和淘宝。
针对淘外订单,平台负责将开具完的发票回传给ERP自行存储,如何将发票交付给消费者,暂时需要由ERP负责完成,比如短信、旺旺提供可下载链接。(后续平台会提供消费者发票管理中心,支持全渠道发票从平台查询下载功能)
同时阿里发票平台提供安全可靠的税控设备托管机房,商家可将税控盘寄存在阿里机房,有阿里提供租户式的税控服务器。
蓝票场景目前主要有2中:消费者下单选择电子发票、售后补开电子发票;
冲红目前主要有:消费者售后申请订单退款退货(部分或全退)、改抬头(在手淘)、申请换纸质(在天猫pc)3个场景下进行。
部分开票必选入参作为常量输入,需要ERP提供初始化功能,商家手工填写,ERP服务端做长期存储,主要有一下几个:
payee_name: 开票方名称,公司名(如:XX商城)
payee_register_no: 收款方税务登记证号
payee_address:开票方地址
payee_phone:开票方电话
payee_operator:开票人(ERP结合自身的账号体,可判断当前系统登录进行订单操作的人员真实姓名,默认获取)
tax_rate:税率(税额=税率*总金额)
触发订单发起自动开票的订单状态(trade_status),不同的商家需求不一样,有的要求在订单出库开始开票,有的要求货到签收之后,有的要求订单金额入账之后,所以该状态需要让商家进行初始化配置。(建议根据erp管理订单的所有状态,设计成可选项)
引导消费者进入天猫“订单列表→订单详情”,就可以看到‘索要发票’入口,改入口即为换纸质入口,下图。(注:以下提到的订单均指淘系即天猫、淘宝相关订单)
2、换纸质逻辑
1)天猫会判断当前订单是否有开电子发票,如果正在开具中,发票还未回传成功,会提示消费者不能索要;如果电子已经开具成功并且消费者已经可以下载了,那发起索要之后,会进入卖家审核阶段。
2)卖家后台审核通过,订单API标示字段invoice_kind即会更新成2,erp读取该字段判断,并进行电子冲红。
3)纸质发票再换电子发票,天猫订单无法支持变更
4)换纸质和换电子规则,限制1次电子换纸质,纸质无法换电子
判断当前订单是否有蓝票,如有,自动发起开红票请求实现红票开具,再发起开蓝票请求,将新抬头入参payer_name,重新获取新蓝票。
1)获取开票请求:首先监听tmc消息alibaba_invoice_Apply 获取开票申请通知,通知中仅包含订单号,apply_id,抬头类型,触发状态和订单渠道。然后ERP调用接口alibaba.einvoice.apply.get 获取开票详细信息 。
2)开票:根据开票申请返回的订单信息,转换生成发票明细,通过alibaba.einvoice.createreq接口发起开票请求。
3)获取开票结果:监听tmc消息alibaba_invoice_ResultReturn,获取开票结果消息,然后调用接口alibaba.einvoice.create.result.get 获取开票结果。
4)发票交付给消费者:如果是淘系订单,发票平台会自动回传淘宝\天猫,ERP不需要操作,消费者可直接在订单详情等页面下载;如果是其他平台,ERP自己提供下载空间,通过其他方式(比如短信、邮箱)让消费者下载。
2、ERP API调用流程
说明:
1)买家下单时勾选要发票
2)ERP需接收消息:alibaba_invoice_Apply,描述了一个买家需要对某个订单开票(蓝票、红票),通过apply_id唯一标识此次申请。
3)获取到消息后通过einvoice.apply.get查询申请详情,包括发票类型是红票还是蓝票、请求状态等信息。
4)开票申请被处理后,可以通过消息获取结果通知:alibaba_invoice_ApplyResult。
5)ERP发起开票请求接口:组装票面信息,通过alibaba.einvoice.createreq 发起开票请求,注意provider_appkey 和 proxy_appkey两个字段不传(原老的模式这两个字段为必选项)。
6)开票请求产生结果时(成功或失败),ERP需接收消息:alibaba_invoice_ResultReturn
7)根据API查看结果详情:alibaba.einvoice.create.result.get 根据接口获取到的发票下载链接,需要绑定host 才能够访问。绑定Host 42.156.238.99 dl.daily.api.taobao.net
API接口列表如下(权限包名称:阿里发票),申请方法可参考:应用权限说明 。
接口名称 |
说明 |
是否必须 |
开票申请数据获取接口 |
可选 |
|
蓝票\红票开票接口 |
必须 |
|
开票结果获取接口 |
必须 |
1)主要用到2个消息:
开票申请通知topic:alibaba_invoice_Apply
开票结果通知topic:alibaba_invoice_ResultReturn
2)订阅消息
进入ISV控制台,在“应用管理->消息服务->订阅消息”页面,选择需要的消息进行订阅,搜索消息,点击相应消息后面的“订阅”即可
订阅消息成功,可以在“我的订阅”中查看已经成功订阅的消息。如果需要取消消息的订阅,直接点击 “取消订阅”。点击消息名称可以查看每个消息返回的详细字段信息。
注意:如果该消息没有权限,则说明应用未开通相关API调用权限,通过点击“申请权限”,申请相应的权限包。
3)店铺开通消息:
调用top API:调用taobao.tmc.user.permit接口给用户(即淘宝或天猫店铺)开通,可以选择只给用户开通部分消息类型,也可全部开通。具体可看该API 入参说明。
开票功能开发完成上线时,若需先到测试环境测试,可参考如下,通过沙箱环境先进行测试。测试通过后再拿线上天猫正式的订单数据组装开票请求,进行正式的开票测试。
1)沙箱环境接口请求地址:http://gw.api.tbsandbox.com/router/rest (注意和正式环境的区别,接口调用详细方法参考 这里)
2)沙箱环境的AppKey、AppSecret,请通过开放平台“控制台-应用管理-应用设置-沙箱环境管理”查看。(注:如果原来未在开放平台申请过应用,请联系小二或加旺旺群1523431732 反馈)
3)税号,百望:91500000747150346A(公司名:百望税控14);税号,航信:150000198105144609(公司名称:航信商品编码测试税号),开票时税号信息,请使用其中的一个,注意税号和企业名的匹配。
4)沙箱平台 http://www.tbsandbox.com/ 登录后可获得模拟的订单号、金额等数据,当然测试时除了税号、AppKey外,开票数据(订单号、价格等)也可以直接自己填写
5)测试帐号sandbox_b_00、sandbox_b_01;密码:taobao1234
6)消息的测试,可以测 alibaba_invoice_ResultReturn 消息,发票申请的消息只能线上测试,测试调用api时,platform_code=OTHER
7)沙箱使用指南 //open.taobao.com/docs/doc.htm?spm=a219a.7386781.1.26.E1BRfh&treeId=231&articleId=105496&docType=1
开具负数发票,开票服务器系统自动在备注中注明“对应正数发票代码:XXXXXXXXXX号码:YYYYYYYY”字样,其中“X”为发票10位或12位代码,“Y”为8位号码。
负数发票商品行,如果存在单价和数量,那么单价应为正,数量应为负。
1)不再需要计算折扣率
2)折扣行只能对应一行正常行
3)折扣行货物劳务名称以及商品编码和正常行一致
4)冲红时,只需要将正常行和对应的折扣行金额相加取负即可
5)商品编码和税率必须匹配(参考税局商品编码表格,点 这里下载 )
3、不含税单价、税额,不含税金额、税额等的计算校验
2)不含税金额=含税金额/(1+税率),并保留两位小数;
3)税额=含税金额-不含税金额,并保留两位小数
4)价税合计=合计金额+合计税额;
注意:可能会因为软件运行环境的不同导致同一转换规则下出现结果精度不同的情况
|单价×数量-金额|<=0.01 元 此处单价和金额是否含税以传入组件接口的含税标志为准
|不含税金额×税率-税额|<=0.06元
1)正数发票合计金额>0、负数发票合计金额<0;
2)价税合计=合计金额+合计税额;
3)开票合计金额 与 明细行所有金额加起来要一致;
4)开票合计税额 与 明细行所有税额加起来要一致;
根据税局要求,纳税人在开具增值税电子普通发票时,必须选择相应的商品和服务税收分类与编码。因此,要求ERP必须进行系统改造,支持该功能,以便于商家使用(相关公告 点这里),否则后续可能将影响商家,无法开票,引起投诉。
即调用 alibaba.einvoice.createreq 进行ERP开票时,需要传人item_no字段 (商品编码),报文格式要求如下:
1)不再需要计算折扣率
2)折扣行只能对应一行正常行
3)折扣行货物劳务名称以及商品编码和正常行一致
4)冲红时,只需要将正常行和对应的折扣行金额相加取负即可
5) 商品编码和税率必须匹配(参考税局商品编码表格,点 这里下载 )