虚拟账户如何设计?

不懂技术怎么做产品?15天在线学习,补齐产品经理必备技术知识,再也不被开发忽悠。了解一下>

虚拟账号是如何设计的?里面包括了些什么内容?那一起来文章看看吧~

要说虚拟账户,咱们首先来说一下什么是结算?

结算狭义概念就是付款,广义上结算包含两个概念:一个结,一个是算。算比较好理解——就是通过一定业务规则计算出来应付款项;结——就是按照一定的账期规则,通过一定的方式付款给对方。

作为产品设计,一个结算业务包含着结算单管理、发票管理、账户管理、财务管理等相关对象管理。

以一个简单的业务为例:

用户在我们的平台上帮我们推广产品,会获取一定的推广费,如果没有虚拟账户,我们可能需要按照一定的账期(比如:一个月)汇总这个用户获取的推广费,然后通过一定的方式付款给用户,这个流程就是一个结算业务。如果中间设计了虚拟账户,我们可以把用户获取的推广费加总到这个虚拟账户里,这个虚拟账户可以实时展示此用户的累计推广费,用户可以按照账户余额实时申请结算,我们也可以按照一定账期给予付款。

从上述可知:虚拟账户本质上就是一个账本,按照一定的维度建立不同的虚拟账户,也就是建立了不同的账本,来实时反映算出来的钱的一个累计值,从而丰富我们的结算模式。

那为什么会叫做虚拟账户呢?

原因在于虚拟账户里面的钱只是一种应付款项,并不能像银行、支付公司那样具有交易作用,所以虚拟账户很大作用是其记账功能。

大家对虚拟账户有了一定的概念,下面我将具体介绍虚拟账户如何设计。

我们知道虚拟账户本质上是一个账本,那么账本会有那些元素呢?

时间、事项、收支、余额等,账本有总分类账、明细账,如下图所示:

总分类账是记录各个科目借方余额、贷方余额、总余额的账簿,明细账是总分类账某一个科目明细流水账, 其实虚拟账户也跟这个类似,虚拟账户是由实时账户结构、实时账务结构来构成。

如下图所示:

(1)账户结构

账户结构主要表述搭建一个账户,需要哪些项目,也就是需要哪些通用的字段,如下图所示:

(2)账务结构

账务结构主要是针对于账户余额的产生所发生的流水信息,如下图所示:

以上是账户基本项目信息、账务基本项目信息,如果这个看明白了,可以融会贯通,可以对这些项目按照业务需要扩充一些其他补充信息项目。

我们数据表搭建好了,下面我们用一个案例来解释,这个账户、账务展示效果。

比如:我们给我们的用户张三建立一个推广费账户。1月2日,我们开通了他的账户,当天张三发生两笔笔推广费收入1000元,但是账期还没到,还不能把款项付给他;1月3日,其中一笔业务账期到了,这笔钱可以打给他了,金额是500;1月4日,我们把500元钱打给了张三。

关于上面的业务,我们账户查询、账务查询是什么情况呢?

如下图所示:

通过对账户结构、账务结构相关基本项目表述、案例表述,我想大家对虚拟账户设计有了大致的了解。关于账务流水怎么产生,如何设计触发账务流水产生功能,我将在下一章——交易体系,对这个做一个详细的说明。

我们总结一下虚拟账户相关知识点:

  • 虚拟账户本质上是一个记账系统,他是结算系统中一个结算对象载体;
  • 虚拟账户设计包含着账户结构、账务结构;
  • 账户结构类似于总分类账,记录某一账户余额属性,可以提现某一账户实时的账户余额;
  • 账务结构类似于明细账,是总分类账金额发生变动的明细记录,他是触发账户余额变动的最根本来源,并且也可以用它进行会计处理;

因此通过虚拟账户体系搭建,其实实现了相关业务的实时展现(比如账户余额、账务流水),也实现了相关业务实时触发(比如账务变动、会计记账)等业务。

 

本文由@罗飞 原创发布于人人都是产品经理。未经许可,严禁转载

题图来自PEXELS,基于CC0协议

给作者打赏,鼓励TA抓紧创作!
5人打赏
评论
欢迎留言讨论~!
  1. 你好,请教一下,如果账户不但可以有推广费还可以消费,可以充值,但是支付费用的时候没有使用账户余额支付,而是通过第三方直接付款,那么这笔交易如何处理?算是此账户变动么?

    回复
  2. 您好,想请教一下,关于虚拟账户结算的问题。
    按这句话的意思“这个虚拟账户可以实时展示此用户的累计推广费,用户可以按照账户余额实时申请结算,我们也可以按照一定账期给予付款。”
    对于消费者,有了虚拟账户,可以根据账户余额申请提现,实时结算账户余额里面的钱,
    但是对于需要按一定账期给予付款的商家,结算单的当期需要结算的结算数据来源,是按照账户的账务流水生成吗?听公司的前辈讲,结算单的数据应该根据发生的具体业务流水的数据来计算,两个说法感觉有偏差
    想求教您怎么看

    回复
  3. 请教一下,账户结构既要设置账户编号,又要设置账户所属用户编号/账户所属商户编号,二者可否用同一个编号,区分开在什么样的应用场景会受益

    回复
    1. 这个是一个账户的身份属性,一般情况下,有账户所属用户就可以了,因为一般我们场景是我们的应用环境(APP等)根据注册用户来确定账户,比如一个用户有一个积分账户,有一个金币账户等,这个属性是常用的;但是对于TOB的,或者是开放平台,我们需要针对不同商户渠道下不同 用户设计虚拟账户,就需要这个字段了,这两个 字段可以拆开用,如果账户绑定的用户上面可以有所属用户编号,如果直接绑定到商户上面就是所属商户编号!

      回复
  4. 如果只记业务流水和账户余额,不记录账务流水,这样有什么风险么?对账就拿交易流水和账户余额去对~

    回复
    1. 首先,账户是一个对象,加入这个对账的资金变动是由多个业务产生,你的账务流水就能承载多种业务的集合;其次,如果你设计只有业务和账户余额,只能对一个总数,一旦发现业务单子上的数据和账户余额对不上就麻烦了;最后,还是强调一下,业务反应的业务信息,账户反应的资金信息,你是由业务信息转换为资金信息的。你可以在考虑考虑!

      回复
  5. 个人感觉,只是说了什么是虚拟账户,虚拟账户包括的主要内容,但是账户体系如何建立并没有涉及多少。如说的不对请见谅

    回复
    1. 的确,要是基于业务角度,比如说具有代收代付功能的虚拟账户,需要前置交易、账户账务、对账、台账等一系列的结构体系,本章主要是讲解了对于一个虚拟账户这个对账,最基本的东西是什么,在后续的有机会中会根据相关业务,结合虚拟账户在讲一下对账、台账、具体交易等相关内容!

      回复
    2. 期待,我们的业务现在就涉及到代收代付的合规性问题,因为缺少资质和有资质的第三方支付公司合作解决。

      回复
  6. 账户体系是很重要的,当资金流和信息流基于账户来流转时,会很清晰。给作者点赞

    回复
    1. 多谢多谢!

      回复
  7. 你好,我想问下账务系统范例表格那边:账户变动版本号3和4其实业务流程上是一件事?那为什么要分2步来走呢?

    回复
    1. 您好,谢谢您的提问,是这样的,账务流水可以理解为一个科目,每一次变动都会记录一个版本号,您说的一件事情是这个交易是一个交易,你如按理说的解冻交易,在业务上就是解冻500块钱,但是在账务流水里面需要有一条冻结金额减少流水,一条解冻金额增加的流水,所以一个交易业务对应着两个账务流水!

      回复
    2. 谢谢您的回答,但是还是不太清楚:3和4是同一个业务,如果拆成2条流水单独来看会不会容易产生误解呢?不知道产品做后台财务模块时,普遍习惯上会把流水分到这么细的程度吗?

      回复
    3. 嗯,首先,因为流水中记录了业务分类、业务子分类,这两条流水会是同一个业务,其次的确是在财务角度上来讲,其实账务流水是财务记账的依据,每一条流水代表了财务科目发生变动的原因,这样拆成两个流水无论是在汇总对账、还是在记账上都会很清晰,比如一般明细账都是三栏式,借、贷、余,在财务上不会记账成借方和贷方同时发生变动,余额不变的情况。同理,某一类虚拟账户可以理解为某一类科目,其金额属性类似于二级科目,因此如果冻结发生额属性发生变动就需要记录一条流水

      回复
    4. 嗯嗯好的,谢谢您的回答 :oops:

      回复