c端|发票系统0-1闭环设计思路

编辑导语:发票是财务中必不可少的物品,那发票系统该如何设计呢?本篇文章中,作者从B端和C端两个层面,介绍了如何从0到1的设计发票系统。感兴趣的小伙伴不妨来看看。
c端|发票系统0-1闭环设计思路
文章插图
之前也写过发票的设计思路,时隔一段时间重新做了发票的项目,对这部分又有了新的认知和思考,更是发觉之前写的甚浅。
当我带着新的理解进行分享时,我的思路和方法论已悄然发生变化,这篇文章讲一下发票系统0-1的闭环设计,希望能带给你帮助~
一、什么是发票发票是指一切单位和个人在购销商品、提供或接受服务以及从事其他经营活动中,所开具和收取的业务凭证,是会计核算的原始依据,也是审计机关、税务机关执法检查的重要依据。
发票分为进项发票和销项发票,简单说可以理解为作为一个商家,进项发票就是供应商给我们开的票,销项发票是我们给购买了商品的客户开的票
此次文档范围主要是销项发票~
二、发票系统对接模型在之前的文章中也提到,B端系统设计之初,需要对系统进行分层,明确系统边界。
这样做的好处是避免后期业务繁杂时各个系统之间功能冗余,逻辑耦合,从而不方便业务拓展。
1. 申请层申请层主要是指申请开具发票的数据源,如toC:用户端,用户可以自主开具发票。
或者toB 在后台,由客服或者运营为用户申请开票,当发票开具完成后再将发票信息展示出来。
2. 接收层这里的接收层我把它叫做发票中台,发票中台负责对接所有所有在申请层的系统, 承接所有申请开票的数据,统一由发票中台对接发票服务。
当发票开具完成后再将发票信息传给申请层的系统,有点承上启下的意思。
这样设计的好处有两点:

  1. 对于上游申请层来说,不需要单独对接一次外部的发票服务,对接发票中台远比对接外部的发票服务成本低;
  2. 对于发票中台来说,所有申请的数据都天然维护在这里,方便做前期的校验、后续统计等功能。
3. 服务层这里的服务层是指外部的开票服务,发票中台将所需要的开票信息透传给开票服务。
由开票服务完成开票、红冲等操作,再将结果返回给发票中台。
c端|发票系统0-1闭环设计思路
文章插图
三、对接层1. 申请层(1)C端
申请层主要的功能就是「申请开票」。
那么对于C端来说,它面向的对象就是用户,那么在C端的设计上就要站在用户的角度,这里简单列下主要功能点:
c端|发票系统0-1闭环设计思路
文章插图
① 申请节点
前文我们说过,发票是指一切单位和个人在购销商品、提供或接受服务以及从事其他经营活动中,所开具和收取的业务凭证。
那么开票的前提是有了交易记录,开票可以根据流水开,也可以根据订单开,下面就按照普遍电商平台的做法,按照订单来说明。
申请开票的节点其实没有明确的要求,目前业内有的是支付后可以申请,有的是还是收货后才可以申请,区别主要是担心产生售后行为后,发票还需要红冲掉,浪费额外的票量。
但像京东现在已经很智能化了,每次支付完会自动开票。
② 申请类型
对于大多数市面的产品来说,一般在C端只允许用户开电子票,原因很简单,电子票和纸质票的法律效应是一致的。
但是电子票比纸质票成本低、效率高,开票所需要的信息也比纸质票简单许多。
当然如果用户有指定开专票或者纸质的普票的话,作为商家还是有义务为用户开票的,对于这种情况可以走线下联系客服等方式在后台申请开票。
③ 申请信息
不同类型的票需要的信息是不一样的,同样纸票和普票所需要的信息也不相同;
这里其实分为几部分,用户的个人申请信息和发票信息,其中个人申请信息是用户自己需要提供的信息,发票信息都是开发票需要。
但是由系统自主可以通过订单获取到的。
下图我简单列了下基本信息,有的字段对于不同的发票类型、发票种类都有不一样的输入要求。
c端|发票系统0-1闭环设计思路
文章插图
  • 查看开票进度:用户申请开票后,发票的状态要讲对应展示文案告知用户开票进度,给用户有一个预期