手把手教学之如何设计财务对账系统

2023-11-06 04:38

本文主要是介绍手把手教学之如何设计财务对账系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在设计一个对账系统前,我们先想清楚,对账目的、方式、对账场景、使用对象。其次就是和财务了解一下,他们所期望的效果,毕竟他们是使用方。财务对账是一个琐碎而复杂的工作,极需要工作耐心和细心,还要求对账人员对对账系统要十分熟悉。

可能有些小伙伴是初次接触财务领域,对于对账还是比较陌生的。

首先,我们为啥要对账呢?企业的结算业务大部分是要通过银行进行结算的,但由于企业与银行的账务处理和入账时间不一致,这样就可能导致双方账目不一致的情况。即所谓的“未达账项”。为了能够准确的掌握银行存款的实际余额,了解实际可以动用的货币资金数额,防止企业在记账报税工作中出现错误,企业必须定期与银行进行账单核对,并编制银行存款余额调节表。

其次,对账的方式是哪些?

  • 账证核对,是将账簿记录与记账凭证进行核对,这里是记账凭证是指日常经济活动的书面证明。例如,我们超市购物的小票、购买商品的发票、银行卡的收款转账记录,都是记账凭证。

  • 账账核对,是把有相互关系的多个账簿记录进行核对。有相互关系的账簿记录,包括总分类账簿间核对,明细账簿间核对等多种类型。例如:公司业务总支出和自由币、优惠券、商品采购、商家结算等支出的核对,是总分类帐薄核对;各收款账户的收支明细和总入账、总支出的核对,是明细帐薄的核对。

  • 账实核对,是各项资产物资的记录数值与实际真实数额间的核对。例如:我们使用记账 APP 记录购买了一台手机,我发现自己手里确实有一台手机,这就是账实核对。

然后,对账场景常见的有同银行、支付宝、微信等第三方支付平台进行对账、每个平台的特性也会有不同,在下面会详细说明。

最后,对账的系统的使用对象无外乎是三种:决策层、业务人员、财务。他们所关注的点也会不同,建议分别收集诉求,然后求同存异。 这个过程是很多产品都会犯错的,但是我想说的是,并不是把一个对账系统做成“大杂烩”,而是分别从操作到数据呈现,整个过程流程化。

对账大致可分为5步进行,本文提供一些设计思路以供参考。

下面,我将从财务日常对账过程为大家说明。

1. 数据准备

数据准备即记账,主要是获取对账所需的信息,例如获取银行流水。这些对账文件的格式也会存在一些区别。 比如支付宝对账文件格式为 csv,而微信的对账文件格式为 txt,另外有些渠道为 xml,xls。

注意:对账方式的不同,在数据准备上也有差异,此处以账证核对为例,除了流水外,还需要相应的单据(凭证),例如报销单据。

下面是有几点是在数据准备阶段需要注意和考虑的:

  • 每种渠道的账户可能都不止一个账户,那么在每天都有交易的情况下,系统设计时候需要考虑到多份对账文件处理的情况。

  • 对账文件会有重复下载的情况,渠道的对账文件一旦生成,就不会改变。但是第三方渠道也可能发生异常,导致我方收到对账文件数据不完整。 这种情况下,需要人工介入可以重新下载解析入库,或者提供人工导入流水的环节。

  • 每个第三方渠道下载文件时间都不一样,这点是需要结合对账考虑的。

2. 数据清洗

顾名思义,即对准备好的数据进行清洗,以便针对数据分类,提取可用字段。

前期拿到的字段不一定都是对账所需的,我们只需要提取必要字段即可,无需将整行数据信息都提取出来。一般来说只要需要提取交易时间,对方账户、本方账户、金额,交易订单号,流水号、交易类型等。在上一期,我讲过对账时间一般有t+1、T+0、N+7等,此处就以t+1为例,每天只需要针对前一天的交易数据进行处理即可。可对数据进行合并、排除无用数据。

这个过程中可能会遇到需要对流水进行处理,部分渠道拿到的流水号是会重复的,甚至需要进行拆分。例如,财付通的流水支出和交易都在一条流水中体现,但是我们需要通过一定的规则将流水拆分,并且保证流水号不会重复。

3. 数据核对

数据核对是对账的核心,对账的主逻辑; 一般对账有两种,即对明细账和对总账,对总账一般包括总金额和总条目 。

我们取某一天的同一个账户的数据,分别记录账户期初、期末以及发生数据。

先校验是否缺失流水:

1、期初是否等于前一天期末。

2、期末=期初+发生(加)-发生(减),校验这个公式是否相等。

其次,看分别用流水和单据(凭证)进行匹配,匹配方式可参考金额、交易双方、时间等。

一般会出现4种差异情况,如下:

最后,分别展示已经匹配的和未匹配核对结果数据,方便后期统计以及为业务提供能力。

4. 差异处理

在一般系统中,差错处理分为两种,一种人工来处理,一种系统自动来处理。当然, 差异也分为可优化差异和合理差异,合理差异是可以忽略的(但是前提是你知道差异原因,以及并不会对资产造成损失哦),后期可通过调节表进行调整,可优化差异是必须要进行处理的。

系统自动处理一般为:自动补单,即通过一定的规律和标准的规则系统会自动生成单据(凭证),差异自动对平。

人工处理,常见的就是缺少单据(凭证),需要人工填单环节。也有金额不等的情况,这个一般出现在手续费和汇率换算上。

在这个环节中,经常会遇到“乱账”,处理起来比较耗时。

我举个例子:一个公司下会经营不同的业务,考虑到经济、社会等风险,可能会成立不同的子公司,不同子公司下挂有不同的业务;这样的话,不同的业务的收款账户可以是不同的。展现给用户的就是,我在A地点买了一件商品,付款给了A公司;在B地点卖了一件商品,付款给了B公司;虽然A地点和B地点同属于一个集团,但付款给了不同公司,收款进了不同账户。

所以,我们做了一件事情是,统一收款至一个公司,再由此公司进行内部分账;这样对于顾客来说,我不管在哪里购物,付款给了同一个公司,收款进了同一个账户。 除了分账,做好企业内部账户管理也是非常重要的准备工作,可以减少很多不必要的麻烦。

5. 结果统计

对账结果往往是个容易忽视的环节,但是在系统设计中,这个必不可少。一方面可以财务提供统计相关信息,另外一方面,可以为公司高层提供战略性参考。

对于财务来说,他们需要看到整个对账的总览,如对账账户、对账完成时间(对账耗时)、对账是否成功、汇总差异结果、对账进度、差异处理结果等。 当然,他们还需要一个资产负债表和损益表。

对于管理者来说,对账耗时、差异数量、差异处理等是他们所关心的。

结合这些切入点,可以自行发挥,设计统计图表。

好了,今天的分享就到这里,如果想看真实设计案例,记得留言告诉我哦~

一个有料、会聊、更有趣的90后产品小姐姐等你来撩~

这篇关于手把手教学之如何设计财务对账系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354507

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻