账务系统是一个以会计为基础的系统:会计是把企业有用的各种经济业务统一成以货币为计量单位,通过记账、算账、报账等一系列程序来提供反映企业财务状况和经营成果的经济信息,账务系统就是实现这些过程的程序的总和。对于支付系统,账务系统依据会计科目的划分,一般将系统的科目分为三类:资产类、负债类、损益类。这三类科目下可以划分多个总账科目,也就是一级科目。比如:资产类科目可以细分为银行存款、应收账款和其他应收账款;负债类科目细分为应付账款、其他应付账款;损益类科目细分为费用、收入。如果有需要更细致的划分的话,一级科目还可以继续分化出二三四级科目,具体层级视需要而定。通常所说的支付系统的账户体系,其中的账户,就是挂在应付账款的末位科目下的外部账户(为什么是挂在应付账款下呢?因为支付系统里外部账户里登记的资金数额,并不是支付机构自己的资产,而是它的负债,是它应该付给用户的资金数值)。这里提到的账户体系割裂了外部账户和内部账户的关系,毕竟一定程度上来说,内部账户是属于会计系统的部分,是真正的末位科目,但通常以账户性质记录支付机构侧的资金变化;而外部账户则是相对于内部,针对用户设置的各种账户,记录用户侧的资金变化。相应的,账务系统本身也可以分成针对外部账户的账务系统和会计系统,这样的设计可以更快的实时的响应用户账户资金的变化。不过这里还是以两者合一的账务系统为例,虽然本质上没有什么区别,但个人觉得这样更为贴合记账的实际情况。
顾名思义,复式记账法是一种记账的方法,按照种类不同又可以分成三类记账法,但规定使用的复式记账法只有其中一类——借贷记账法。复式记账法是对任何一笔业务都以相等的金额,在两个或两个以上的相关账户中作相互联系的登记,从而能够全面、系统地核算经济业务对各会计要素的影响及其结果。
下面是主要要注意的几个点:
一般而言,了解复式记账法的这些就足够了,重要的是要知道如何根据业务实际情景设置会计分录(不会设置的话,可以询问财务人员),设置了分录之后,按照分录记录账务流水即可。
账务系统作为支付系统的一个子系统,它本身的功能模块可以划分为三块:管理后台、对其他子系统提供记账接口、以及一套账务汇总和检验借贷平衡的工具。
一般在功能设置上,会提供围绕科目、会计分录管理的基础功能,以及包括手工调账、账户信息查询、内部账户余额和收支明细查询、总账查询、会计传票查询在内的账务管理功能。
账务系统服务的其他子系统有:客户系统、订单系统、对账系统、清结算系统。客户系统调用账务系统的目的并不是为了记账,而是为了后来的记账做准备:在用户注册成功之后,调用开户接口,为用户在支付系统中建立他自己的虚拟账户,简称虚户(可以类比用户在银行开立的银行卡号)。订单系统记账是唯一一个考验账务系统性能的子系统:如果订单系统交易量不大的话,还好说;如果交易量很大的话,则就很可能要按照上面提到的,将账务系统分成针对外部账户的账务系统和会计系统,让账务系统更快的实时的响应用户账户资金的变化。订单系统调用记账接口分为两种:一种正向交易(收款交易),一种反向交易(付款交易)。正向交易一般先收款成功,再调用记账接口。账务系统应先登记流水,免得记账失败,根据业务类型,获取用于记账的会计分录,按照分录登记记账明细,检查借贷是否平衡,不平衡的话,对流水进行标识。
(1)正向交易会计分录举例
假如用户A在支付平台通过银联渠道充值5元,则分录如下:
注:借方本来应该是银行存款,而且与渠道相关的所有会计分录都可以简单的写成与银行存款科目的借贷关系,但是为什么会写上应收账款-渠道充值款-银联呢?因为渠道方并不是实时的将资金结算给支付机构,一般要T+1才能将T日的交易金额汇总结算给支付机构,所以支付机构这里的记账才不会直接与银行存款进行借贷,而是体现一个“应收”。
假如用户A在支付平台通过银联渠道购买了商户B 5元的商品,则分录如下(不计手续费):
分录中没有体现用户A的虚户资金变动,如果有需要的话,可以将会计分录调整如下:
如果存在政策方面的考虑,不以用户A的虚户中转的话,可以将会计分录调整如下:
反向交易一般先调用记账接口,再进行付款,账务系统处理过程如正向交易。
(2)反向交易会计分录举例
假如用户A在支付平台提现5元,则分录如下:
注:为什么这里可以直接与银行存款形成借贷关系?因为付款的操作是以支付机构为主,支付机构可以默认付款成功之后,自己的银行存款立即会付款5元给用户。
对账系统调用记账接口,一般是在T+1日,与渠道方提供的对账单核对完成之后,将渠道充值款转换为待结算款,会计分录如下:
注:与对账单对账,可能会出现差异,所以会设置一个差错账处理的功能,如果真正产生了差异,就需要查明差错原因,进行补单或撤单。差异一般分两种情形:长款和短款,但短款是决不允许发生的,一旦发生则说明系统存在漏洞。
长款是指渠道方有成功扣款记录,但支付平台没有记录的情况,这个时候需要做补单处理,会计分录如下:
短款是指渠道方无扣款记录,但支付平台有记录的情况,这个时候需要做撤单处理,但短款是决不允许发生的,一旦发生则说明系统存在漏洞,会计分录如下:
清结算系统是对商户资金的结算、对代理商的分润。
仅以对商户结算为例,如果是结算到银行账户,则会计分录如下:
如果是结算到支付系统虚户,则会计分录如下:
另外:手工调账是账务出现差异时,用于纠错的万能手段。
平衡检验,这里是指做发生额试算平衡检查,即利用会计凭证,对每一笔交易进行借贷记账记录的检查,检查该笔交易记账中涉及的各账户借方发生额合计是否等于各账户贷方发生额合计。如果相等,则可以初步判断该笔记账没有问题,否则,则需要登记异常记录,由人工核查这笔记账哪里出了问题。账务汇总是指将账务系统的每一笔记账从末位科目逐级汇总到总账科目。这个过程在应用层面有两种实现方式:
(1)每一笔记账发生时,即完成账务汇总
这种方式的好处是可以看到各科目的实时账务变化,但是本人还不能理解这种好处能够为企业运营带来什么样的好处,不知道是看到这种实时变化就能定下企业战略,还是因为随时看两眼能看到数据变化,就得到了某种满足。假如交易量高企,服务器满负荷运行,还应该为了看到这种实时账务变化而占用服务器资源吗?很显然并不应该,由此,一般企业都会采用第二种实现方式。
(2)定下一个时间点作为一个账务周期的结束时间,将这个账务周期内的所有记账记录汇总起来进行账务汇总
由于选定的这个时间点不一定是零点,所以这个账务周期还有一个有别于自然日的概念,叫做会计日,这个时间点也被称作日终。日终时间点的选择视具体行业而定,一般选在夜间交易量最低、甚至没有交易的时候,因为账务汇总处理的数据量巨大,占据的服务器资源较多,选在交易量最低的时候比较合适。账务汇总完成之后,需要进行余额试算平衡,即检查全部账户借方期末余额合计与全部账户贷方期末余额合计是否相等。另外,还可以基于公式:科目期初余额+科目当日发生额=科目期末余额,检查上日科目期末余额加上科目当日发生额是否等于科目期末余额。总分核对,依据的公式是:下级科目余额总和=上级科目余额,可以采用比较所有外部账户和内部账户的余额之和与它们对应的上级科目的余额是否相等的方式达到总分核对的目的。虽然是使用了各种方式检查账务问题,但这不意味着记账记录完全正确,因为有些账户记录的错误很难发现,比如:借贷双方发生同等金额的记录错误、全部漏记或重复记录同一项经济业务、账户记录发生借贷方向错误,这些错误需要使用其他方法进行查找,如对账。