如何设计财务对账系统:从零到一搭建实战教程与案例解析

2025-02-22
来源:网络整理

本文最初发表在“ Kala 产品技术博客”上:“如何设计财务和解系统 - 从零到一个建筑实践战”只是一个摘要。查看我的博客第1章的完整版本:对帐系统的概述

1。什么是和解?

1。生活中的和解场景 - 煎饼摊的所有者的故事

和解在我们的生活中非常普遍。

例如:在下班回家的路上,您有点饿,在路边看到煎饼。所以我走过去买了煎饼,老板把它交给了你,然后指着墙上的QR码贴纸,说“ 8件”。

拿出手机后,扫描代码以支付8元时,您对老板说:“ 8元,结束了。”此后,老板立即听到了他的手机广播,说:“微信系列:8元。”老板心中证实这笔钱已经到了。您声称您已经支付了8元的薪水,并且老板的收集帐户确认“已收集了8元”,这是最简单的和解。

2。互联网公司的共同对帐方案 - 支付对帐系统

在互联网公司,只要他们带来交易,他们就需要调和。无论是商店出售实物物品,虚拟项目的在线课程,还是销售各种会员服务的视频网站,需要和解,和解是整个交易过程中的最后安全防御措施。

让我们从淘宝商店举一个例子。为了简单的理解,这家淘宝商店只出售一种杯子,一杯杯子的价格为20元,每月只有一家杯子,一个杯子售出一杯。

当用户下订单时,打印机会自动打印出交货单。老板根据纸质订单在仓库中挑选货物,然后将其交给快递公司进行交付。用户收到杯子并确认收据。将20元转移到老板的帐户中。

(1)货物后的第二天,老板检查了仓库,发现失踪了一个杯子。同时,我发现我的帐户中有一个额外的20元人民币,恰好是1杯的价格。此对帐过程称为帐户 - 实施验证。

(2)老板根据印刷订单对帐户进行了调和,手里拿着纸质订单,总订单为20元。然后查看他的帐户的数量,即20元。此对帐过程称为帐户和证书对帐。

(3)当帐户在本月底进行调和时,我发现帐户只有10元,所以老板发现该订单帐户的账户增加了20元,而 帐户的较小为10 yuan。交货(明确费用)。一旦计算,收入为20元(增加),明确的交货费为10元(增加),也就是说,该帐户应增加10元。此对帐称为帐户对帐。

3。和解方法 - 杯店中出现的三种和解方法

(1)会计与实际对帐:指我们记录的帐户与实际资产的实际数量的对帐。

(2)帐户和证书对帐:是指使用会计凭证检查自己的帐户。一般会计凭证由与您的业务合作的第三方公司提供。在上面的杯子店的示例中,淘宝(订单)提供会计凭证。

(3)帐户对帐:指上游和下游相互关联的书籍之间的对帐。在整个交易过程中,多个帐户通常涉及上游和下游,例如外部购买帐户,内部采购帐户和下游,例如快速交货帐户,第三方服务费用等。这些帐户和总分类帐,因此通常使用一般帐户对帐来纠正内部帐户的数据不一致。

“帐户验证”是和解的基础。稍后,我们将与示例结合使用,如何将“帐户验证”整合到对帐系统构建过程中。

2。为什么我们需要和解

1。对帐是整个支付系统中的最后一项安全防御线。这是交易过程中重要的误差校正机制。

2。避免发生事故和人为错误

(1)意外错误:网络稳定性,内部系统的鲁棒性(订单,付款,风险控制)。

(2)人类错误:人类操作错误,上游,恶意内部修改等。

3.和解是财务过程的重要组成部分,尤其是当交易量为每天数十万,而手动和解是不可能的。为了避免订单错误累积更多并成为困惑的帐户,我们需要每日和解和和解,这也是确保公司财务状况的必要链接。

第2章:对帐系统的体系结构

不管和解系统多么复杂或宏伟,它都由“帐户”之间的最简单比较和验证组成。我们只需要弄清楚如何检查每个帐户,然后将此逻辑应用于多个帐户,我们将永远不会离开本质。

为了降低案件的复杂性并促进了每个人的理解,此案使用了大多数电子商务公司将与之联系的两个付款渠道“支付”和“微信”。

实际上,是连接到风格的“支付宝”,连接到国有企业风格的“银行”,还是海外支付渠道,它们都是相似的。除了界面,文件格式,身份验证等细节的差异外,它们在抽象层面上具有相同的对帐逻辑,并且都连接。

1。如何建立和解系统

1。设置对帐的目标帐户

对帐的核心是找到在不同系统中记录相同事件的分类帐,比较这些相关的帐户并找到其中的错误。

例如

(1)将我们的后端订单系统中的每日结算金额与第三方支付系统中的每日结算金额进行比较。

(2)将我们库存系统中的库存数量与我们的订单系统订单发行的商品数量进行比较

2。获取账单数据(账单获取模块)

支付系统对账业务范围_支付对账问题如何处理_支付对账功能设计

(1)会计时间:每个渠道的每日和解账单生成时间都不同,有些是在清晨生成的,有些是在上午9点产生的。找出帐户发布的时间,设置爬网/下载时间,然后让系统自动下载(或手动下载它,然后将其上传到对帐系统中)。

(2)帐单文件格式:每个通道的帐单格式不是统一的,包括CSV,XML,TXT,JSON等。对于不同的渠道,请设置相应的格式解析程序。

3。计费格式标准化(数据标准化模块)

每个通道帐单都有不同的字段和相同数据的命名方法。例如,相同的“订单号”被称为“商户订单号”,我们系统中的相同数据称为“购物中订单号”。例如,同一订单的付款金额称为“商人实际收据”,我们系统中的结算金额称为“结算金额”。尽管它们的名称不同,但实际上它们在两个系统中的相同数据反映了。

因此,我们的总理必须统一收费数据,微信,银行系统,和其他三个机构,以使数据可读和可比性。我们称此过程标准化帐单数据。

4。帐单检查(帐单检查模块)

在此步骤中,每个人都必须与自己公司的业务逻辑结合使用。不同的业务逻辑和财务管理方法将具有不同的设计方法。但是最基本的目的不会改变。在两个系统中查找相同顺序的数据,比较两个数据是否一致,找出差异,标记差异并在下一个模块中处理它们。我们将在第6章中讨论账单检查的细节。

5。语句错误处理(差异处理模块)

如果错误是可以预见的并自动解决的,我们可以使用机器自动处理该错误,例如经典的“交叉每日付款”问题,该订单是在同一天23:59创建的,付款时间为00: 01第二天。目前,与我们系统中订单相对应的付款信息将出现在t+1上。可以通过等待第二天的账单来解决这种情况。

如果无法自动处理错误,则将输入手动处理过程。手动处理首先需要比较两组数据,找到问题,然后手动执行解决方案以使双方级别级别。如果您现在无法匹配广场,则可以选择“暂停”以暂时保存错误并在将来正确解决该错误。关于错误处理,我们将在第7章中详细解释。

第3章:获得对帐文件

对帐文件是整个对帐系统的起点。我们必须首先将,微信,银行,,第三方付款和其他付款渠道的声明下载到当地,然后在可以执行后续的对帐措施之前对其进行解析并输入数据库。每个付款渠道都有自己的结算周期,结算文件生成时间和文件格式。我们必须首先检查付款渠道文档并找出这些问题。

1。下载对帐文件

当前,有几种通用方法可以在频道上下载语句。

2。获取和解文件的时间

每个付款渠道将根据自己的情况就每日陈述生成日期达成共识。我们必须找出每个付款渠道生成账单的时间,然后在此之后的一段时间内提取账单,以有效地启用对帐系统。开始运行。

例如:微信付费通常在第二天上午9点左右支付账单,而我们更适合在上午10点之后拉动微信付费声明。

有关更多信息,请访问与渠道付款相对应的官方网站文件。总会有一些特殊情况,例如的清除时间与每个人都不同,因此您必须清楚地阅读文档。对于每个付款渠道文档,请参见本文的最后一个扩展信息部分。

3。和解文件的格式

来自不同渠道的对帐文件的格式也不同。一般而言,它们分为CSV,JSON,TXT,XML和其他格式。以下是供您参考的两种通用文件格式。

1。微信语句:txt文件

2。apay语句:CSV格式

4。核对文件API获得

通过API获取付款机构的对帐文件,并在本文末尾附有付款渠道文件

微信支付下载API文档的交易账单

第4章:标准化对帐文件

每天从每个第三方支付渠道获得的对帐文件是原始的对帐数据。这些原始文档必须保持良好,以便在将来整个付款或对帐系统中存在错误时可以追踪源。

1。原始和解文件的标准化命名

我们需要根据自己的属性重命名每个通道的原始对帐文件,以促进将来的搜索和使用。

示例:“ 编号。文件格式:.csv”

当然,我们需要根据我们公司访问的所有付款渠道找到一种更宏观的命名方法。

2。统一和标准化的对帐文档数据

由于每个支付渠道都有自己的现场系统,因此我们需要在每个频道的语句中统一字段,然后将它们标准化并将其存储在仓库中。

支付对账功能设计_支付对账问题如何处理_支付系统对账业务范围

我们可以根据内部系统用作原点的字段来设计转换的字段。对于冗余和暂时未使用的字段,可以直接丢弃它们以减少冗余。将来需要时,我们可以从“对帐”文件存储管理器中找到源数据。

通用语句字段参考

注意:由于老年人的无私分享,上面的字段引用了无敌编码员的摘要。单击此处下载文本版本

如果公司需要在未来业务中访问更多的付款渠道,则可以提前考虑和解系统的可扩展性,并设计一组分析过程。金融人员可以在后台设置新添加的对帐法案和公司内部订单系统的领域。如何对应关联。

3。在数据库中检查对帐数据

每个通道的核对数据清洁冗余信息,统一格式,并将其解析到数据库中。我们可以在后台轻松查看,并且来自各种渠道的对帐数据清晰清晰。当问题在和解的任何阶段都会出现时,金融人员可以在此处查询和解系统以促进问题的定位。

第5章:对帐单检查的逻辑理解

准备好本地对帐数据和第三方付款对帐数据后,我们可以在接下来的双方检查数据。通常只有四个和解状态,双方都是一致的(平衡),付款渠道再收到一个(长期付款),付款渠道获得较少的(短付款),本地和付款渠道都有两者,但数字不同(不一致的数量)。其他错误是这些状态的扩展。

1。检查模块的错误状态和处理方法

1。付款交易对帐

2。退款类型对帐

退款对帐的错误实际上与集合相似。通常有这些情况。

如果很难理解会计想法,我们也可以根据数据组对其进行划分。下表

让我们看一下这两个桌子。左表是我们的订单数据,右表是支付渠道数据。这两个表与订单ID关联。

我们可以看到,ID1两侧的数据是一致的,即“平衡”; ID2和ID4的两个表分别缺少,即“单方面”;尽管ID3在双方都有数据,但单个交易的量是不一致的,即“错误”。

对帐系统将自动标记“单侧”和“错误”订单,这些订单需要将其输入手动处理中的“错误处理”中。

这篇文章太长了,这只是摘录。请转到我的博客查看完整版本。 “如何设计财务对帐系统 - 从零到一个建立”。查看全文。本文其余部分的第6章:对帐引擎的逻辑设计

结束日期在和解系统中的作用

1。按时间顺序排列的和解帐户

2。对帐引擎设计

3.对帐任务创建和查询

第7章:和解错误处理

1。错误处理逻辑设计

2。错误处理业务规则的系统化

3。检查模块的四个状态

第8章:如何快速构建和解系统第9章:扩展信息

1。建筑支付对帐系统的快速工具

2。支付渠道访问文件

3。建筑和解系统的参考材料和扩展阅读

本文的作者

B-End产品经理Kala 的联合创始人 致力于研究企业内部效率工具的实施和构建

分享