适用于多业务的资金账户管理系统如何设计?
资金账户管理系统能准确反映资金的变动情况和确保客户账户资金余额的正确性,随着业务的发展,一个平台可能会产生越来越多不同类型的业务。本文从资金管理系统的作用出发,对如何设计好资金账户管理系统展开了分析说明,供大家一同参考和学习。
有企业客户开通了云流量服务,按实际使用量进行计费,然后再完成付款。
由于是先使用服务,后计费付款的模式,需要客户先预存资金,以确保有充足的资金能够完成付费,否则客户将没有使用权限。
客户使用的流量服务,将进行实时计费,并从账户中扣除相应款项。
在上述场景中,客户的资金发生了先暂存、后消费的变动情况。
为了准确反映资金的变动情况,确保客户账户资金余额的正确性,需要将客户账户下的资金充值和使用的过程记录下来,对资金账户进行管理。
01 资金账户管理系统是什么?
资金账户管理系统是为准确反映资金变动情况、确保客户账户资金余额正确性,提供的以账户为载体,能够管理资金的进项出项、记录账户余额变动情况,并且能够反映资金变动后结果的管理平台。
资金账户管理系统的核心功能分为两块,分别是「账户」和「资金」。
「账户」对应某个主体(可能是个人,也可能是一个企业),是其记录、整理和汇总原始数据的载体。
「资金」是钱,在发生充值、使用等业务过程时会产生资金的变动,分别是资金的进项(充值、抵扣余额退回、取消抵扣)和资金的出项(抵扣、提取、取消充值)。
「资金」包含了资金的变动和记录;「账户」会归集资金变动记录,从而能够知道某个主体的账户下的资金变动详细情况和资金累计值,例如累计充值金额、累计抵扣金额,以及当前余额。
02 为什么要做资金账户管理系统?
先看一个生活中常见的案例:
小明、小红、小王到理发店剪了个头发,需要付款 40 元。
结账的时候,前台告知目前有充值赠送的优惠活动,充 200 送 20 ,充 500 送 80 。
由于小明离这家店不是很近,没有充值,选择了现金支付 40 元;
而小红因为经常到这家店消费,选了先充值后扣费的方式,提供了个人姓名、手机号等基本资料以及支付了充值金额 200 元。
前台给了小红一张会员卡,告知其本次消费后余额还有 180(=200+20-40)元,后续到店时可以出示会员卡,或直接报手机号进行消费。
小王也选择了先充值后扣费,因为后面还考虑做烫染,所以直接充值了优惠力度更大的 500 元那一档。
前台给到小王会员卡,告知其本次消费后还有 540(=500+80-40)元。
在上述案例中,当店家收到小明支付的款项时,交易已经达成,产生了真实消费;
店家收到小红和小王支付的款项时,并没有产生真实消费,而是往小红和小王各自的账户中进行了充值,当小红和小王使用卡内余额进行扣费时,才产生了真实消费。
并且消费后,小红和小王的账户还有剩余可用的金额,可供后续继续消费。
过了半个月,小王打算来染个头发,小红也带着女儿来理发店剪头发。
结账扣款的时候,前台告知小红本次消费后余额还有 100 元。小红感到很奇怪,自己明明只有在充值那次用了40元,按理说这次扣了应该还有 140 元,怎么就只剩 100 元了呢?
——原来是之前其他客户在使用余额消费的时候,前台扣错了,扣了小红的余额。但是因为没有具体扣费记录,也不知道原本应该是扣哪个客户的账户余额。为了平息客户小红,店家为小红的账户补上了 40 元,目前余额为 140 元。
小王染发费用为 240 元,前台告知小王本次消费后余额还有 340 元。小王纳闷了,上次充值消费后还剩 540 元,这次扣了 240 ,怎么还有 340 元?
——原来是第一次小王充值消费的时候,前台比较忙,就先口头告知了小王消费后余额,后来忘了记录当次消费单的扣款。如果不是小王自己提出,就少扣了 40 元了。前台为小王的账户余额补扣了 40 元,目前余额为 300 元。
我们可以看到,当客户选择了先充值后消费的方式,客户在平台中会存在可消费、可使用的资金。
在这个过程中,如果没有对账户和资金进行合理的管理,可能出现资金管控风险。
因此,针对客户的资金,其变动过程和变动的结果,需要记录下来,进行管理,以准确反映资金的变动情况和确保客户账户资金余额的正确性。
而随着业务的发展,一个平台可能会产生越来越多不同类型的业务,需要在开展过程中应用资金账户管理系统。
例如 A 业务部门,针对 A 类客户群体提供流量服务,需要先充值后结算抵扣;
B 业务部门,需要针对 B 类客户群体在移动端 app 中提供服务,为了在 iOS 系统中能够灵活定价商品,便于业务开展,选择了让客户先通过 app 充值虚拟币,再购买具体商品的模式。
那么这时候,我们要如何从整体进行抽象提炼,设计出一个适用多业务的资金账户管理系统呢?
03 设计思路
从账户和资金这两点出发,分别对应增删改查这几个功能模块。
资金账户管理的整体介绍如下:
1. 关于账户
(1)增:创建账户
创建账户是指为某个主体建立一个新的载体,用于记录、整理和汇总原始资金数据。
创建账户的出发点是即将有业务要在该载体上发生,业务的起点是客户要充值。
如果该客户此前并没有对应账户,则需要先为客户创建账户,然后把相应的资金充值到账户中,后续客户需要使用资金时,也从该账户中扣款。
创建账户的方式包括人工创建和系统创建。
结合上文,当客户要充值时,如果客户并没有账户,需要先创建账户。
这里存在的场景分别有客户经理与客户线下达成了营收,成单后,客户经理需要在平台中为客户充值款项;客户自主在线发起充值。
在客户经理为客户创建账户并充值的场景中,客户经理在系统中输入相关客户信息和账户信息,为客户人工创建好账户;在客户自主发起充值的场景中,系统可以自动获取相关信息,由系统完成账户的自动创建。
创建账户属性包括:业务类型、账户主体、适用体系、开票方式等。
其中,业务类型是用于区分不能共用的不同业务之间的款项的标记。
例如软件类商品、课程类商品、流量计费类商品,如果在业务上,客户就是专门为后续消费某类商品而发起的资金充值,相当于资金是只能给某类商品使用的,那么需要按照业务类型进行标记区分。
适用体系是指当前账户内的资金能够使用的体系是什么,包括 iOS 和非 iOS 。
因为当客户使用的系统是 iOS 时,通过 app 充值是走的苹果内购,此方式下客户充值的款项是先给到苹果公司,再由苹果公司与我们的平台进行结算,苹果公司要分成其收入的 30% 作为平台费用,最终平台真实收到的款项只有客户支付款项的 70% 。
而其他渠道下充值,款项是直接给到平台的。这两种方式下,客户充值的资金流是不一样的,款项收到了不同商户主体下。苹果公司规定,数据不与其他系统互通。
同时,客户若后续有退款、开票之类的诉求,也是直接联系苹果公司处理的,不经由我们的平台处理。因此,通过 iOS 系统和非 iOS 系统充值的款项需要进行标记区分管理。即同一个客户同一个 app ,如果在 iOS 系统和安卓系统中分别充值了,款项是不互通的,会存在两个账户中,分别对应不同的账户适用体系。
开票方式是当客户的账户资金发生变动时,是否要给客户开票,如果要开票,要在什么时候给客户开票的标记。开票方式包括充值时开票、抵扣时开票、不开票。
由于开具发票的前提是发生了纳税义务,而在充值抵扣的业务中,确认纳税义务的发生有以下两种情况:
①充值资金时就发生了纳税义务。
例如游戏中客户充值虚拟币要购买道具。游戏公司收取款项,为玩家提供虚拟货币的服务已经发生,此时纳税义务已经发生,应当缴纳增值税。
这种情况下,是充值时就开票的。如果纳税人因兼营多个不同税率增值税项目,无法分别核算,则应缴纳的税率为多个增值税税率中的最高值。
②消费资金时才发生纳税义务。
例如一家酒店的会员卡充值,卡内余额可以用于消费不同类型的服务或商品,例如住宿、餐饮或商店内购物。
而提供不同的服务时适用的增值税税率是不同的,只有真正消费时才知道购买的是什么,确认纳税义务。
如果是抵扣时开票,因为消费后再开具发票,能分别核算,按所提供的商品或服务的适用税率或者征收率计算缴纳增值税即可。
资金变动影响开票,最小颗粒度应该是开票方式跟着资金走,但是为了管理统计上更加方便些,可以将开票方式的标记抽象出来,放在账户这一层面,结合账户业务类型标记,对同一个账户的资金变动进行统一的开票方式管理。
当账户本身进行业务类型的区分后,一个账户对应到一个业务类型,不会同时存在充值时发生纳税义务和消费时又发生纳税义务的情况。
另外,前文有提到账户充值存在不同体系的可能性,当充值账户的适用体系为 iOS 时,由于款项是先给到苹果公司,再与我们的平台结算,平台与客户没有产生直接的资金交互,所以这类账户下的资金不管是发生充值还是抵扣业务,平台都是不给客户开票的。
(2)删:账户注销
账户注销表示账户不再使用,要对账户信息进行删除销毁处理。
当客户决定不再使用我们平台的业务,确定不会再在我们平台中开展业务时,为了避免后续不必要的金融纠纷和数据信息风险,可以选择注销账户。
若需要发起账户注销,由于账户中原来存在资金流动,需要判断账户相关资金是否处理完毕,有必要提醒客户注销所带来的风险与损失。
(3)改:修改账户信息、修改账户状态
账户的修改包括修改账户信息和 修改账户状态。
修改账户信息和账户状态是指当账户的业务属性、业务状态发生变化时,为保证业务数据与系统数据的一致,需要在系统中进行相应的信息修改。
但账户关键属性一般是不允许修改的,具体可以根据实际业务进行考虑,如果实际业务中没有其他属性是可以进行修改的,这个功能可以暂缓考虑。
账户关键属性有账户主体、适用体系、业务类型、开票方式。
其中账户主体、适用体系、业务类型是在账户创建之初就明确的,不同的主体、体系、业务类型会创建对应的不同的账户,不应该发生变化;
如果是账户内的资金发生了归属对象的变化,可以通过转移资金的方式解决。
开票方式本身是由账户所属的业务类型和适用体系决定的,这两个属性不会发生改变,因此,开票方式也不存在修改的场景。
账户状态有正常、已冻结。
当账户状态为正常时,可以针对账户做的修改状态的操作为“冻结账户”,冻结后,账户将被限制,不可使用。
需要对账户进行冻结的场景及相应的处理方式有:
①客户遗失了卡,办理挂失,员工为客户进行冻结处理;
②账户发生盗刷情况,客户要求冻结账户,员工为客户进行冻结处理;
③客户账户透支部分逾期未还款,系统判断进行冻结处理;
④客户账户透支金额超过信用额度,系统判断进行冻结处理;
当账户恢复正常时,也可以为账户进行“解除冻结”处理。
(4)查:查询账户
查询账户即按指定的条件筛选出目标账户,可以查看目标账户的数量、业务属性,以及账户下资金的使用情况。
账户的业务属性有:客户名称、业务类型、适用体系、开票方式;
前文提到,账户是记录、整理和汇总原始数据的载体。账户下的资金的使用情况包括账户余额、账户收入总和以及账户支出总和。
客户经理可以查看自己负责的客户目前账户的资金余额情况,如果余额快要用完,可以去跟进营销;客户可以查看自己的账户资金余额情况,看是否需要充值。
我们查看的账户资金使用情况是一个实时的累计值,是会随时变化的。
账户余额由账户收入总和与账户支出总和之差计算得出,即:账户余额=收入总和-支出总和。
其中账户余额还分为 当前可用余额 和 当前不可用余额 。
当前不可用余额产生的场景如下:
①现金资金的提取和赠送金额的充负业务,如果还未通过审核,这部分金额会被暂时冻结,记为当前不可用余额;
②赠送金额有「有效期」的概念,即赠送的金额可以指定这部分金额的生效时间范围。如果统计时,存在赠送金额还未到生效时间,则这部分金额是未生效余额;如果存在赠送金额已经超过生效时间,但没有被使用,则这部分金额是已过期未使用。
2. 关于资金
(1)增:账户充值、退回抵扣
资金的增,即资金的进项,包括账户充值和 退回抵扣 。
账户充值是指与客户达成营收后,在平台为客户充值款项。
充值的场景包括客户经理与客户线下达成营收,成单后,客户经理需要在平台中为客户充值款项;或者是客户自主在线发起充值。
充值的资金类型包括 现金和 赠送金额。
其中赠送金额是指作为客情赠送或有充值赠送、充值返利的市场策略,给到客户的除充值部分外赠送的金额。
由于是赠送的金额,不是客户真实付款充值的,可以通过规定有效期的方式,给客户心理造成一种紧张感,敦促客户在规定时间内消费,同时尽可能降低成本。
当充值的资金类型为现金时,可以由客户经理为客户充值,也可以由客户自主发起充值。充值时如符合充值赠送的市场策略,则系统将自动为客户账户完成赠送金额的充值。
当赠送金额是在维护客情的场景下赠送给客户时,需要由客户经理在业务系统中发起直充,赠送部分金额需要经过审核人员确认才可生效。
退回抵扣是指当使用余额抵扣的订单需要退货或者退款时,抵扣部分的款项的退回。
当原订单完成退货或退款时,资金需要退回到对应的账户中;后续如果又产生了新订单,再执行扣费,从账户余额中进行扣款。
(2)删:余额抵扣、资金提取、资金充负
资金的删,即资金的出项,包括余额抵扣、资金提取和 资金充负 。
余额抵扣是指客户在购买商品或服务后,使用账户余额进行抵扣。
产生消费订单后,如客户账户中有余额,可以选择使用账户余额进行抵扣。当订单使用账户余额完成支付时,产生一条扣费流水,账户余额减少。
如果账户余额小于需支付的订单金额,可以选择先充值至充足的余额,再进行抵扣。例如当平台有充值赠送或者充值返利等促销活动时,可以提醒客户先充值,再扣款;或者是使用余额抵扣一部分订单金额,剩余部分使用其他方式完成支付。
资金提取是指客户从账户可用余额中取出款项。由于只有现金余额是通过客户真实付款产生的,赠送金额本身就是赠送给客户的,没有收取客户款项,所以资金提取只针对现金。
资金提取可能存在的场景是,客户不想继续使用或购买平台的产品了,想把剩余的资金都取出来。
当客户需要提取资金时,需要记录客户收款账号(银行账号或者是支付宝账号)和提取原因。
①为什么要记录客户收款账号?
为了便于统计和使用,了解某个主体下的资金变动情况和资金变动结果,会基于账户这个载体记录资金变动情况和汇总累计值。即资金增加后可以看到账户上增加了余额,资金减少后可以看到账户上减少余额。
账户中的资金在增加时,有很多种支付方式,现金、支付宝、微信……在资金提取的时候,也是基于账户进行的,提取的资金不对应到某次充值,无法得知当前提取的资金额在充值的时候是怎么收款的,因此也没有「原路退回」这一说,需要采集客户的收款方式,由财务线下处理款项退回给到客户。
②为什么要记录提取原因?
资金提取需要说明原因,经过审核人员确认后,再由财务人员线下处理退款,转账给客户,同时账户中减少相应资金金额。
另外,如果提取的金额在审核状态下,这部分金额将被暂时冻结,不计入可用余额,避免当提取审核通过后,发生账户余额不够提取的情况。
资金充负是指,为账户中的赠送金额余额做一个负值的充值。
可能存在的场景是,客户不想继续使用或购买平台的产品了,账户中剩余的现金提取出来后,还需要把原来赠送的金额处理掉。
如果赠送金额增加时,是通过促销策略产生的,那么在提取现金余额时,可以按充值时的约定,例如按比例对赠送金额余额进行扣减;
如果增加金额增加时,是通过直充产生的,那么当需要抹掉这部分金额时,可以为赠送金额做充负处理。
同样,资金充负需要说明原因,经过审核人员确认后,账户中减少相应资金金额。
如果充负的金额在审核状态下,这部分金额将被暂时冻结,不计入可用余额,避免当充负审核通过后,发生账户余额不够扣减的情况。
(3)改:资金状态
资金的修改指资金状态的修改。
资金的状态是跟进业务流程自动改变的。比如当资金发生提取或者充负时,还未通过审核,这部分金额会被冻结,通过审核后,这部分金额就会解除冻结,同时余额减少。
资金的修改这里不包括修改资金信息。
因为资金的信息,例如所属客户、所属账户,如果需要改变,通过资金的提取和充值即可转移;资金余额本身是一个统计值,是一个累计的结果,不存在改变的场景。
(4)查:流水明细
查询流水明细是指按指定的条件筛选出目标流水,流水是指资金变动的结果记录。可以查看目标流水中记录的数据,以了解资金的变动情况,核实确认账户中的资金余额统计是否准确。
流水明细中需要记录当前变动资金的所属客户、所属账户、资金类型、变动金额、交易类型、变动时间、关联单据、操作人、签单人。
其中,交易类型是指资金变动时对应的交易性质。分为资金进项(充值、退回抵扣)和资金出项(抵扣、资金提取、资金充负)两类。
关联单据是指资金变动时对应的记录交易情况的凭据。
不同的交易类型有其一一对应的单据,
如充值时,关联单据是充值单;退回抵扣时,关联单据是退款/退货单;
抵扣时,关联单据是使用余额抵扣的订单;资金提取时,关联单据是提取申请单;资金充负时,关联单据是充负申请单。
04 小结
资金账户管理系统的关键词即「账户」和「资金」。
其中「账户」是载体,「资金」会基于载体发生变动,由载体进行记录和归集。
从「账户」和「资金」出发,明确其增删改查功能模块对应的业务诉求,梳理设计思路。
作者:产品BBQ;公众号:产品BBQ,欢迎沟通交流~
本文由 @产品BBQ 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
大佬很强