支付清结算之账户和账务处理(详解)

article/2025/8/20 17:41:50

 

        本文重点介绍清结算中的账户和账务的处理。正文开始前可复习《支付清结算之基本概念和入门》和《支付清结算之渠道侧处理》,以便理解这里的流程。

目录

一、账户体系

1、资产类账户

2、负债类账户

3、所有者权益类账户

4、损益类账户

5、成本类账户

6、共同类账户

二、账户结构

三、支付流程

四、支付订单

五、支付记录

六、支付记账

七、会计记账

八、对账

1、内部对账

2、渠道对账

3、账账核对

4、账实核对



一、账户体系


        在设计清结算系统前,首先需要完成账户体系的梳理。 账户是用来记录会计科目所反映的业务内容的工具,它根据会计科目来开设的。 账户有多种维度的分类。 按照经济内容来说,账户分为资产类账户、负债类账户、所有者权益类账户、损益类账户、成本类账户和共同类账户。 按照会计周期内期末是否有余额,也分为实账户虚账户


1、资产类账户

        用来反映资产增加、减少以及增减变动结果的账户。和支付系统相关的主要资产类账户有: 银行存款、应收账款、预付账款、库存商品、发出商品等。 资产增加登记在借方,减少登记在贷方,期末有余额的话,一般出现在借方。 在一个会计期间,所有借方金额的累加为“借方本期发生额”,所有贷方金额的累加为“贷方本期发生额”。
资产账户的余额=借方期初余额+借方本期发生额-贷方本期发生额。
为了跟踪在每个银行的存款变更情况, 需要对公司在各个银行开通的收款账户设置对应的银行存款账户、应收账款账户。在小明购买会员卡的案例中,资产类账户包括:
银行存款:这是一个总账账户,记录电商公司在各个银行的总存款。
应收账款:这是一个总账账户,记录在银行的应收账款,这是虚账户,期末无余额。
银行存款-工行:这是一个明细账户,对应在工行的对公账户的存款变化;
应收账款-工行:这是一个明细账户,记录在工行的收款情况,这是虚账户,期末无余额。


2、负债类账户


        负债类账户也是实账户,记账规则跟资产类相反,负债增加记为贷,负债减少记为借,期末如有余额,一般在贷方,表明期末有债务实有额,负债类账户的余额计算:
贷方期末余额=贷方期初余额+贷方本期发生额-借方本期发生额。
从支付系统的角度, 电商公司的自有账户,包括针对个人的账户和针对商户的账户,一般放在负债类账户下,此外,应付账款、预收账款、应交税费等,也是负债类账户。


3、所有者权益类账户


        所有者权益类账户用来反映所有者权益增加、减少和变动结果的账户, 记账规则跟负债类账户一致:所有者权益增加记为贷,减少记为借。和支付系统有关的所权账户包括 本年利润、利润分配等账户。 企业取得的收入最终会使得所有者权益增加,因此收入类账户的记账方法跟所有者权益一致:增加记为贷,减少或者转销记为借,通常该账户期末无余额(因为期末收入都会转为所有者权益,如未分配利润等),属于虚账户。


4、损益类账户


        损益类账户分为收入类和费用类账户。
收入类账户指各种收入、补贴、投资收益,如主营业务收入、其他业务收入和营业外收入等,增加记为贷,减少记为借。
企业在日常经营活动中会发生各种各样的耗费,这些耗费在会计学上称为成本费用,它们是收入的抵减项目,在抵销收入之前,可以视为一种资产,因此成本费用类账户的记账规则跟资产类一样:增加记为借,减少或者转销记为贷。费用类账户包括:主营业务成本、其他业务成本、营销费用等。
按照企业会计制度的规定,损益类账户的科目余额,应该结转入利润分配科目,期末余额为零,为虚账户。
在本案例中,损益类账户包括:
主营业务收入,这是总分类账户。
主营业务收入-会员卡,针对会员卡业务的收入。
营销费用,这是总分类账户。
营销费用-优惠券,用来跟踪优惠券相关的支出。
渠道费用,这是总分类账户。
渠道费用-工行: 用来跟踪在工行的渠道费用支出。


5、成本类账户


        有成本核算的企业需要设立的账户,包括生产成本、劳务成本等,本文暂不涉及。


6、共同类账户


        这是反映特殊经济业务的账户, 本文暂不涉及。

二、账户结构


        如前述文章介绍,我们采用复式借贷记账法。对于分户账,或者说明细账,如下示例:

在这个实例中, 账户中账务相关的结构包括:
账户名称:如上述的“应收账款-工行收款”
会计分录: 除了登记借方金额、贷方金额,还需更新账户余额
期末借方余额、期末贷方余额、期末余额:按期定时计算。在日切时,计算日发生额和余额。在按月、季度和年作为会计周期时也采用类似的方法处理。 除了日切是必须的,其它时间段的处理是根据财务需要来实现。
在实现上,账户的各个属性更新时间并不一致,所以在设计账户表的时候,可以按照更新时机来划分表。

        在存储上,账务相关信息一般是和账户其他信息相互独立处理,处理账务相关信息的子系统被称为账务子系统或者记账子系统。


三、支付流程


        接着之前的小明购买会员卡的案例,不考虑优惠券和卡采购的情况,会计分录:

应收账款-工行收款 100-100*0.1% = 99.9
服务成本-工行手续费 100*0.1% = 0.1
: 主营业务收入-会员卡 100
在线上的实时处理流程如下:
用户购买会员卡,提交订单,会员卡向订单系统请求生成订单,订单系统向支付系统发出支付请求;
支付系统生成支付记录,并向银行发出请求;
银行实时从小明的银行卡账户上扣款100元,通知支付系统小明支付成功;
支付系统账务子系统在自己的账户体系中记录小明的这一笔消费支出,给会员卡业务账户增加对应的资金,通知会员卡系统发送卡给小明。
支付系统发送消息异步通知会计系统进行记账。
这5个步骤都是线上的流程,在此过程中,各个子系统之间的交互如下图所示。 我们逐步分析这里涉及到的对象。

四、支付订单


        这个流程中,首先生成的是支付订单。这是一个比较简单的订单,仅涉及到一个商家和一个商品。 在比较复杂的电商场景中,一个订单会涉及到多个商家、多种商品以及对应的优惠活动。也就是,一个总订单会被拆分为多个子订单。这部分内容将在后续的订单系统设计一文中详细介绍。 而订单中和资金相关的内容,都需要在账户体系中建立对应的科目和账户。在请求支付时,只会将总订单提交支付,拆分子订单是在订单系统中完成的。

针对上述场景,为了简化处理,假定老熊公司当天总共完成了三笔会员卡交易,支付订单如下:

五、支付记录


        在这个流程中,订单系统向支付系统请求支付时,支付系统将产生支付记录(支付订单)。 支付记录内容比较多,这些数据是后续进行记账的基础。

上述的三个订单,两笔通过工行支付,一笔通过支付宝支付,其产生的支付记录如下,此处省略了其他和记账无关的字段内容:

这里需要注意的几个属性:
订单号:这是总订单号。支付系统不再对订单进行拆分。 订单拆分是订单系统的功能。
支付流水号:在支付记录中,针对每个(总)订单号,会有对应的支付流水号。 如果用户使用组合支付,如上述场景,小明使用余额支付了20元,使用银行卡支付了剩余的80元,那这将产生2个支付流水号。为了避免洗钱风险,简化订单处理,包括淘宝在内,现在一般都不再提供组合支付的支持。
支付方式和支付渠道: 用户选择的支付方式和实际执行支付的渠道可以是不一样的。比如用户选择了广发信用卡来支付,但实际上电商公司没有直接对接农行,而是通过支付宝来对接, 那对应的支付渠道就是支付宝。
本条记录在支付成功后,会产生记账凭证和对账凭证。这一条记录将产生多条会计分录,记账凭证是关联这些会计分录和支付记录的字段。对账凭证是根据对账周期来分配的。在日切后,对账凭证号相应的也会做更新。
在产生支付记录后,在上述流程的第5步通过消息机制来异步触发记账流程。账务系统接收到记账消息后,开始更新账户信息。记账分为两个阶段:
支付记账,针对线上的账户实时更新的需求,需要让用户及时看到账户余额和订单状态,账务信息记录到用户和商户上,采用单边账的形式。
会计记账,采用复式记帐法,满足会计记账需求,记录会计分录和余额,为对账和清结算提供支持。


六、支付记账


        支付记账是在支付流程中完成的,目的是让用户完成购买后,能够立即看到支付结果和账户余额。为了提升性能,支付记账一般采用单边账的形式,即将会计分录登记在用户侧或者商户侧。
在上述案例中,第6步处理,在服务器上与银行侧同步登记一笔从小明银行卡的支出,并在会员业务账户上登记一笔收入。 如果使用的是零钱支付,这一个步骤就很重要,从零钱账户上扣除费用计算余额,添加对应的消费记录,是在一个事务中完成。


七、会计记账


        会计记账采用复式记账,不同业务记账方式也不一样。小明买卡的案例中,需要记录的条目有:
在工行收款账户下,登记 99.9的借记 条目
在工行手续费的账户下,登记0.1元的借记条目
在主营业务收入-会员卡的账户下,登记100元的贷记条目。
这3条记录是通过事务处理一次生成。当天发生的三笔交易,产生的记账内容如下:

实际实现上,科目一列,使用账号ID来替代。 每个账户的本期发生额,可以在另一个表中单独异步计算。


八、对账


        在会计上,对账分三个部分:账证核对、账账核对和账实核对,做到账证相符、账账相符和账实相符。在电商支付系统中,需要完成的对账工作包括内部对账、外部对账和资金对账。 其中外部对账又分为和支付渠道的对账、和商户的对账以及和用户的对账。 这里简单介绍每个对账流程以及对记账的影响,详细的对账和轧账流程,将在下一篇文章中说明。

1、内部对账


内部对账的内容包括:
核实账户系统中的账务与支付记录的一致性;
核实会计系统中的账务与支付记录的一致性。
这是后续账账核对和账实核对的基础,也是对外对账的基础。 这两个对账任务一般是在后台定时运行(5分钟运行一次),除非系统有bug或者发生故障,内部对账一般不会出现差错。如有差错,也需要人工处理。


2、渠道对账


        一般银行、第三方支付提供T+1的对账单,这是执行渠道对账的依据。 在上述案例中,支付系统每天拉取工行前一天的对账单,核对交易流水。与此同时,按照从工行获取的对账单,记录资金归集的账务。
接收到工行对账单后,按照对账单生成凭证:

注意上述的日期、凭证号,以及借贷关系。


3、账账核对


完成渠道对账后,需要进行日结和试算平衡:
总分类账各账户本期借方发生额合计与贷方余额合计是否相等;
总分类账各账户借方余额合计与贷方发生额合计是否相符;
核对各种明细账及现金、银行存款日记账的本期发生额及期末余额同总分类账中有关账户的余额是否相等。
从科目维度,计算:
科目期初余额+科目当日发生额=科目期末余额
下级科目余额总和=上级科目余额(科目总分检查)


4、账实核对


        对电商公司来说,最重要的账实核对,是验证银行存款的变化和实际资金流向是一致的。一般是需要登录到银行网银系统中来人工核实。 如果对接的银行多,银行提供网银对账单,也可以自动进行,查询出入款总额。
详细的对账和轧账流程,将在下一篇文章中说明。
结束语
        本文主要介绍支付清结算中的账户务的处理。 在此期间,有不少同学询问是否可以详细介绍某一个记账或者账户应该如何设计,希望能够针对某一主题做进一步说明。清结算是一个很专业的话题,这个专业不是计算机专业,而是会计专业。 每个公司的账户和账务处理都有自己的要求和特点。
        这一系列文章,主要是从软件开发的角度来协助大家梳理清结算相关的基础知识,让大家和会计同学对话的时候有一个基础,或者说共同语言。具体的账户、账务、会计处理流程,需要和公司会计详细沟通。关于清结算系统的设计和实现,将在支付系统设计系列中介绍。


http://chatgpt.dhexx.cn/article/Xmy0NLgt.shtml

相关文章

电商平台资金结算流程是什么样的?

(图源:pexels网站) 在疫情的影响下,越来越多的传统企业开始转向电商,希望通过互联网来拓展业务,开拓新市场。同时,也有越来越多的新兴企业从事电子商务,利用互联网的优势快速发展壮…

支付清结算之账户和账务处理

这是清结算系列的第四篇文章,本文重点介绍清结算中的账户和账务的处理。 请务必阅读这几篇文章以便理解这里的流程。 支付清结算之基本概念和入门支付清结算之渠道侧处理支付清结算之电商侧处理 一、账户体系 在设计清结算系统前,首先需要完成账户体系…

经济法基础(2020年)——第三章 支付结算法律制度

第一节 支付结算概述 支付结算概述 未经中国人民银行批准的非银行金融机构和其他单位不得作为中介机构办理支付结算业务 支付结算工具和原则 传统的人民币非现金支付工具 三票一卡 汇票、本票、支票和银行卡结算方式 汇兑、托收承付和委托收款 原则 恪守信用、履行付款原…

电子支付与结算总结

电子支付与结算总结 第一章 电子支付概述名词解释简答题选择判断题 第二章 支付工具与支付方式名词解释简答题 第三章 网上银行支付名词解释简答题 第四章 电话支付名词解释简答题 第五章 移动支付名词解释简答题讨论题视频 第六章 自助银行支付名词解释简答题讨论题 第七章 跨…

中国支付结算系统发展简史

中国支付结算系统发展史 1949年到今天,中国支付结算系统经历了3个重要的阶段,从无到有,从简单到完善。今天中国的现代支付系统加上各个商业银行内部系统作为基础设计,支撑着第三方支付系统,让我们享受着不需要现金以及…

一张美团外卖的小票看透支付清结算架构!

见字如面,我是军哥! 我很少推荐别人的公众号,因为我能看上的原创公众号并不多,让我主动推荐就更难了。 今天这位朋友叫宇宙,认识有两年了,在支付行业里非常有名气,最近闲着无聊翻了他多篇原创文…

支付 VS 清算 VS 结算

概念 标准定义 支付: 完成付款人向收款人转移可以接受的货币债权的过程,包括交易过程、清算过程和结算过程等三个过程(一个完整的支付过程,清算和结算都属于支付的某个环节);清算: 包含了在收…

第三方支付平台结算流程是什么样的?

在电商发展的初期曾遇到过一个瓶颈,那就是买卖双方对彼此互不信任,互联网市场中的交易是无形的,大家对对方的信息一无所知,买家害怕自己给了钱没收到货,卖家害怕自己给了货没收到钱,由于缺少这种信任&#…

支付结算系统

不同银行之间 以支付的手段达到结算的目的 所有银行在中国人民银行开 人民银行清算账户,在这个账户存款 用于资金清算通过 人民银行支付系统(二代支付系统) / 城商行支付系统 等在银行账户间转账结算 文章目录 清算账户管理系统大额支付系统…

支付清结算介绍

清结算定义 交易 - 交易过程包括了支付产生,确认和发送,特别是交易有关各方身份的确认以及支付工具能力的确认。 清算 - 是收付双方之间交换支付工具或相关支付信息,清讫债权债务关系的过程和方法。支付工具的交换包括了交易撮合,…

支付宝直付通实现账单结算(分账)功能完整Demo

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: 支付宝直付通实现账单结算(分账)功能完整Demo ⏱️ 创作时间&#xff…

支付清结算

作者:bright 链接:https://zhuanlan.zhihu.com/p/22529766 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 一、支付清结算概念 一般业务系统 交易和资金分离后的系统 清算和结算为何要分离 除了…

支付清结算体系详解(17)

这篇文章比较详细的介绍了我国支付清算体系,并且详细举例介绍了银联跨行清算与收单清算的清分流程和账务处理逻辑,能帮你彻底掌握银行的清算处理模型和记账方式 一.支付清算体系的简介 支付清算体系是一个国家的金融基础设施,或说公共服务。我…

中国支付结算体系全貌

一、业务定义 支付结算是指单位、个人在社会经济活动中使用票据、信用卡和汇兑、托收承付、委托收款等工具进行货币给付及其资金清算的行为。 二、支付结算体系构成 支付结算本质是货币的转移和债权债务关系的变更,是一切经济活动的最终目标和结果,因…

Could not load the Qt platform plugin “xcb“ 问题解决

QPA qpa是Qt Platform Abstraction的缩写,qt5引入。 问题原因 qt默认的qpa在linux上是xcb;即 qpa backend: xcb 在编译中,需要安装全部x11依赖,才可以使用xcb 问题解决 x11依赖: qt5 linux x11 依赖 安装全部依赖后&#xff…

解决qt.qpa.xcb: could not connect to display问题

以服务器作为远程解释器,本地pycharm或vscode调试时出现如下错误: qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/xx/anaconda3/lib/python3.8/site-packages/cv2/q…

XC-08

文章目录 分布式文件系统技术应用场景什么是分布式文件系统?什么是分布式文件系统?什么是分布式文件系统 主流的分布式文件系统NFSGFSHDFS 分布式文件服务提供商阿里的OSS七牛云存储百度云存储 什么是fastDFSfastDFS介绍fastDFS工作原理fastDFS架构文件上传流程文件下载流程 …

(最新+详细+Pycharm远程调试GUI程序)解决qt.qpa.xcb: could not connect to display问题

(最新详细Pycharm远程调试GUI程序)解决qt.qpa.xcb: could not connect to display问题 出现原因解决方法步骤下载MobaXTerm连接服务器安装Xorg和打开X11-forwarding 附录设置共享目录修改环境 出现原因 在ubuntu服务器上运行cv.imshow()方法时就会报以下…

【ARM开发】交叉编译Qt源码之(4)添加xcb支持

Debian 9 1、依赖 Qt源码添加xcb支持,依赖xcb-util-wm、xcb-util、xcb-util-image、xcb-util-keysyms、xcb-util-renderutil、libxkbcommon、libxkbcommon-x11,其中libxkbcommon依赖xkeyboard-config、libxml,libxml依赖zlib、xz-utils。 …

Spyder打开时报错:Could not load the Qt platform plugin “xcb“ in ““ even though it was found.

目录 前言 一、打开spyder时报错 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 二、解决问题 问题应该是PyQt5的版本太高,和spyder版本不匹配了 附上一个跟PyQt匹配…