账户系统设计从入门到精通
账户体系是支付交易的基础,就像电池对于手机,油罐对于加油站,心脏对于人体?那么这么核心的系统是不是很难设计呢,其实恰恰不难;这也印证了那样一句话“大道至简”
一、什么是账户
我们先看看标准定义:账户是根据会计科目设置的,具有一定格式和结构,用于反映会计要素的增减变动情况及其结果的载体。
增减变动的会计分录的书写规范:
借:科目A 金额1
贷:科目B 金额1
账户结构规范:
账户的基本结构应同时具备以下内容:
账户的名称,即会计科目;
日期和摘要,即记载经济业务的日期和概括说明经济业务的内容;
增加方和减少方的金额及余额;
凭证号数,即说明记载账户记录的依据。
财务知识不是很充足的同学可能对以上的账户定义很难理解和绕口;我们从业务的角度来看账户,后面的电子账户我们都会从业务角度去看,抛弃财务视角。
从业务视角来看账户其实就是用于记录某个主体的某类型资金的余额以及余额变动明细的数据载体。
所以账户有3个关键的点:
账户余额:这个账户有多少钱
账户流水:这个账户资金进进出出的明细记录
账户交易:怎么把钱放进去,怎么把钱取出来
抓住了上面3个点我们基本就抓住了账户设计的核心了,是不是很简单
基于这3个点去构建账户的辅助设施,比如账户主体,账户种类,账户余额结构,账户流水的记录字段,账户的功能权限,账户的出入账,账户服务(账户开通注销,冻结解冻,余额流水查询等)等。
二、账户的种类
从财务科目分类来看内部账户,账户可以分资产类账户,负债类账户,损益类账户,共同类账户,然后就是不同的科目。
但是站在业务的视角,我们更多是基于业务场景来对账户进行命名,比如商户的结算款会结算到商户结算账户,支付公司在银行开的账户叫备付金账户,备付金账户又分存管户,收付户,汇缴户;个人账户,企业账户;会员子账户,商户子账户,中间担保户。
所以从账户命名上我们基本就知道了这个账户是干嘛用的;就像你有10张卡,一张是放工资的你叫他工资卡,一张是公积金的你叫公积金卡等等;所以这时候我们基于业务命名,目的是为了区分账户用途。
但是收回来我们发现,无论账户叫什么名字,都是有账户余额,账户流水,账户交易;无论卡叫什么名字都是银行卡;所以账户的本质属性不变,设计办法基本相通,唯一会有不同的是附属内容;比如支出户只能打款不能收款,中间担保户不能为负等等,权限不同,主体不同,交易特点不同.....
小样,你以为穿个马甲我就不认识你啦,你装钱的,能进能出,记得明明白白;别管你叫啥我都知道怎么设计,不管我叫你啥我都这么设计
三、账户的结构
账户结构:
账户主体:
这个账户是谁的,个人的?企业的?内部业务线的?
账户结构树:
就像会计科目,就像商品类目,由于账户可能种类繁多所以有时也需要一个结构树,比如:
账户类型:
账户的分类,比如个人账户/对公账户,结算账户/付款账户,收款账户/打款账户。
账户名称:
钱多少不重要,名字一定要有气质:陈老师全球通国际清算私房钱账户。
账户余额:
账户余额一般为了业务需要,会设计多个金额属性,比如冻结金额,可用金额,可提金额。
账户流水:
账户的资金变动记录,记录对手账户,收支方向,金额,费用类型等基本信息。
账户服务:
开通/关闭
权限设置
入账
扣账
调账
冻结/解冻
余额查询
流水查询
账户底线原则
支付成功才入账,扣账成功才出款,一分不少真安全。
四、如何设计类型
账户名称,结算户,付款户,支出户。
原则:名称是便于区分业务,账户本质相同。
就像有的公司叫产品经理,有的公司就产品策划,有的公司叫需求分析师,但本质大家干的都是产品设计工作。
基于主体类型命名账户:个人账户,企业账户;
基于业务类型命名账户:电商商家结算户,快递商家结算户;
基于资金属性命名账户:工资账户,公积金账户,手续费账户;
基于账户职能命名账户:待清算账户,中间担保账户;
等等。
现在应该清楚设计账户时如何给账户命名了吧,简单易记,容易区分。
五、账户的附属设施
有了电池是不是还需要充电线,有了油罐是不是还得有加油设备,安全设备;同样有了账户是不是还得有附属模块才能实现账户的资金管理职能。
费用类型:
每笔交易都有业务场景,比如下单付款,投诉罚款,用户充值,余额提现,账户年费等等,一个是为了让用户知道这是笔什么交易,另一个就是财务能够知道编写什么科目的会计凭证。
入账规则:
上游有业务系统比如账务系统请求一笔费用的入账,那么如那个账户呢,收支方向如何呢?所以入账规则就是来确定这笔入账怎么入的问题,规则主要有2部分组成。
冻结规则:
有些费用入账后是需要暂时冻结的,比如用户领的活动奖金,必须在冻结7个工作日之后才能解冻;某业务线的商家结算收入,统一在次月15号可提走,所以一条入账规则需要关联一个冻结规则。
费用/入账规则/冻结规则关系:
一个费用入账时,可能记一笔账,也可能记多笔;比如商户佣金费用,则会入两笔账:成本账户入一笔扣款,商家佣金账户入一笔收入;而扣款不用冻结,收入需要冻结7天。
对外服务:
任何系统都不是孤岛,账户系统同样,要将能力赋能给上游实现自己的价值;账户向外提供的服务基础的应该包含:开户,注销,查询(余额,流水,状态),交易(支付,退款,充值,提现,冻结)等。
账户管理后台:
账户系统需要提供一个业务后台给到相关的运营人员,财务等角色;后台可以查看所有的账户以及账户的状态,所属主体以及余额情况,还可以操作账户进行注销。
还需要能够查看所有的出入账流水,配置相关费用,配置入账规则和冻结规则。
六、账户系统架构图
功能架构:
业务架构:
七、账户入账流程图
八、账户系统后台
上面基本已经很清楚了,账户系统后台页面文章不再详述。
九、账户的应用
账户除了管钱之外还可以在此之上构建一些应用产品,比如下面这两个:
钱包:像微信钱包,就是用户的一个虚拟账户,在钱包里可以看到余额,可以充值余额,也可以将余额里的钱提现到银行卡;
余额支付:账户可以作为一种支付方式,包装出一个支付通道,利用平台自己的账户进行平台商品的购买支付,当然这个要考虑合规性。
十、合规浅谈
果然最后说的都是重头戏,账户作为一种资金池形态,要严格做好其合规性,如果平台没有资质牌照,那么自建可以但是用户账户的真实资金一定要放到监管账户当中进行监管,避免违规沉淀资金池,其他合规风险读者朋友们自己思考一下吧。
账户体系是支付交易的基础,就像电池对于手机,油罐对于加油站,心脏对于人体?那么这么核心的系统是不是很难设计呢,其实恰恰不难;这也印证了那样一句话“大道至简”
一、什么是账户
我们先看看标准定义:账户是根据会计科目设置的,具有一定格式和结构,用于反映会计要素的增减变动情况及其结果的载体。
增减变动的会计分录的书写规范:
借:科目A 金额1
贷:科目B 金额1
账户结构规范:
账户的基本结构应同时具备以下内容:
账户的名称,即会计科目;
日期和摘要,即记载经济业务的日期和概括说明经济业务的内容;
增加方和减少方的金额及余额;
凭证号数,即说明记载账户记录的依据。
财务知识不是很充足的同学可能对以上的账户定义很难理解和绕口;我们从业务的角度来看账户,后面的电子账户我们都会从业务角度去看,抛弃财务视角。
从业务视角来看账户其实就是用于记录某个主体的某类型资金的余额以及余额变动明细的数据载体。
所以账户有3个关键的点:
账户余额:这个账户有多少钱
账户流水:这个账户资金进进出出的明细记录
账户交易:怎么把钱放进去,怎么把钱取出来
抓住了上面3个点我们基本就抓住了账户设计的核心了,是不是很简单
基于这3个点去构建账户的辅助设施,比如账户主体,账户种类,账户余额结构,账户流水的记录字段,账户的功能权限,账户的出入账,账户服务(账户开通注销,冻结解冻,余额流水查询等)等。
二、账户的种类
从财务科目分类来看内部账户,账户可以分资产类账户,负债类账户,损益类账户,共同类账户,然后就是不同的科目。
但是站在业务的视角,我们更多是基于业务场景来对账户进行命名,比如商户的结算款会结算到商户结算账户,支付公司在银行开的账户叫备付金账户,备付金账户又分存管户,收付户,汇缴户;个人账户,企业账户;会员子账户,商户子账户,中间担保户。
所以从账户命名上我们基本就知道了这个账户是干嘛用的;就像你有10张卡,一张是放工资的你叫他工资卡,一张是公积金的你叫公积金卡等等;所以这时候我们基于业务命名,目的是为了区分账户用途。
但是收回来我们发现,无论账户叫什么名字,都是有账户余额,账户流水,账户交易;无论卡叫什么名字都是银行卡;所以账户的本质属性不变,设计办法基本相通,唯一会有不同的是附属内容;比如支出户只能打款不能收款,中间担保户不能为负等等,权限不同,主体不同,交易特点不同.....
小样,你以为穿个马甲我就不认识你啦,你装钱的,能进能出,记得明明白白;别管你叫啥我都知道怎么设计,不管我叫你啥我都这么设计
三、账户的结构
账户结构:
账户主体:
这个账户是谁的,个人的?企业的?内部业务线的?
账户结构树:
就像会计科目,就像商品类目,由于账户可能种类繁多所以有时也需要一个结构树,比如:
账户类型:
账户的分类,比如个人账户/对公账户,结算账户/付款账户,收款账户/打款账户。
账户名称:
钱多少不重要,名字一定要有气质:陈老师全球通国际清算私房钱账户。
账户余额:
账户余额一般为了业务需要,会设计多个金额属性,比如冻结金额,可用金额,可提金额。
账户流水:
账户的资金变动记录,记录对手账户,收支方向,金额,费用类型等基本信息。
账户服务:
开通/关闭
权限设置
入账
扣账
调账
冻结/解冻
余额查询
流水查询
账户底线原则
支付成功才入账,扣账成功才出款,一分不少真安全。
四、如何设计类型
账户名称,结算户,付款户,支出户。
原则:名称是便于区分业务,账户本质相同。
就像有的公司叫产品经理,有的公司就产品策划,有的公司叫需求分析师,但本质大家干的都是产品设计工作。
基于主体类型命名账户:个人账户,企业账户;
基于业务类型命名账户:电商商家结算户,快递商家结算户;
基于资金属性命名账户:工资账户,公积金账户,手续费账户;
基于账户职能命名账户:待清算账户,中间担保账户;
等等。
现在应该清楚设计账户时如何给账户命名了吧,简单易记,容易区分。
五、账户的附属设施
有了电池是不是还需要充电线,有了油罐是不是还得有加油设备,安全设备;同样有了账户是不是还得有附属模块才能实现账户的资金管理职能。
费用类型:
每笔交易都有业务场景,比如下单付款,投诉罚款,用户充值,余额提现,账户年费等等,一个是为了让用户知道这是笔什么交易,另一个就是财务能够知道编写什么科目的会计凭证。
入账规则:
上游有业务系统比如账务系统请求一笔费用的入账,那么如那个账户呢,收支方向如何呢?所以入账规则就是来确定这笔入账怎么入的问题,规则主要有2部分组成。
冻结规则:
有些费用入账后是需要暂时冻结的,比如用户领的活动奖金,必须在冻结7个工作日之后才能解冻;某业务线的商家结算收入,统一在次月15号可提走,所以一条入账规则需要关联一个冻结规则。
费用/入账规则/冻结规则关系:
一个费用入账时,可能记一笔账,也可能记多笔;比如商户佣金费用,则会入两笔账:成本账户入一笔扣款,商家佣金账户入一笔收入;而扣款不用冻结,收入需要冻结7天。
对外服务:
任何系统都不是孤岛,账户系统同样,要将能力赋能给上游实现自己的价值;账户向外提供的服务基础的应该包含:开户,注销,查询(余额,流水,状态),交易(支付,退款,充值,提现,冻结)等。
账户管理后台:
账户系统需要提供一个业务后台给到相关的运营人员,财务等角色;后台可以查看所有的账户以及账户的状态,所属主体以及余额情况,还可以操作账户进行注销。
还需要能够查看所有的出入账流水,配置相关费用,配置入账规则和冻结规则。
六、账户系统架构图
功能架构:
业务架构:
七、账户入账流程图
八、账户系统后台
上面基本已经很清楚了,账户系统后台页面文章不再详述。
九、账户的应用
账户除了管钱之外还可以在此之上构建一些应用产品,比如下面这两个:
钱包:像微信钱包,就是用户的一个虚拟账户,在钱包里可以看到余额,可以充值余额,也可以将余额里的钱提现到银行卡;
余额支付:账户可以作为一种支付方式,包装出一个支付通道,利用平台自己的账户进行平台商品的购买支付,当然这个要考虑合规性。
十、合规浅谈
果然最后说的都是重头戏,账户作为一种资金池形态,要严格做好其合规性,如果平台没有资质牌照,那么自建可以但是用户账户的真实资金一定要放到监管账户当中进行监管,避免违规沉淀资金池,其他合规风险读者朋友们自己思考一下吧。
陈天宇宙:多平台支付领域专栏作者,十年资深产品;前某宝支付、某东支付产品;支付产品经理网http://paypm.cn创始人,天使投资人;专注为10万支付产品经理和支付机构以及企业提供深度支付内容和服务!公众号:陈天宇宙
账户系统设计从入门到精通相关推荐
- EOS从入门到精通-账户体系(文字稿)
大家好,非常感谢参加<EOS从入门到精通>系列课程,我是王巨,今天是EOS技术白皮书解读的第二讲.今天的课程原本计划讲两部分内容,账户系统和并行执行.但是一天的备课下来,我发现账户系统的内 ...
- SQL Server2008从入门到精通pdf
下载地址:网盘下载 内容介绍 编辑 <SQL Server 从入门到精通>从初学者的角度出发,通过通俗易懂的语言.丰富多彩的实例,详细地介绍了SQLServer2008开发应该掌握的各方面 ...
- 《C++ 开发从入门到精通》——第2章 C++的重要特质分析2.1 什么是面向对象(object-oriented)...
本节书摘来自异步社区出版社<C++ 开发从入门到精通>一书中的第2章,第2.1节,作者: 王石磊 , 韩海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2 ...
- EOS从入门到精通(四)
大家好,非常感谢参加<EOS从入门到精通>系列课程,我是王巨,今天是EOS技术白皮书解读的第四讲.我们来解读EOS白皮书的最后几部分.今天的内容相对于上一节课会简单一些,主要讲EOS的治理 ...
- EOS从入门到精通(三)
大家好,非常感谢参加<EOS从入门到精通>系列课程,我是王巨,今天是EOS技术白皮书解读的第三讲.今天我们来解读EOS白皮书中的"应用程序的确定性并行"和"T ...
- 云开发系列课程让你从入门到精通快速上手Serverless和云开发技术
简介:云开发系列课程主要介绍了从入门到精通快速上手Serverless和云开发技术.学习内容涵盖云开发协同.云函数.云数据库.多媒体托管.前后端一体化框架等Serverless Web开发必备知识.希 ...
- python写cadance skill_《Cadence 16.6电路设计与仿真从入门到精通》——2.4 Design Entry CIS原理图图形界面...
本节书摘来自异步社区<Cadence 16.6电路设计与仿真从入门到精通>一书中的第2章,第2.4节,作者: 王超 , 胡仁喜等 更多章节内容可以访问云栖社区"异步社区" ...
- 编程大讲坛、坛坛是佳酿--编程大讲坛:Visual Basic核心开发技术从入门到精通...
[书名]编程大讲坛:Visual Basic核心开发技术从入门到精通 [作者]薛小龙 [ISBN]978-7-121-09057-8 [出版社]电子工业出版社 [出版日期]2009年9月 [定 价] ...
- Kali Linux 从入门到精通(五)-测试环境准备
Kali Linux 从入门到精通(五)-测试环境准备 准备实验环境 渗透非系统授权的弊端 搭建自己的实验环境 安装虚拟机 微软最新软件 http://msdn.microst.com/en-ca/s ...
最新文章
- vscode 调试html页面,基于VSCode调试网页JavaScript代码过程详解
- python 对象创建_从Python中的基类对象创建对象
- SAP 外币金额 汇率 转换
- 没想到,Git居然有3种“后悔药”!
- COCI 2018/2019 CONTEST #2 Solution
- Strontium-90和Raspberry Pi可以教大学生,Thyrosim可以治疗甲状腺,还有更多新闻
- 限制checkbox复选框的最大可选数量
- java arraylist用法_Java入门系列:实例讲解ArrayList用法
- Hls之TS流分离音视频
- 外汇EA自动交易的利与弊
- Web 服务器性能与站点访问性能的优化思路
- Silverlight——施工计划日报表(一)
- Spectra Logic的数据备份和归档解决方案推动企业磁带销量增长
- php解决中文乱码,PHP中文乱码的常见解决方法总结
- 软件测评师教程之软件测试基础
- python中excel处理及生成图表
- VS2008运行过程中出现regsvr32问题解决方法记录
- WebSocket 实现断线重连 详细代码 项目源码
- 聊一下面试经常问的SQL注入
- 【跨年】《2020年跨年演讲合集-吴晓波、罗振宇、丁祖昱等》(附下载链接)...
热门文章
- 前端Bootstrap框架
- python中成绩及格判断代码_用python输入一个百分制考试成绩,判断是否及格并输出结果?...
- [转载]十六款值得关注的NoSQL与NewSQL数据库
- 画一座冰山,看它沉浮!从简笔画到数据科学,Kaggle冰川图像分类比赛如何征服“轮船克星”?...
- 伯努利分布(Bernouli Distribution)
- 使用Qt实现一个图像处理软件0
- 声网Agora 2020 年 Q3 财报
- Vue中的插件小练习
- cnn 预测过程代码_【交通+AI】使用CNN+LSTM实时出租车出行预测(上)
- Java 程序如何正确地打日志