会计与程序语言虽不同,却能从相同维度描绘业务场景。如何利用这一原理,拆解支付账务的科目设置、对账与核算流程,建立起清晰的账务处理逻辑?让我们一起一探究竟。

学习账务的时候你是否经常有这些疑问“待结算和待清算是什么?为什么要有已清算?待结算和待清算是一回事吗?什么是业务对账?什么是资金对账?清算文件是资金文件还是明细文件?”
其实这就是从学习到落地过程中常见的壁垒,因为每家公司都有自己的个性化处理,也有自己的一套“黑话”,这些都是你理解和落地上的门槛。
在这种情况下你学了1000种个性化场景和黑话,你还是能够遇到1001种情况。所以我们不如提升一个维度,让你学习一套“万人敌”的方法,让你遇到所有情况都能快速搞定。
下面我们就用一张图来把“科目设置、对账结算、账务核算”一次性把这些知识全部讲明白。
01 会计和程序一体

你可能学习了大量的会计学知识,然后试图用财务和结算人员的思维来理解他们的业务场景。
其实,你可以换个角度考虑问题。财务和结算人员编写会计分录与程序员用代码写程序是一样的“都是对业务场景的描述”,区别在于财务结算人员是使用的“会计语言”而程序员使用的是“是计算机语言”。

所以,会计科目和分录的设计与你设计的系统能够匹配上的。其实你只要理解清楚系统在什么场景下被使用,你就能知道如何设置科目,如何对账结算,以及如何进行账务核算了。
想清楚这一点之后,我就画出了上面这张图,下面我给大家来进行逐一拆解。
02 几千科目如何设置
你可能会好奇,一个账务系统上千个科目和分录,结算人员是如何记住的?他们又是如何完成复杂的结算工作呢?
其实,在他们脑袋里是有一个最小的结构能,这个结构够帮助他们快速的记忆和使用这些科目。
对于我们做支付系统的产品和技术来说也是有个最简洁的结构,就是联机和结算的两条链路。(详情参看《耦合链路,支付架构》)

联机交易链路就是通过“客户、交易、支付、渠道”这几个子系统来完成每笔交易,所以我们可以通过系统自然的边界来把整个支付机构科目结构进行清晰的划分,我称之为“三板斧”。
2.1 第一板斧:清算往来,划分内外
这第一板斧,通过清算往来划分内部系统和外部渠道。

我们经常说的清算和银存账户都是渠道类的科目,对于一家支付机构来说渠道科目占比是非常大的,因为支付机构每次新增一条支付渠道都会设置这样一套渠道科目,用来确保每笔交易被完整记录,资金被准确的清算和结转。

基于上的渠道科目表,我们可以发现渠道科目与渠道交易相匹配的。
1)共同类-渠道:为每个接入渠道的账务交易设立待清算账户。它根据接入的渠道交易设置了入款、出款、退款的清算科目,用来记录发生金额。
2)权益类-费用:每条渠道都要核算成本,自然要设置对应的账户来记录。
3)资产类银存:与渠道备付金保持映射,期末要与待清算账户结转后进行平衡。
4)已清算科目:为了方便统计各渠道当天的清算资金总额,设置了已清算账户,尤其是在渠道较多、需要进行银存结转的情况下。
2.2 第二板斧:交易待结,划分业务
2.2.1、边界划分
第二板斧,是交易类的待结算科目他划分了客户与交易系统。
我们从图中可以看到,我给客户提供了多少种交易类型,就会设置多少种待结算的过渡科目。可见增加一个交易类型,对一家支付公司来说不是件简单的事,因为他不仅要增加科目,还要提供对应的记账分录。

2.2.2、科目拆解
我们可以看到客户和交易都是属于负债类科目,如果单从科目上很容易让你产生混淆,而通过系统划分后就一目了然了。

1)客户账户:
客户账户数量众多,但是在科目上也不是很复杂开通什么账户就提供对应的科目就行了。一般来说基本户存放可用资金,结算户存放待结算资金。
2)交易过渡户:
交易过渡户数量并不多,他是按照给客户提供的交易功能来提供对应的账户。
需要特别指出的是这里的公共过渡户在实际应用中有很多叫法“入款过渡户、网关过渡户”等,这些其实都是用来收单用的,同时也作为退款时原路返回的过渡账户。
3)手续费账户:顾名思义是扣收客户手续费的账户,这也是支付公司的收入。2.2.3、交易热点账户
尽管交易科目的设置简单明了,但也存在一些问题,如容易产生交易热点账户(如分账和红包),这可能导致交易过渡户中积压大量待结算资金,从而带来合规风险和账务管理上的混乱。

为了解决热点问题,我们将内部过渡户拆分到各个客户账户下。这样不仅分散了账户热点,还减少了大量资金的长期积压。担保过渡户未进行此类拆分,是因为其作为持牌机构的中介账户有特定的业务需求。

2.3 第三板斧,辖内往来,跨域清算
第三板斧,是跨系统的资金清算。这时候就会用到一个共同类的账户“辖内往来”,他是一个机构内部系统之间的清算户。

支付机构会有很多的行业产品,通过辖内往来账户为不同的产品清算资金。同时,手续费和利息等收入也通过它清算到财务系统,计入营业收入。
延伸一下,这套科目划分的方法,也能对不同业务产品按照这三个步骤进行,只要有更细维度的客户和交易类科目就能一直细化下去。
2.4 万人敌,科目设置模式
可能有的同学会说,你科目跟我们系统也不一样呀,这种只是你曾经项目的一个案例而已。确实如此,为了介绍方便我提供的是一个典型案例。
但是万变不离其宗,任何科目其实就是几种会计要素的组合使用而已。关键看这些科目是怎么来描述你们业务的。
2.4.1、全科目模式

所谓的全科目就是“资产、负债、损益、共同”几个科目全都用上,本文采用的就是这种方式。其目的就是让大家能够熟悉所有科目的特性。
这种科目的特点就是比较标准,人人都能看懂每个科目的作用是什么。缺点就是太繁琐了,科目设置起来比较复杂。
2.4.2、三科目待清算

这是比较实用的一种科目设置方式,把损益类收入和费用计入资产和负债统一处理,清算账户则通过共同类来进行划分。显然他可以按资产负债统一进行成本和收入的核算了,整个科目简洁明了。2.4.3、三科目损益类

这种科目设置是把待清算科目作为了资产/负债来统一进行处理,而单列了损益类科目用来计算收入成本。这种科目同样也很简洁实用,手续费也能算的非常清楚。
当然这类科目也不是没有共同类,它把共同类作为系统汇总清算账户来处理,比如“跨系统清算往来、辖内往来”等,而不处理待清算账务。
03 对账与核算
对账与核算即简单也不简单,简单的是他就一个公式“期末余额=期初余额+(收入发生额-支出发生额)”,但难的是他要“渠道、客户、总账”的维度来核对三遍。

从上图我们可以看到,在对账中“渠道清算”和“客户资金结算”是各自进行处理的,最终通过汇总渠道和客户的明细账进行总账核算确保最终账务的一致。
这样做会有风险吗?其实很低,因为只有状态明确(成功、失败或关闭)的订单才会结算,异常订单是不会进行资金结算。
3.1 对账核算关系

对账的核算关系就是按照“核算公式”来进行处理的,从上图就可以看到开设的科目就是按照核算公式来设置的所以是一一对应的关系。
3.1.1、对账过程
1)资金对账:又叫账实核对,是将渠道或银行的资金文件与系统内记录的汇总发生金额进行汇总对比,这种方式对账效率最高。
2)业务对账:又叫交易对账、明细对账。将渠道流水与支付订单进行逐笔的核对,以勾兑出差错订单。
3.1.2、对账数据
1)清算文件:是从渠道或者备付金银行下载的资金文件,他包含了清算给支付的机构的资金发生额,以及账户的余额。
2)汇总发生额:汇总发生额是从账务核心或者支付订单中根据收付类型来汇总相应的金额与渠道清算文件进行核对。
3)流水文件:又叫支付明细、支付流水;是从渠道一侧下载的对账明细文件,他包含了每一笔的渠道侧成功记录。
4)支付订单:支付系统内记录的订单,他与渠道一侧的流水是逐笔对应的。
3.2 对账处理流程

整个支付对账与结算流程就是“资金、业务、客资”三个阶段。
1)资金对账:将渠道的清算文件与账务系统的汇总发生额进行核对,汇总对平就可以进行银存的结转了,如果不平则需要去下载对应的下载明细进行业务对账。
2)业务对账:当汇总不平是需要到渠道一侧下载流水文件与支付订单进行逐笔核对。勾兑出差错后需要进行差错处理,来更新本地订单或者对账务核心进行调账。
3)客资结算:渠道对平之后就会跟据当天的每个客户“收单与退款进行轧差”然后将客户在途资金变成可用。这样客户就能提现了。