笔者以一个虚构的在线教育公司的对账业务为背景,分享了怎么做对账产品以及对应的设计要点。

财务同学每月月初都需要核对上个自然月微信、支付宝等金融收款账户的交易流水和公司业务系统交易订单的一致性,基于一致的前提下才能做账。随着业务的爆发性地增长,业务订单量太大,人工对账过于耗时和繁琐,就到了需要通过产品方案来解决,实现自动化对账。

适读对象

本文是四勾作为一名产品,通过产品方案来实现自动化对账的产品实践,比较适合对对账财务专业知识和对账工作流有一定认知,但就是不知道如何下手的产品经理。

如果你还不清楚为什么要对账,对账是什么和什么对等一些财务方面的专业知识的话,建议先阅读文章底部的「参考文章」恶补之后,再回来阅读正文。

一、背景介绍

为了便于理解和深入业务场景,四勾虚设一个场景,带着大家逐渐深入。

1. 虚拟场景

海豚教育是一家 K12 在线教育公司,主要服务的对象是小学和初中阶段的学生,有数学、英语、语文等学科,主要的业务交易包括 2 部分:

  • 其一,购买课程的资金流入,分为体验课和正式课,体验课单价 30 – 50;正式课是一年的课程,课单价 6k – 8k;
  • 其二,课程退费的资金流出。

资金的流入和流出都是通过微信或支付宝来进行交易,现在交易订单量巨大,需要通过产品来实现将微信和支付宝的每日交易数据和海豚自己的业务交易数据对账。

微信和支付宝我们都叫做金融账户。

2. 对账的价值

比较容易理解的是实际的收支和业务订单的收支一致,保证做账数据的正确性。其实有更深层次的价值,反向校验业务数据的准确性,发现业务数据的问题,及时修正;规避财务风险,进而更好的服务用户。

举个栗子,微信有一笔 50 元的退费记录,业务订单里没有,账无法对上。财务发现问题之后会联系孩子的班主任老师,在业务系统一查发现他的退费申请由于超时过期,退费申请自动关闭了。发现问题后需要采取措施,补退费记录,对账号做停课处理。

3. 设计思路

  • 其一,每个金融账户分开独立对账,指微信和支付宝
  • 其二,以金融账户数据为参照物,拿海豚业务订单数据往上对齐
  • 其三,对账不区分学科,学科是对账完毕之后用来出财务饼状图的

二、对账工作流

自动对账是按照每日对账,当天拉取前一日的微信和支付宝对账单,和海豚的前一日的业务订单进行自动化匹配,然后做出正常或异常的标记。针对标记异常的,再人工跟进。

对账工作流分为 4 个步骤,每个步骤有具体的分工,全景图如下。

对账工作流全景图

1. 账单下载

账单下载更多的是技术层面的实现,这里不做展开,涉及到如下 2 个 API。

微信是当日上午 10 点出前一日的对账单,所以我们需要 10 点后拉取。

支付宝是当日上午 9 点出前一日的对账单,所以我们需要 9 点后拉取。

微信下载对账单 API:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_6

支付宝下载对账单 API:https://docs.open.alipay.com/204/106262/

2. 数据准备

数据分为 3 个部分,每个金融账户各自需要 1 份数据,我们这里叫做「微信对账数据」和「支付宝对账数据」。另外,业务系统的订单数据,我们叫做「海豚对账数据」。

1)金融对账数据

微信和支付宝的逻辑一样,下面以微信为例:

整理后的微信对账数据

交易类型,照搬微信对账单上的,不做修改;

海豚订单,是微信里的「商户订单号」,便于理解,四勾有意改了个更直观的名字;

金融账户订单,是微信的微信订单号。

2)海豚对账数据

每天凌晨 2 点拉取前一日的海豚业务订单,包括购课付款成功和退费成功的交易订单,只拉取成功的订单,忽略支付中或退费中的交易未结束的部分。

同时,整理完的对账数据我们需要单独存储,出于 2 点考虑:

  • 其一,业务订单的修改不会影响我们的对账数据;
  • 其二,对账完毕后我们会基于对账数据计算各种各样的财务报表,要确保数据源的一致性。

如下图所示,保留 userId、课程名称和课程编号,便于以后按照课程栏目的财务统计。

整理后的海豚对账数据

3. 对账

1)单笔订单的对账状态

正常:系统自动对平的

异常未处理:系统未自动对平的会标记成异常未处理

异常已处理:人工处理掉异常,并且人工进行海豚对账数据和金融账户对账数据关联上

异常已挂起:

  • 就是暂时忽略,以后再说
  • 以后可以对已挂起的数据再次人工处理成异常已处理

单笔订单对账状态的流转

2)自动对账

微信自动对账完的数据状态

举个栗子:今天是 2019-12-26,我们对昨天 2019-12-25「微信」的对账数据。上午 10 点所有金融账户数据准备完毕后,立马执行自动对账。当然对完微信之后会再对「支付宝」。

Q1:左右两边的数据来源?

左边是海豚昨天的订单里面,收款和退款的金融账户是微信的;

右边的是微信昨天的全量交易对账数据。

Q2:如何自动对账?

第 1 步,右边的数据按照交易时间顺序排列,并展示出来(此时,左边全部为空);

第 2 步,针对右边每一条数据,拿「海豚订单」去海豚对账数据里面查询,同时满足下面条件就自动标记成「正常」;

  • 其一,能查询到记录(只去海豚对账数据的 25 号数据里面查)
  • 其二,金额一样

第 3 步,将第 2 步中查到的海豚对账数据展示在对应金融数据的左侧,并且将状态标记成「正常」

第 4 步,将金融对账数据没有标记成正常的其它所有的行,都标记成「异常未处理」(此时,这些数据的左侧都是空白)

第 5 步,将海豚对账数据没有被标记正常的其它所有数据,按照交易时间顺序插入,都标记成异常未处理(此时,这些海豚数据的右侧全部是空白)

自动对账包括上面的 5 步,自动对账结束会出现:

  • 其一,状态只有 2 种,正常和异常未处理;
  • 其二,异常未处理的,要么右边空白,要么左边空白

3)滚动对账

举个栗子:一笔支付,微信 23:59:59 收到钱,回调海豚服务器时已经跨天 00:00:02,这样在自动对账时会被标记成异常未处理。

出现上面的情况是由于遭遇日切,滚动对账就是专门来处理这种 case 的。

滚动对账前后的状态变化

上下文:

24 号所有对账结束后,海豚和微信各有 1 条异常未处理;

25 号自动对账结束后,海豚有 1 条异常未处理,微信有 2 条;

现在将要执行 25 号的滚动对账

Q:如何滚动对账?

第 1 步,拿 24 号微信异常的数据,去 25 号海豚的数据查,海豚订单号一致、金额一致,就意味匹配成功,将两者关联上,并同时标记为异常已处理;

第 2 步,反过来,拿 25 号微信异常去查 24 号海豚数据。

处理完上面 2 步之后,就如上图下半部分所示。

4. 差错处理

差错处理分为 2 种,一种是能人工匹配上,处理成异常已处理;另一种是怎么也匹配不上,处理成异常已挂起。

1)处理成异常已处理

通过线下人工查明原因,找到匹配的两边的订单号,然后上系统进行人工关联。

将异常处理成异常已处理

2)处理成异常已挂起

将异常处理成异常已挂起

处理异常之后,对账状态发生变化,就如下所示:

处理完部分异常后的对账状态

三、产品实现

1. 页面信息流

2. 对账明细-全部

举个栗子:要进行 2019-12-14 到 31 号对账,如何操作:

对账时间段:选择 2019-12-14 ~ 2019-12-31

对账周期,如果选择周,下面就按照自然周拆分,显示 4 行,如上图所示;如果按照日,下面显示 31 – 14 + 1 = 18 行。

3. 对账明细-微信

点击上图微信下面的最后一行,显示如下界面。点击下图「上一周期」,显示上一个自然周的对账。

Q:何为「未平账」,何为「已平账」?

  • 对账状态中,只要有异常未处理,称为未平账;
  • 没有异常未处理的,称为已平账,包括正常、异常已处理和异常已挂起。

参考文章

1. 详细解析「财务对账」的秘密https://zhuanlan.zhihu.com/p/42289649

2. 财务对账系统设计

https://juejin.im/post/5b1c76f4e51d450688135cfd

3. 聊聊对账系统的设计方案

https://juejin.im/post/5c485cd8f265da61327fa12f

4. 支付对账系统怎么设计?

https://mp.weixin.qq.com/s/SOpwMsVB5wNkwMZdKKMkwg

5. 从0开始学习搭建支付系统——核算对账核心

https://zhuanlan.zhihu.com/p/45492985

本文由 @四勾 4J 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自unsplash,基于CC0协议

关于人行acs对账不及时_以在线教育公司为例,如何做一款财务对账产品?相关推荐

  1. 用音响里的零件做迷你小机器人_优必选和腾讯一起做了款人形机器人,搭载“小微”的它想比智能音箱更好用...

    雷锋网消息,6月22日,在腾讯云主办的"云+未来"峰会上,优必选联合腾讯发布了一款智能家庭人形机器人Qrobot Alpha.Qrobot Alpha采用人形设计,搭载了腾讯云最新 ...

  2. h5 bootstrap 小程序模板_小程序还是h5,哪个是在线教育公司首选?

    2016年-2018年是以知识付费为特征的在线教育新模式的黄金时期.从产业链的上游来看,得到.知乎.喜马拉雅等平台方融资一个比一个更快,融资额一个比一个更高:从产业链的中下游看,越来越多的大V通过图文 ...

  3. 财务分账是什么意思?

    (图源:pexels网站) 财务分账是什么意思呢?其实在各种行业中都需要涉及到财务分账,而且分账工作的复杂程度比我们想象中的高多了,今天小编就以两个业务场景为例跟大家好好介绍一下. 如B2B2C这种综 ...

  4. java财务对账系统设计_聊聊对账系统的设计方案

    前言 对账系统作为支付系统中的基石系统,处于整个支付环节中的最后一层,主要用来保证我方支付数据与第三方支付渠道或银行的数据一致性. 在没有对账系统之前,财务在第二日手工核对前一日的应收与实收.倘若不一 ...

  5. 如何设计财务对账系统

    转载自如何设计财务对账系统 -- 从0到1搭建对账中心实战 - 卡拉云 目录 第一章:对账系统概览 一.什么是对账? 二.为什么要对账 第二章:对账系统的架构 一.如何搭建一套对账系统 第三章:对账文 ...

  6. 实时获取ccd图像_薄膜瑕疵在线检测系统0.1mm检测精度_实时在线检测

    原标题:薄膜瑕疵在线检测系统检测精度_实时在线检测 在薄膜的实际生产过程中,由于各方面因素的影响,薄膜表面会出现诸如孔洞.蚊虫.黑点.晶点.划伤.斑点等瑕疵,严重影响了薄膜的质量,给生产商带来了不必要 ...

  7. 怎么制作游戏脚本_我应该怎么样来推荐我们制作的这款RPG游戏呢?

    相关阅读: 从外包到独立创作,Winwill能否凭<城堡传说>获得市场认可 iOS单机探险一年流水400万+,7人成团<城堡传说2> 能否更胜前作? 我的新游要发售-- 不知不 ...

  8. 在线教育项目_整体介绍

    在线教育项目_整体介绍 一.项目的背景 二.商业模式 2.1 B2C(该项目的模式) 2.2 B2B2C(商家到商家到用户) 3.功能模块 3.1 系统后台 3.2 系统前台 4.项目使用到的技术 4 ...

  9. 大学生计算机python_人人都能学计算机:计算机科学入门与Python编程_学堂在线章节测试答案...

    查看答案 人人都能学计算机:计算机科学入门与Python编程_学堂在线章节测试答案 单击图层调板下方的新图层按钮可以产生新图层.A:错B:对 在图示的薄壁杆件截面图形中,形心与弯曲中心重合的截面有() ...

最新文章

  1. 再说spring比较重,臃肿的看此文!!!!!
  2. python打开是什么样的-Python程序的执行过程是什么样的?
  3. RocketMQ:NameServer路由管理源码分析
  4. 直播丨BMMeetup第2期:大模型计算加速技术,2场特邀和7位青年学者技术报告联袂上演...
  5. nsstring 空值比较_用比较器的nulls排序具有空值的列表
  6. Centos 统计文件夹下文件和文件夹的个数
  7. python字典实现原理-哈希函数-解决哈希冲突方法
  8. mysql5.7下载与安装(windows10)
  9. Javascript:简单的表单验证更改样式
  10. github 检查代码质量_使用Gradle做Java代码质量检查
  11. BZOJ 1001 平面图转对偶图
  12. coreplayer n79下载_coreplayer
  13. 硬盘安装Win7教程!无光驱无U盘照样装Win7
  14. 中国农业大学计算机专硕2019分数线,中国农业大学2019考研复试分数线已公布
  15. 瘦了红颜, 多了寂寞
  16. 学习做产品阶段性总结
  17. oracle 百分比换算问题
  18. 《精英日课》第三季_2019年四月新书《九个工作谎言》_1工作是具体的,公司是虚拟的
  19. STM32CubeMX学习笔记(24)——通用定时器接口使用(电容按键检测)
  20. 直播报名 | 海外社交媒体趋势如何?出海品牌如何掌握消费者洞察?

热门文章

  1. SAP 电商云 Spartacus UI 4.1 版本的延迟加载技术介绍
  2. SAP Spartacus login 页面看不到 UI 控件的问题解决
  3. SAP Spartacus 如何连接到其他系统
  4. ngrx注入到应用类构造函数里的store变量
  5. Spring 中的事件处理
  6. 什么是SAP HANA Database Procedure(数据库过程)
  7. SAP Data Intelligence Graph json源代码的结构分析
  8. SAP gateway standard mode和compatible mode的区别
  9. Uncaught SyntaxError - unexpected end of input
  10. 如何处理SAP Fiori Launchpad KPI tile点击后出现的错误消息