这是支付账户清结算系列的第四篇文章,本文重点介绍清结算中的清结账户和账务的处理。 请务必阅读这几篇文章以便理解这里的和账流程。 一、支付账户账户体系 在设计清结算系统前,清结首先需要完成账户体系的和账梳理。 账户是支付账户用来记录会计科目所反映的业务内容的工具,它根据会计科目来开设的清结。 账户有多种维度的和账分类。 按照经济内容来说,支付账户账户分为资产类账户、清结负债类账户、和账所有者权益类账户、支付账户损益类账户、清结成本类账户和共同类账户。和账 按照会计周期内期末是否有余额,也分为实账户和虚账户。 1. 资产类账户 用来反映资产增加、减少以及增减变动结果的账户。和支付系统相关的主要资产类账户有: 银行存款、云服务器应收账款、预付账款、库存商品、发出商品等。 资产增加登记在借方,减少登记在贷方,期末有余额的话,一般出现在借方。 在一个会计期间,所有借方金额的累加为“借方本期发生额”,所有贷方金额的累加为“贷方本期发生额”。 资产账户的余额=借方期初余额+借方本期发生额-贷方本期发生额。 为了跟踪在每个银行的存款变更情况, 需要对公司在各个银行开通的收款账户设置对应的银行存款账户、应收账款账户。在小明购买会员卡的案例中,资产类账户包括: 2. 负债类账户 负债类账户也是实账户,记账规则跟资产类相反,负债增加记为贷,负债减少记为借,期末如有余额,一般在贷方,表明期末有债务实有额,负债类账户的余额计算: 贷方期末余额=贷方期初余额+贷方本期发生额-借方本期发生额 从支付系统的角度, 电商公司的自有账户,包括针对个人的账户和针对商户的账户,源码库一般放在负债类账户下,此外,应付账款、预收账款、应交税费等,也是负债类账户。 3. 所有者权益类账户 所有者权益类账户用来反映所有者权益增加、减少和变动结果的账户, 记账规则跟负债类账户一致:所有者权益增加记为贷,减少记为借。和支付系统有关的所权账户包括 本年利润、利润分配等账户。 企业取得的收入最终会使得所有者权益增加,因此收入类账户的记账方法跟所有者权益一致:增加记为贷,减少或者转销记为借,通常该账户期末无余额(因为期末收入都会转为所有者权益,如未分配利润等),属于虚账户。 4. 损益类账户 损益类账户分为收入类和费用类账户。 收入类账户指各种收入、补贴、投资收益,如主营业务收入、其他业务收入和营业外收入等,增加记为贷,减少记为借。 企业在日常经营活动中会发生各种各样的耗费,这些耗费在会计学上称为成本费用,它们是收入的抵减项目,在抵销收入之前,可以视为一种资产,因此成本费用类账户的记账规则跟资产类一样:增加记为借,减少或者转销记为贷。费用类账户包括:主营业务成本、其他业务成本、营销费用等。 按照企业会计制度的规定,损益类账户的科目余额,应该结转入利润分配科目,期末余额为零,为虚账户。 在本案例中,损益类账户包括: 5. 成本类账户 有成本核算的企业需要设立的账户,包括生产成本、劳务成本等,本文暂不涉及。 6. 共同类账户 这是反映特殊经济业务的账户, 本文暂不涉及。 7. 账户体系 二、账户结构 如前述文章介绍,我们采用复式借贷记账法。对于分户账,或者说明细账,如下示例: 在这个实例中, 账户中账务相关的结构包括: 在实现上,账户的各个属性更新时间并不一致,所以在设计账户表的时候,可以按照更新时机来划分表。 参考 账户设计 一文, 总的来说,账户的结构如下图所示,包括基本信息、关联实体、权限控制、余额和账务相关信息。 在存储上,账务相关信息一般是和账户其他信息相互独立处理,处理账务相关信息的子系统被称为账务子系统或者记账子系统。 三、支付流程 接着之前的小明购买会员卡的案例,不考虑优惠券和卡采购的情况,会计分录: 在线上的实时处理流程如下: 这5个步骤都是线上的流程,在此过程中,各个子系统之间的交互如下图所示。 我们逐步分析这里涉及到的对象。 四、支付订单 这个流程中,首先生成的是支付订单。这是一个比较简单的订单,仅涉及到一个商家和一个商品。 在比较复杂的电商场景中,一个订单会涉及到多个商家、多种商品以及对应的优惠活动。也就是,一个总订单会被拆分为多个子订单。这部分内容将在后续的订单系统设计一文中详细介绍。 而订单中和资金相关的内容,都需要在账户体系中建立对应的科目和账户。在请求支付时,只会将总订单提交支付,拆分子订单是在订单系统中完成的。 针对上述场景,为了简化处理,假定老熊公司当天总共完成了三笔会员卡交易,支付订单如下: 五、支付记录 在这个流程中,订单系统向支付系统请求支付时,支付系统将产生支付记录(支付订单)。 支付记录内容比较多,这些数据是后续进行记账的基础。 针对本案例,产生的支付记录的主要字段: 这里需要注意的几个属性: 在产生支付记录后,在上述流程的第5步通过消息机制来异步触发记账流程。账务系统接收到记账消息后,开始更新账户信息。记账分为两个阶段: 六、支付记账 支付记账是在支付流程中完成的,目的是让用户完成购买后,能够立即看到支付结果和账户余额。为了提升性能,支付记账一般采用单边账的形式,即将会计分录登记在用户侧或者商户侧。 在上述案例中,第6步处理,在服务器上与银行侧同步登记一笔从小明银行卡的支出,并在会员业务账户上登记一笔收入。 如果使用的是零钱支付,这一个步骤就很重要,从零钱账户上扣除费用计算余额,添加对应的消费记录,是在一个事务中完成。 七、会计记账 会计记账采用复式记账,不同业务记账方式也不一样。小明买卡的案例中,需要记录的条目有: 这3条记录是通过事务处理一次生成。当天发生的三笔交易,产生的记账内容如下: 实际实现上,科目一列,使用账号ID来替代。 每个账户的本期发生额,可以在另一个表中单独异步计算。 八、对账 在会计上,对账分三个部分:账证核对、账账核对和账实核对,做到账证相符、账账相符和账实相符。在电商支付系统中,需要完成的对账工作包括内部对账、外部对账和资金对账。 其中外部对账又分为和支付渠道的对账、和商户的对账以及和用户的对账。 这里简单介绍每个对账流程以及对记账的影响,详细的对账和轧账流程,将在下一篇文章中说明。 1. 内部对账 内部对账的内容包括: 这是后续账账核对和账实核对的基础,也是对外对账的基础。 这两个对账任务一般是在后台定时运行(5分钟运行一次),除非系统有bug或者发生故障,内部对账一般不会出现差错。如有差错,也需要人工处理。 2. 渠道对账 一般银行、第三方支付提供T+1的对账单,这是执行渠道对账的依据。 在上述案例中,支付系统每天拉取工行前一天的对账单,核对交易流水。与此同时,按照从工行获取的对账单,记录资金归集的账务。 接收到工行对账单后,按照对账单生成凭证: 注意上述的日期、凭证号,以及借贷关系。 3. 账账核对 完成渠道对账后,需要进行日结和试算平衡: 从科目维度,计算: 4. 账实核对 对电商公司来说,最重要的账实核对,是验证银行存款的变化和实际资金流向是一致的。一般是需要登录到银行网银系统中来人工核实。 如果对接的银行多,银行提供网银对账单,也可以自动进行,查询出入款总额。 详细的对账和轧账流程,将在下一篇文章中说明。 【本文为专栏作者“凤凰牌老熊”的原创稿件,转载请通过微信公众号“凤凰牌老熊”联系作者本人】 戳这里,看该作者更多好文