公益组织预核算与资金管理系统:让每一笔善款都能被说清楚

+

做公益的人常常面对同一个尴尬:钱不缺花的地方,缺的是"说清楚"的能力。

一笔捐款进来,用在了哪个项目、哪个对象、哪个科目?这笔报销花的是定向资金还是机构统筹的钱?资方年底要一份资金使用报告,能不能一键拉出来,且经得起审计?捐赠人问"我捐的钱去哪了",能不能给他看一条清晰、脱敏、可信的资金去向?

公益组织预核算与资金管理系统就是为了回答这些问题而做的。它不是又一个记账软件,而是一套围绕"公益资金闭环"设计的管理系统:从预算编制,到捐赠收入确认,到报销审批与付款,到资金匹配,再到报表、公开透明和审计追踪,把每一笔钱的来龙去脉都串起来。

一、它到底解决什么问题

传统的做法是"财务软件 + Excel + 微信群 + 一堆截图"。这套组合能记账,但答不上来几个公益特有的问题:

  • 钱的来源有限制。 捐赠人指定"这笔钱只能用于猫的绝育",义卖收入却可以机构统筹。系统必须区分定向资金非定向资金,并在花钱时校验用途限制,而不是把所有钱当成一个大池子。
  • 每一笔支出要能追溯。 一笔报销到底花了谁的钱、对应哪个预算、是否超预算、谁确认的匹配关系——这些都要有据可查,而不是事后靠记忆拼凑。
  • 对内管理、对外透明、对上监管要平衡。 内部要审批和风控,对捐赠人和公众要透明公开,对资方要出正式报告并接受审计。同一份数据,要能按不同口径、不同脱敏规则呈现给不同的人。
  • 多个组织要互不干扰又能协作。 平台上可能同时住着基金会、猫狗救助站、助学组织,数据默认完全隔离;但当 A 基金会资助 B 机构时,又要能在授权范围内查看项目、报告和票据。

这套系统的设计原则很直接:数据先闭环,页面是视图;预算、资金、支出必须可追溯;多组织严格隔离;AI 只做辅助,绝不自动决定财务结果。 OCR 识票、AI 生成说明、AI 推荐资金匹配,都必须经过人工确认,系统不会因为 AI 的判断就自动入账、自动付款或自动公开。

二、一笔钱在系统里的完整旅程

用一个具体例子说明它是怎么运转的。假设一家猫狗救助机构收到一笔 5000 元的定向捐款,指定用于流浪猫绝育:

  1. 收入登记与确认。 财务登记这笔捐赠,标注到账账户、时间、捐赠人、用途限制(定向到"绝育"标签),上传转账截图。只有财务确认到账后,这笔钱才计入可用资金。
  2. 预算就位。 “流浪猫绝育项目"下已经编制并生效了预算项,预算被拆成总额、审批中占用、待付款、已支出、可用额等多个口径,避免多个申请重复占用。
  3. 发起报销。 志愿者带猫做完手术,提交一张报销单,关联项目和预算,上传医院票据。系统跑 OCR 识别金额、日期、医院,生成候选结果,由人确认后才作为正式数据。
  4. 多级审批。 报销进入审批流。规则可配置,比如"金额超过 1000 元加机构负责人审批"“涉及定向资金必须财务审核"“医疗费用必须有医院票据”。
  5. 资金匹配。 系统按优先级推荐用哪笔资金覆盖这笔支出——优先匹配完全定向到该项目/对象/科目的资金。这里就会命中那笔 5000 元的绝育定向捐款。推荐只是候选,财务确认后才算数。
  6. 登记付款。 出纳登记付款账户、方式、时间、流水号、凭证,财务确认付款后生成台账流水。系统当前只记录付款动作,不直接发起真实转账,支持部分付款,超额付款会被拦截。
  7. 报表与公开。 这笔支出自动进入项目收支表、预算执行表、资金匹配明细表。项目公开页经过脱敏、打码、审核后发布,捐赠人扫码就能看到"我捐的绝育款,花在了哪几只猫身上”。
  8. 审计留痕。 从收入确认到付款,每一步动作——谁、何时、对什么、改了什么——都写进审计日志,且不可篡改。

整条链路走下来,这笔钱做到了:来源清楚、去向清楚、限制被遵守、每一步有人负责、全程可审计。

三、主要能力一览

系统按公益资金闭环组织了一整套模块,主要包括:

  • 多组织入驻与多租户隔离。 平台方审核开户,各组织数据行级隔离;一个人可以在不同组织担任不同角色(在 A 组织是财务,在 B 组织是捐赠人)。
  • 配置化底座。 自定义字段(按展示/查询/统计/流程/公开分级启用)、标签系统、预算科目与财务科目映射、可视化审批流程编排器,都支持组织级配置和行业模板包(通用公益、猫狗救助、基金会资助等)。
  • 预算管理。 机构/部门/项目/活动/科目多维预算,软占用与冻结释放机制,预算调整走审批并保留前后差异。
  • 捐赠与收入。 区分定向/非定向资金,支持人工录入、Excel 导入、截图 OCR;收入必须财务确认到账才可用。
  • 申请与报销。 费用、报销、借款、预付款、采购、差旅等单据类型,票据 OCR 人工确认,超预算走特殊审批。
  • 资金匹配。 系统按规则推荐、人工确认,支持一笔支出多笔资金的多对多匹配、调整、撤销与重匹配。
  • 报表与导出。 项目收支、预算执行、资金匹配明细、资方报告、审计追踪等十余种报表,支持 Excel/PDF/CSV 导出与 AI 摘要(人工确认后使用)。
  • 公开透明。 组织主页、项目公开页、捐赠追踪链接、资方报告页,按脱敏规则对外展示,支持打码、水印、公开前审核和撤回。
  • 跨组织资助协作。 资助协议、拨款批次、资方报告(提交锁定/退回/异议/变更单),资方在授权范围内查看但默认不审批被资助机构。
  • 本土合规台账。 公益事业捐赠票据(税前扣除用)开具与红冲、记账凭证草稿(对接用友/金蝶)、募捐活动与平台到账、资质/志愿者时长/年报与税务汇总等。
  • 物资库存、捐赠人 CRM、消息通知、项目成效评估(M&E) 等辅助模块。

四、用户可以怎么用

系统提供多种交付形态和使用入口,适配不同角色:

  • 集中托管(SaaS)。 平台方统一部署,公益组织作为独立租户入驻,按套餐(成员席位、存储、AI 任务数、导出数)使用。适合中小公益机构快速上手。
  • 独立/私有化部署。 客户在自己服务器上部署同一套镜像,单组织或多组织均可,数据完全自控。内置 Docker 生产镜像、生产 compose、健康检查和数据库备份/受保护恢复脚本。
  • Web 管理端。 组织日常管理的主入口,桌面和手机浏览器都适配。登录后可切换组织、切换模块、快速新建单据。会话基于 httpOnly Cookie,登录接口有限流防撞库。
  • 小程序轻量端。 供志愿者、捐赠人在手机上完成轻量捐赠、票据提交、审批处理、资金去向追踪。
  • 公开访问页。 公众、捐赠人、资方无需登录即可访问已发布的公开页,数据按脱敏口径展示。
  • API Key + OpenAPI(供 AI 访问)。 机构管理员可签发只读 API Key,让组织自己的 AI 或系统安全地只读访问本组织数据。Key 绑定单个成员、继承其权限与数据范围、强制不越权、不跨组织,适合接入 ChatGPT Actions、Claude 工具调用或自建 Agent 做数据问答与汇总。

角色分工建议

系统内置了从平台到组织再到外部的完整角色体系。典型分工是:

  • 机构负责人审批预算与重大支出;
  • 财务负责收入确认、报销审核、资金匹配、报表;
  • 出纳登记付款;
  • 项目负责人维护项目与执行;
  • 志愿者提交票据和报销;
  • 审计/观察员只读查看;
  • 外部的捐赠人看公开页和捐赠去向,资方管资助协议、拨款和资方报告。

权限是"权限点"级别的,角色是权限点的预设集合,同一账号可持有多个角色,权限取并集但保留拒绝边界,再叠加"数据范围(全局/部门/项目/本人)“控制可见范围。

五、一份简要的上手手册

对一个新入驻的公益组织,典型的启用路径是:

  1. 平台开户。 平台方审核组织资料,通过后邀请首位机构管理员并设置套餐配额。系统不开放公众自助注册。
  2. 组织初始化。 机构管理员进入设置,先选行业模板(预检 → 应用),再按需打开功能开关(公开透明/物资库存/资方协作/捐赠人 CRM/AI 辅助等),配置自定义字段、标签、科目映射和审批流程。
  3. 导入历史数据。 通过导入批次录入期初余额、历史项目/预算/捐赠/报销/库存/捐赠人档案,导入数据标记来源、可校验、可预览、可回滚。
  4. 邀请成员、分配角色。 邮箱或手机号邀请成员,分配角色和数据范围。
  5. 开展业务。 按"立项 → 预算 → 收入/资金 → 报销/付款 → 资金匹配 → 报表 → 公开 → 审计"的主线运转。

几个关键状态机记住就不容易出错:

  • 预算:草稿 → 提交 → 审批 → 生效 → 占用/释放 → 调整 → 冻结
  • 收入:草稿 → 提交 → 确认 → 锁定 →(更正/退款/冲销)
  • 报销:草稿 → 提交 → 审批 → 待付款 → 资金匹配 → 付款完成
  • 资方报告:创建 → 提交锁定 →(退回/异议/补充/变更)
  • 公开页:草稿 → 脱敏预览 → 审核 → 发布 →(撤回)

生产环境初始化不含任何演示数据;演示/试用环境才会写入样例组织和演示账号,切勿用于生产。

六、功能速览与角色指南(对外精简版)

如果你只想快速判断"这套系统能不能用在我的机构”,看这一节就够了。

多端入口,各司其职

入口 谁在用 用来做什么
Web 管理端 组织内部各角色 日常管理主入口,桌面和手机浏览器都适配
小程序轻量端 志愿者、捐赠人 轻量捐赠、票据提交、审批待办、资金去向追踪
公开访问页 公众、捐赠人、资方 免登录查看已发布的公开页与资方报告(脱敏口径)
API Key + OpenAPI 组织自有 AI/系统 只读访问本组织数据,天然不越权、不跨组织

按角色,各管一段

  • 机构负责人:看整体,审批预算与重大支出。
  • 财务:收入确认、报销审核、资金匹配、报表、记账凭证。
  • 出纳:登记付款、上传付款凭证。
  • 项目负责人:维护项目、服务对象、项目预算与执行。
  • 志愿者:手机端提交票据和报销。
  • 审计 / 观察员:只读查看日志、报表与公开材料。
  • 捐赠人:查看公开页、自己的捐赠去向与收据。
  • 资方:管理资助协议、拨款、资方报告与异议。

权限精确到"权限点”,角色是权限点的预设集合,同一账号可持有多个角色;再叠加"数据范围(全局/部门/项目/本人)“控制可见范围。

功能模块速览

系统按公益资金闭环组织成几组功能:

  • 资金主线:项目 · 预算 · 资金收入 · 申请报销 · 付款 · 资金匹配 · 物资库存
  • 票据 · 核算 · 募捐 · 成效:捐赠票据(税前扣除)· 记账凭证草稿 · 募捐活动与平台到账 · 合规台账(资质/志愿工时/年报/税务)· 项目成效与受益人反馈
  • 协作与透明:捐赠人 CRM · 资助协作(资方门户)· 报表中心 · 公开透明 · 审计
  • 配置与后台:设置与配置中心(模板/字段/流程/科目/集成/API Key)· 平台后台

关键业务流程,一眼看懂

  • 一笔捐赠:登记 → 财务确认到账 → 开捐赠票据 → 匹配到项目 → 花出去 → 生成脱敏公开页 → 公众可查去向。
  • 一笔报销:填单 → 审批 → 待付款 → 资金匹配 → 登记付款 → 生成台账流水。
  • 对接财务软件:从已确认收入/已付款生成记账凭证草稿 → 导出 → 科目对账。
  • 资方报告:创建 → 提交锁定 →(退回/异议/补充/变更),提交后不可随意改动。
  • 公开一页数据:生成草稿 → 脱敏预览 → 审核 → 发布 →(可撤回),全程留访问日志。

七、边界与定位

这套系统有意识地划清了边界,避免"什么都想做、什么都做不深”:

  • 它是公益资金管理台账与预核算系统,不是完整财务软件。会计期间、凭证正式入账、总账、三大报表、报税等仍在专业财务软件完成——但系统会生成记账凭证草稿并导出(用友/金蝶等可导入),避免两头重复录入。
  • 不直接发起真实付款,只记录付款动作;早期也不追求对接所有银行和支付平台自动对账。
  • 支付、银行对账、OCR、短信/邮件、财务软件、SSO 等外部集成,目前是"系统内建模 + 人工确认"的适配层,预留了事件台账、同步状态和人工处理入口,实际第三方对接按交付优先级接入。
  • AI 只做辅助。 OCR 结果、AI 说明、AI 匹配建议、AI 报告全部作为候选,必须人工确认,并保留生成时间、模型、提示词版本、输入范围和确认状态。

结语

公益的公信力,最终建立在"每一笔钱都能被说清楚"之上。

这套系统想做的,就是把公益组织从"记得住账、说不清事"的困境里拉出来:让预算有依据,让收入有限制,让支出有匹配,让报告能追溯,让公开可信任,让审计有留痕。

技术上它用 NestJS + PostgreSQL + Prisma 搭建,多租户、可配置、可私有化部署;但更重要的是,它把公益资金管理里那些"约定俗成却容易出错"的规则,一条条固化成了系统能力。

对做公益的人来说,这意味着可以把更多精力放回到真正重要的事情上——救助本身,而不是对账和解释。