每日还款收款与用户入账对账

1. 背景与目标

当前还款链路中,支付通道确认收款与 FCS 完成用户还款入账属于两个连续但独立的业务事实。回调延迟、主动查询失败、重复通知、金额或币种异常、内部补偿失败等情况,可能造成“通道已收到钱但用户未入账”或“用户已入账但通道侧缺少有效收款事实”。

本需求建设每日自动对账与财务核对明细能力,目标是:

  1. 每日按业务日核对支付通道收款与用户入账结果。
  2. 逐笔识别未入账、无通道收款、金额不一致、状态冲突和重复匹配等差异。
  3. 为财务提供可查询、可筛选、可导出、可追溯的对账明细。
  4. 对差异建立认领、复核、处理和关闭闭环,同时保留原始资金事实与处理证据。
  5. 通过对账结果观察重复收款、迟延入账和补偿失效情况,为后续 34-统一还款防重复治理 —— 暂hold、35-还款H5支付会话时效与代扣在途拦截 —— 暂hold 是否启动提供事实依据。
  6. 通过系统设置内统一配置的 Webhook,将每日总体结论播报给财务和运营协作群;发送、失败和重试均纳入审计,不单独建设播报记录菜单。

2. 适用范围

2.1 首期范围

  • 业务范围:现金贷还款。
  • 收款侧:Paystack、Monnify 及已接入的其他还款支付通道,包括银行卡还款、Web H5、自动代扣和虚拟账号到账。
  • 入账侧:FCS 中由对应收款资金产生的用户还款入账结果。
  • 使用角色:财务运营、支付运营、具备授权的系统支持人员和审计人员。
  • 使用能力:每日总体概览、对账批次、逐笔明细、退款影响核对、差异处理、重新核对、导出、系统设置内的 Webhook 配置和审计。

2.2 首期不包含

  • 放款出账、佣金付款和其他付款方向对账。
  • 退款申请、审批、执行和收款账户选择;但退款形成后的通道反向资金事实及其对原收款、用户入账的影响纳入本对账。
  • 支付通道结算到公司银行账户的结算款、手续费和银行流水对账。
  • 直接在对账页面修改用户余额、还款计划、通道状态或历史资金流水。
  • 根据人工判断直接补记用户入账、退款或冲正;此类资金动作须走独立且已授权的处理流程。
  • 将通道手续费或结算净额与用户应入账金额直接比较。
  • 面向用户展示财务对账状态或内部差异原因。

3. 角色与责任边界

角色 / 系统责任
支付通道提供收款交易的权威状态、实收金额、币种、交易时间和通道参考号
PMT / 支付域保存支付订单、通道参考关系、回调与主动查询结果,形成可核对的通道收款事实
FCS / 账务域负责还款分配和用户入账,是用户已还金额、余额及入账结果的权威来源
对账任务按统一口径采集双方事实、匹配、分类、汇总、重跑并保留版本
财务运营查看汇总和明细,认领差异,核验证据,推动责任系统处理并完成财务复核
支付运营 / 系统支持排查通道未知、参考关系缺失、回调或补偿异常,提交处理结论和证据
审计人员只读查看批次、差异处理和导出审计记录

财务在本功能中负责核对和处理闭环,不成为通道状态或用户账务状态的数据所有者。前端不得根据金额相等自行覆盖权威状态。

4. 核心口径

4.1 业务日

  • 对账按 App / 国家 / 币种 / 支付通道 / 业务日 分组。
  • 业务日以对应 App 所属国家的配置时区计算,不统一使用服务器时区。
  • 通道收款以通道确认的成功时间归属业务日;仅有内部入账而无通道成功记录时,暂以内部入账时间归属待核对业务日。
  • 跨日回调或延迟入账仍按同一笔资金参考关系匹配,不因日期不同拆成两笔差异。
  • 页面必须展示业务时区、数据截止时间和最近核对时间,避免财务将未到截止时间的数据当成最终结果。

4.2 对账金额

  • 通道侧金额取该笔成功收款的实际支付金额,不取扣除手续费后的结算净额。
  • 入账侧金额取该笔资金在 FCS 已成功入账的合计金额。
  • 一笔通道收款被 FCS 分配到多个期次或多个账务组件时,应先按同一资金事实汇总,再与通道收款金额比较;不得把每个分配明细分别与通道总额比较。
  • 金额比较必须在同一币种和该币种精度下进行。首期不做跨币种换算。
  • 通道收款金额为用户实际支付的全额;通道费、税费和结算净额单独展示。通道未返回某项时标记为“未返回”,不得虚构为 0。
  • 通道费不等同于向用户收取的费用,也不计入用户入账差额;用户入账差额仍以通道收款金额与 FCS 入账合计比较。

4.3 对账对象

每个对账对象代表一笔真实收款资金及其对应的用户入账结果,至少关联:

  • App、国家、币种和业务日。
  • 还款方式和支付通道。
  • 内部还款订单 / 支付订单。
  • 通道交易参考号。
  • 客户和借据。
  • 通道实收金额与状态。
  • FCS 入账金额与状态。
  • 首次收款、首次入账及最近状态更新时间。

客户、账户和卡信息默认脱敏。财务对账不依赖客户姓名或完整账号完成匹配。

4.4 通道收款明细获取与权威性

对账任务须从通道商户侧获取全量收款明细,而不是只依赖本系统回调记录。通道商户后台导出的文件可作为财务复核证据和应急补数来源,但自动对账以已授权的通道交易明细拉取结果为准;WebHook 仅用于及时发现和触发补查,不单独构成收款成功基准。

通道日常全量收款来源单笔补查来源手续费 / 结算核验来源不可作为唯一基准
Paystack商户集成下按时间范围、成功状态全量获取交易明细;也可生成通道交易导出文件用于财务留档以支付参考号获取单笔交易结果,核实状态、实收金额、币种和成功时间单笔交易返回的实际费用;结算清单及其交易组成用于复核已结算金额、费用合计和结算归属前端跳转结果、仅有的内部回调、按费率公式推算的手续费
Monnify商户集成下按时间范围、支付状态全量获取交易明细;虚拟账户收款纳入对应的保留账户交易明细以支付参考号或通道交易参考号查询交易状态,核实实收金额、支付时间和支付状态通道返回的结算金额及结算归属;按结算参考号取得的交易组成用于复核前端回跳、仅有的通知消息、将实收金额与结算金额差额直接当作确定手续费

通道数据采集的共同规则:

  1. 每次采集按 业务日开始时间 - 数据截止时间 取数并完成全部分页;保存来源、拉取时间、原始文件或结果版本、记录数和截止位置。
  2. Paystack 仅以交易状态为 success 的交易形成成功收款事实;Monnify 仅以支付状态为 PAID 的交易形成全额成功收款事实。OVERPAID、PARTIALLY_PAID、PENDING、REVERSED 等须分别保留并按差异规则处理,不能混入全额已收款。
  3. 通道返回的金额统一按币种精度还原后入库;Paystack 的金额和费用须按其币种最小单位处理,不能把最小单位直接作为页面金额。
  4. 通道交易明细、单笔补查结果和商户后台导出发生不一致时,批次标记“通道数据冲突”,不自动覆盖历史版本;由支付运营复核通道侧证据。
  5. 通道手续费优先使用交易明细直接提供的费用。只有通道明确提供结算金额而未提供费用时,才可在“结算扣减(待确认)”中展示 实收金额 - 结算金额;该值不得写入“通道费”、不得参与用户入账差额,也不得按费率反推替代。

4.5 对账基准与判断流程

对账基准:一笔已被通道确认成功的收款资金事实,按唯一通道参考关系关联到内部订单,再与该资金事实对应的 FCS 成功入账合计比较。

flowchart LR
  A[Paystack / Monnify 全量交易明细] --> B{通道最终成功?}
  W[通道 Webhook] --> C[按参考号单笔补查]
  C --> B
  B -- 否 / 未知 --> D[待确认或通道侧异常]
  B -- 是 --> E[通道收款事实\n实收金额、币种、成功时间、参考号]
  E --> F{唯一关联内部订单?}
  F -- 否 --> G[参考关系缺失或多重匹配]
  F -- 是 --> H[FCS 成功入账分项汇总]
  H --> I{金额与币种一致?}
  I -- 是 --> J[已匹配]
  I -- 否 --> K[金额 / 币种差异]
判断层级对账事实基准字段结论规则
① 通道收款成立Paystack 成功交易 / Monnify 已支付交易通道状态、实收金额、币种、成功时间、通道参考号未达到最终成功状态时,不产生“已收款”结论,只进入待确认或通道异常
② 订单关联成立PMT 保存的内部订单与通道参考关系内部订单号、内部还款订单号、支付订单号、通道参考号只能唯一关联;无关联或一对多 / 多对一均不得自动匹配
③ 用户入账成立FCS 成功还款入账及收费科目分项入账状态、入账金额、币种、入账时间同一资金事实对应的全部成功分项先汇总;失败、撤销、处理中分项不计入成功入账
④ 逐笔对账结论通道收款事实与 FCS 入账汇总币种、通道收款金额、FCS 入账合计币种和金额均一致才为已匹配;其余进入明确差异类型
⑤ 结算 / 手续费复核通道结算清单结算批次、通道费、结算净额仅用于验证通道费与结算归属,不能替代 ①—④ 的用户收款与入账对账

通道实际收款、用户入账和结算款是三层不同事实:

用户支付全额(通道收款基准) ──逐笔匹配──> FCS 用户入账合计
            │
            └──通道费 / 税费 / 结算扣减──> 通道结算净额(财务结算复核,不参与用户入账差额)

外部能力依据:Paystack 的交易明细、单笔核验和交易导出及结算与结算交易明细;Monnify 的交易状态与全量交易查询及交易核验说明。上线前应以生产商户已开通能力再次确认。

4.6 后续退款的对账口径

退款不得覆盖或删除原收款事实。系统为同一笔交易保留两条独立对账轴:

flowchart LR
  P[原通道成功收款 P] --> A[收款轴]
  B[FCS 原成功入账 B] --> A
  R[通道累计成功退款 Rp] --> C[退款轴]
  F[FCS 累计退款冲正 Rf] --> C
  A --> D{P = B?}
  C --> E{Rp = Rf?}
  D --> G[原收款结论]
  E --> H[退款影响结论]
  G --> I[综合展示]
  H --> I
指标计算口径用途
原通道收款 P原交易的通道实收金额与 FCS 原入账合计比较,退款后仍不改写
FCS 原入账 B原资金事实对应的成功入账分项合计与 P 比较
通道累计成功退款 Rp同一原交易下所有最终成功退款去重后的金额合计与 FCS 退款冲正比较;处理中和失败退款不计入
FCS 累计退款冲正 Rf与退款事实关联的成功冲正 / 退款入账金额合计与 Rp 比较
通道净保留金额P - Rp汇总辅助,不可替代两条逐笔对账轴
FCS 净入账金额B - Rf汇总辅助;净额相等也不能掩盖原收款或退款轴上的差异

退款事实来源:Paystack 支持部分或全额退款,退款具有 pending、processing、needs-attention、failed、processed 等状态;仅 processed 计入成功退款。Monnify 通过退款列表 / 单笔退款状态及成功、失败退款通知提供退款事实;仅通道最终成功状态计入成功退款。Webhook 到达后仍需按退款参考号补查权威状态并去重。参考:Paystack Refunds、Monnify Transaction Refunds。

4.6.1 退款状态处理

退款状态 / 场景是否计入 Rp原收款处理FCS 处理要求对账结论
已发起、待处理、处理中否原成功收款保持不变不得因退款申请提前冲正已入账金额退款待确认;超过时效进入账龄关注
需要补充资料否原成功收款保持不变不得提前冲正退款待处理,提示责任团队补充资料
退款失败否原成功收款保持不变已入账金额应继续有效;若已提前冲正则形成差异退款失败,或“退款失败但账务已冲正”
部分退款成功是,按实际成功金额原收款仍保留全额仅冲正对应退款金额及实际收费科目比较累计成功退款与累计冲正
全额退款成功是,累计至原收款金额原收款仍保留全额并关联反向资金事实已入账时应完成等额冲正;未入账时按退款先于入账规则处理已退款匹配或退款差异
多次部分退款是,逐笔去重后累计每笔退款均关联同一原收款每次冲正保留独立参考,累计不得超过原入账可冲正金额按单笔退款核对,并展示累计结果
退款成功后又发生退款冲回 / 撤销按通道最终反向结果恢复对应额度保留退款及退款冲回两条事实FCS 同步恢复相应账务影响单独形成“退款冲回”核对,不删除成功退款历史
非系统发起的通道退款是通过通道全量退款明细发现必须关联内部订单和原因;无法关联时不得自动冲正通道有退款、内部无退款记录
内部记录已发起但通道无退款否不产生通道反向事实不得视为已退款或完成冲正内部退款无通道记录

4.6.2 退款与入账先后顺序

顺序核对规则
先入账、后退款默认路径。先保持 P = B 的原收款结论,再要求成功退款 Rp = Rf;退款处理中不得提前冲正
全额退款成功、原收款尚未入账若原收款与全额退款均为通道终态、退款关系唯一、FCS 从未入账且业务明确不再入账,可标记“全额退款完成—未入账”,不要求先做一正一反;仍保留两笔通道资金事实
部分退款成功、原收款尚未入账默认仍应先按原收款入账、再按成功退款冲正。只有 FCS 明确支持退款先于入账的净额入账,并保存退款参考和收费科目依据时,才允许比较 P - Rp 与后续 FCS 入账;该记录单列为“退款先于入账—净额核对”
退款处理中、原收款尚未入账不得用“可能退款”抵消通道已收款未入账差异;原收款仍按未入账处理,退款单独显示待确认
退款失败、FCS 已提前冲正形成高优先级差异,要求恢复账务或重新执行有效退款;不能因两边净额暂时接近而关闭

4.6.3 退款匹配与金额规则

  1. 退款首先按通道退款参考号去重,再通过原通道交易参考号关联原收款,最后关联内部退款记录和 FCS 冲正记录。
  2. 同一原收款可对应多笔部分退款;累计成功退款不得超过原通道实收金额。超额、币种不同或关联多个原交易时标记“退款数据冲突”。
  3. 退款手续费、不可退的原交易手续费和汇兑差额单独展示,不计入用户退款金额,也不得通过修改 Rp 或 Rf 消除差异。
  4. 原收款日和退款成功日分别归属各自业务日。退款日批次记录反向资金事实,并关联原收款业务日;已确认的原批次显示“确认后发生退款”,保留原版本,不静默改写。
  5. 退款通知重复、状态反复或主动查询与通知不一致时,以通道单笔退款最终查询为准;每次变化保留版本轨迹。
  6. 争议扣款、拒付、通道自动冲正与商户主动退款来源不同,须分别标识,但均按独立反向资金事实处理;首期不得把拒付自动伪装成普通退款。

5. 每日对账批次

5.1 生成规则

  1. 每个业务日结束后自动生成该业务日的对账批次,默认在次日 02:00 首次执行,具体时间可按国家和通道配置。
  2. 生成前分别确认通道侧和 FCS 侧的数据截止位置;任一侧数据缺失、获取失败或不完整时,批次标记为“数据不完整”或“生成失败”,不得显示为“无差异”。
  3. 同一业务日、App、币种和通道重复执行时更新同一批次版本,不新增互相冲突的正式批次。
  4. 对迟到回调、主动查单和延迟入账进行自动复核。默认在次日 10:00 和第二日 02:00 再次核对,时间支持配置。
  5. 已被财务复核的批次再次执行时,保留原复核记录,并清楚标识新增、已消除和仍存在的差异。
  6. 所有批次均记录生成时间、双方数据截止时间、数据完整性、规则版本、最近核对时间和结果版本。

5.2 批次状态

批次状态含义可用操作
生成中正在采集和匹配双方数据查看进度,不可确认
数据不完整至少一侧数据未达到截止位置或部分获取失败查看缺失来源、重新核对
待复核—无差异当前版本逐笔匹配且数据完整查看明细、导出、财务确认
待复核—有差异当前版本存在待确认或已确认差异查看差异、认领、导出、重新核对
已复核财务已完成当前版本复核查看、导出;新数据到达后提示重新复核
生成失败未形成可用批次查看失败分类、重新生成

“无差异”只代表当前完整数据范围内逐笔核对通过,不等于支付通道结算款已到账公司银行账户。

6. 自动匹配与差异分类

6.1 匹配优先级

  1. 通道交易参考号与内部保存的通道参考关系唯一一致。
  2. 内部支付订单与 FCS 入账记录的原始还款参考关系唯一一致。
  3. 同一真实资金下的多个 FCS 分配明细汇总后进行比较。
  4. 仅金额、客户和时间相近但缺少稳定参考关系时,只能作为人工排查候选,不得自动判定匹配。
  5. 一个通道交易匹配多个互不相同的内部资金对象,或一个内部对象匹配多个通道交易时,判定为重复 / 多重匹配异常。

6.2 对账结果

对账结果判定口径是否计入差异
已匹配通道成功、FCS 已入账,币种与金额一致,参考关系唯一否
通道已收款、用户未入账通道已确认成功,但 FCS 无对应成功入账或仍在入账中是
用户已入账、通道无有效收款FCS 已入账,但通道无对应记录或权威状态不是成功是
金额不一致参考关系一致,但通道实收与 FCS 入账合计不一致是
币种不一致关联记录币种不同是
状态冲突通道失败、自动冲正、拒付或其他非退款终态与 FCS 入账结果冲突是
退款待确认退款处于待处理、处理中或需补资料状态单列待确认,不计入成功退款金额
退款已匹配通道累计成功退款与 FCS 累计成功冲正金额、币种及参考关系一致否
通道退款成功、FCS 未冲正原收款已入账,通道退款最终成功,但无对应成功冲正或冲正金额不足是
FCS 已冲正、通道退款未成功FCS 已冲正,但退款仍在处理、失败或通道无有效退款记录是,高优先级
退款金额不一致通道累计成功退款与 FCS 累计成功冲正金额不同是
退款参考缺失 / 重复退款退款无法唯一关联原收款,或同一退款被重复累计是
重复 / 多重匹配一笔资金被重复消费、重复入账或存在多个无法唯一确定的匹配对象是
通道处理中 / 结果未知通道尚无权威终态,暂不能判断是否真实收款单列待确认,不并入已确认差异金额
参考关系缺失存在单侧记录,但缺少稳定参考号,无法自动匹配是

对账结果表示双方当前资金事实;处理状态表示人员是否已跟进。人工关闭差异不得把“通道已收款、用户未入账”等事实改写为“已匹配”。

7. 财务对账页面

后台增加一级菜单 Finance,其下增加 Daily Reconciliation。功能级配置不得各自增加配置菜单;所有跨功能 Webhook 配置统一进入 System Management > System Settings,仅系统管理员可见和维护。首期不设置播报记录菜单。

页面结构如下:

页面菜单 / 入口核心用途默认角色
每日总体概览Finance > Daily Reconciliation > Overview查看所选业务日的总体结论、双方汇总、差异分布和处理进度财务运营、支付运营、审计只读
对账批次Finance > Daily Reconciliation > Batches按 App、国家、币种和通道查询批次并进入明细财务运营、支付运营、审计只读
差异处理从概览、批次或差异列表进入核对单笔双方事实,认领、转派、重新核对和关闭处理财务运营、支付运营、系统支持
系统设置—每日对账播报System Management > System Settings > Daily Reconciliation Webhook在统一系统设置内配置总体结论播报范围、触发时机、接收地址和启停状态系统管理员

7.1 每日总体概览

总体概览默认展示最近一个已生成业务日,并支持切换业务日、App、国家、币种和支付通道。页面必须先展示明确的总体结论:

总体结论判定口径
对账完成—无差异所选范围数据完整,所有终态交易逐笔匹配,不存在待确认或已确认差异
对账完成—有差异所选范围数据完整,但存在至少一笔已确认差异
对账待确认所选范围数据完整,不存在已确认差异,但仍有通道处理中或结果未知记录
数据不完整至少一个应纳入批次的数据源未达到截止位置或部分获取失败
对账失败至少一个必要批次未能生成可用结果
尚未生成业务日未结束或尚未到对账执行时间

总体概览展示:

  • 业务日、业务时区、数据截止时间、当前结果版本和最近核对时间。
  • 覆盖的 App、国家、币种、支付通道及批次数量。
  • 通道收款笔数 / 金额、FCS 入账笔数 / 金额、已匹配笔数 / 金额。
  • 当日成功退款笔数 / 金额、退款待确认笔数 / 金额、退款冲正匹配及退款差异笔数 / 金额;不得与原收款净额相抵后只展示净结果。
  • 待确认、已确认差异及各差异类型的笔数 / 金额。
  • 未处理、处理中、已关闭差异数量和最长未关闭账龄。

若筛选范围包含多个币种,各币种金额必须分组展示,只允许汇总笔数,禁止形成跨币种总金额。

7.2 批次列表

查询条件:

  • 业务日期范围。
  • App、国家、币种。
  • 支付通道、还款方式。
  • 批次状态、是否有差异。
  • 数据完整性。

列表字段:

  • 业务日和业务时区。
  • App、国家、币种、支付通道。
  • 批次状态、数据截止时间、最近核对时间。
  • 通道收款笔数 / 金额。
  • FCS 入账笔数 / 金额。
  • 已匹配笔数 / 金额。
  • 待确认笔数 / 金额。
  • 差异笔数、通道侧未入账金额、内部单边入账金额和绝对差额。
  • 未处理、处理中、已关闭差异数量。

净差额只能作为汇总辅助,不能代替逐笔核对。两笔方向相反的差异不得相互抵消后显示为无差异。

7.3 批次详情

批次详情顶部展示双方汇总、各差异类型分布、账龄分布和处理进度。明细支持按以下条件筛选:

  • 对账结果、处理状态、账龄。
  • App、通道、还款方式、币种。
  • 内部还款订单号、支付订单号、通道交易参考号。
  • 客户 ID、借据 ID。
  • 收款时间、入账时间。
  • 金额范围。

逐笔明细至少展示:

分组字段
归属业务日、App、国家、币种、通道、还款方式
关联标识内部订单号、内部还款订单号、支付订单号、通道交易参考号、客户 ID、借据 ID
通道侧通道状态、收款金额、通道费、结算净额(通道返回时)、收款时间、最近确认时间
退款侧原交易参考号、退款参考号、退款类型、退款状态、退款金额、累计成功退款、退款发起 / 完成时间、退款来源
入账侧FCS 入账状态、入账合计、收费科目及分项金额、累计成功退款冲正、冲正科目、入账 / 冲正时间、分配期次数、最近更新时间
对账结论对账结果、差额、首次发现时间、账龄、最近核对时间、数据版本
处理信息处理状态、负责人、原因分类、处理结论、关联工单 / 异常单、最后处理时间

点击明细可查看双方状态轨迹、FCS 分配明细、收费科目分项、自动核对记录和人工处理记录。收费科目按 FCS 实际记账归属展示,例如本金、利息、服务费、管理费、罚息 / 逾期利息、保险 / 担保费和其他费用;不适用的科目不展示,不以占位金额补齐。普通财务页面不展示通道原始报文、密钥、完整卡号、完整银行账号、BVN、手机号或原始错误堆栈。

7.4 差异处理详情

具备处理权限的人员可以:

  • 认领、转派或解除认领差异。
  • 选择标准原因分类并填写处理说明。
  • 关联已有工单 / 异常单,或记录需由哪个责任系统继续处理。
  • 上传或引用必要的核对证据;证据遵守访问权限和保存期限。
  • 发起“重新核对”,读取双方最新权威结果。
  • 在事实已匹配后关闭;或在差异已移交到独立资金处理流程后,以“差异保留、处理闭环”方式关闭。

关闭差异必须填写处理结论;涉及资金修正时必须关联实际处理记录。仅填写备注、口头确认或金额看似相等不能关闭为“已匹配”。

7.5 系统设置中的每日对账 Webhook 配置

Webhook 配置用于将每日总体结论播报到财务或运营协作群,不发送逐笔交易明细。配置作为 System Management > System Settings 中的“每日对账 Webhook”设置项呈现,包含配置列表、新建 / 编辑抽屉和消息预览;不得因每日对账或任何其他业务功能新增独立配置菜单。

每条配置至少包含:

配置项规则
配置名称在后台唯一且可识别,不使用接收地址作为名称
启用状态草稿、已启用、已停用;新建默认草稿,测试成功不自动启用
数据范围选择 App、国家、币种和支付通道;只能选择配置人有管理权限的范围
播报时机首次总体结论生成后、财务确认后;至少选择一种
结论类型可选择全部、无差异、有差异、待确认、数据不完整或对账失败
变更播报可选择总体结论或关键汇总发生变化时发送更正播报
播报时间按配置范围的业务时区设置;早于数据截止时间时不得执行正式播报
Webhook 地址仅在有配置权限的页面录入,保存后脱敏展示;列表、日志和导出不得展示完整值
签名密钥可选;仅支持设置或更换,保存后不可回显明文
备注记录群组用途、责任团队等非敏感说明,不进入播报正文

配置规则:

  • Webhook 地址必须使用安全地址;禁止指向本地、内网管理地址或其他不允许访问的目标。
  • 保存前展示固定模板预览。首期不开放任意消息模板和自由变量,避免把敏感字段或逐笔信息拼入群消息。
  • “测试发送”只发送明确标识为测试的模拟结论,不使用真实金额、客户或交易数据。
  • 测试成功仅证明当次地址可达,不代表每日正式播报已启用。
  • 修改数据范围、Webhook 地址、签名密钥、播报时机或结论类型后,下一次正式播报使用新版本;发送事实与配置版本通过审计记录追溯。
  • 停用配置只停止后续播报,不影响每日对账任务和页面结论。
  • 同一范围可配置多个接收目标,但保存时提示可能重复播报,由管理员确认。

8. 差异处理流程

每日生成批次
  -> 数据完整性校验
  -> 自动逐笔匹配
  -> 无差异:财务复核并确认
  -> 有差异 / 待确认:进入差异队列
       -> 认领并核查双方事实
       -> 可自动收敛:重新核对后更新结果
       -> 需业务处理:关联工单或独立资金处理记录
       -> 处理完成后再次核对
       -> 事实一致则关闭为已匹配
       -> 合法差异仍需保留则记录结论并关闭处理状态
  -> 批次达到复核条件后财务确认当前版本

批次财务确认条件:

  • 双方数据完整。
  • 所有已确认差异均已认领并具有处理状态。
  • 未关闭差异数量和金额已被财务明确知悉。
  • 批次确认记录包含确认人、确认时间、数据版本和未关闭差异摘要。

批次确认不冻结后续真实资金数据。迟到数据改变结果时,系统将批次标记为“确认后有变化”,要求财务复核新版本。

9. 异常与边界场景

场景处理规则
通道数据获取失败批次标记数据不完整或生成失败,告警并允许重试;不得生成无差异结论
FCS 数据获取失败同上,保留已采集的通道数据但不形成最终结果
通道回调迟到接收后更新原资金事实,重新核对原批次,不新建重复收款
FCS 延迟入账初始显示通道已收款、用户未入账;入账完成后重新核对并保留状态变化轨迹
同一参考号重复通知合并为同一通道资金事实,标记重复来源,不重复累计金额
同金额、同客户、相近时间存在多笔不做模糊自动匹配,进入重复 / 多重匹配或参考关系缺失差异
通道成功金额大于用户应还仍按实际收款核对;超额部分须进入溢缴款 / 退款流程,不得从对账中隐藏
通道退款或撤销晚于原收款原收款和后续反向资金事实均保留,若 FCS 未同步则产生状态冲突差异
退款通知重复按退款参考号幂等合并,不重复累计退款金额;状态变化保留轨迹
多次部分退款逐笔核对并累计,累计成功退款超过原实收金额时标记数据冲突
退款处理中超过时效保持退款待确认并累计账龄,不提前冲正、不视为失败,也不关闭原收款差异
退款失败但 FCS 已冲正形成高优先级差异,要求恢复账务或取得新的最终成功退款证据
通道退款成功但内部无申请保留通道退款事实,标记来源未知并由支付运营核实,不因缺少内部记录而忽略
原交易发生拒付 / 争议扣款单列为拒付反向资金事实,不混为普通退款;FCS 影响按独立账务处理结果核对
一笔收款分配多个期次汇总入账金额核对,详情展开各期次分配,不产生伪重复
人工处理期间数据变化提示当前页面版本已过期,刷新后基于新版本提交,避免覆盖最新结论
已复核批次出现迟到数据标记确认后有变化,保留原确认记录并要求重新复核

10. 权限、脱敏与审计

权限至少拆分为:查看总体概览、查看批次、查看明细、处理差异、重新核对、确认批次、导出、管理系统设置中的 Webhook、测试发送、人工重试 / 重播、查看敏感字段和查看审计。菜单可见不代表自动获得全部 App 数据范围、Webhook 管理权限或导出权限。

规则:

  • 所有查询、详情、处理、确认和导出均受角色与 App 数据范围控制。
  • 列表和导出默认不提供客户姓名、手机号、完整卡号、完整银行账号或身份信息。
  • 如确需查看敏感字段,必须独立授权、按次操作并记录原因和审计。
  • 对账记录、原始结果版本和审计记录不得由普通业务人员删除或覆盖。
  • Webhook 地址和签名密钥属于敏感配置,前端、日志、导出和审计展示不得回显明文;只有实际发送能力可以使用保存后的有效配置。
  • 认领、转派、原因修改、重新核对、关闭、批次确认、导出、Webhook 新建 / 编辑 / 启停、测试发送、人工重试 / 重播和敏感查看均记录操作人、时间、前后状态、结果和追踪标识。

11. 财务明细导出

  • 支持按当前筛选条件导出批次汇总或每日逐笔明细;每日逐笔明细按业务日导出,不受页面分页影响。
  • 每日逐笔明细至少提供三张工作表:
    • “每日对账明细”:一笔对账资金事实一行,包含业务日、App、国家、币种、通道、内部订单号、内部还款订单号、支付订单号、通道交易参考号、通道收款金额、通道费、结算净额(如有)、FCS 入账合计、收费科目汇总、对账结果、差额、收款 / 入账时间和处理状态。
    • “收费科目分项”:一笔内部订单的一个实际收费科目一行,包含业务日、内部订单号、内部还款订单号、支付订单号、收费科目、分项入账金额、FCS 入账状态、对账结果及关联对账记录号;该表不重复填写通道收款金额和通道费,避免按科目汇总时重复计算通道金额。
    • “退款影响明细”:一笔通道退款一行,包含退款业务日、原收款业务日、App、通道、币种、内部订单号、原通道交易参考号、退款参考号、退款类型、退款来源、退款状态、退款金额、累计成功退款、FCS 累计成功冲正、退款差额、退款发起 / 完成时间和退款对账结论。
  • 通道费未返回时导出为空并在文件说明中标记“未返回”;不得用 0 替代。收费科目以 FCS 实际记账归属为准,不得由前端推算或改写。
  • 导出基于提交时固定数据版本,文件内展示业务时区、数据截止时间、生成时间、筛选条件和行数。
  • 大数据量异步生成,不允许前端翻页拼接全量数据。
  • 文件默认脱敏,并记录申请人、App 范围、筛选条件摘要、数据版本、文件摘要、生成结果、过期时间和下载记录。
  • 新数据到达不会静默改写已生成文件;需要最新结果时重新发起导出。
  • 导出失败、部分数据源不可用或结果超出允许范围时必须明确提示,不生成看似完整的文件。

12. 通知与运营指标

12.1 每日总体结论 Webhook 播报

12.1.1 播报触发

  • 达到配置的播报时间且所选范围已形成总体结论后,按启用配置发送一次正式播报。
  • 所选范围在数据截止时间仍为数据不完整或对账失败时,按对应结论播报,不等待到次日静默跳过。
  • 配置选择“财务确认后”时,仅在当前数据版本完成财务确认后发送。
  • 已播报结论因迟到回调、延迟入账或重新核对发生变化时,只有开启“变更播报”才发送更正消息;更正消息必须同时展示原结论、新结论和新数据版本。
  • 同一配置、业务日、播报范围、触发场景和数据版本只允许有一次成功正式播报。失败重试复用原审计追踪标识,不生成多个看似独立的结论。

12.1.2 播报内容

每日总体结论消息使用固定结构,至少包含:

  • 标题:每日还款对账结论,并标识正式、测试、更正或人工重播。
  • 业务日、业务时区、覆盖范围、数据截止时间和结果版本。
  • 总体结论及数据完整性。
  • 按币种分别展示通道收款、FCS 入账、已匹配、待确认和差异的笔数 / 金额。
  • 各差异类型数量、未关闭差异数量和最长账龄。
  • 生成时间及后台总体概览 / 批次详情入口。

播报内容不得包含客户姓名、手机号、卡号、银行账号、BVN、客户 ID、借据 ID、订单号、通道参考号、逐笔金额、处理备注、原始错误或 Webhook 配置值。后台入口必须在登录和权限校验后才能查看数据。

12.1.3 失败与重试

  • 发送失败不改变总体结论、批次状态或财务确认状态。
  • 系统进行有界自动重试,默认在失败后 1、5、15 分钟重试,最多 3 次;重复尝试不得产生重复成功播报。
  • 地址无效、权限拒绝、签名失败等不可恢复错误可提前停止自动重试,并在审计记录中保留稳定失败分类。
  • 自动重试耗尽后通知系统支持,并允许具备权限的人员在修正配置后人工重试。
  • 人工重试使用当前有效配置,但消息仍关联原业务日和原数据版本;若数据版本已变化,应提示改为发送更正播报。

12.2 运营通知

  • 批次生成失败或数据不完整:通知支付运营和系统支持。
  • 通道已收款、用户未入账超过业务时限:按金额和账龄升级通知财务与账务责任人。
  • 状态冲突、重复 / 多重匹配、币种不一致:作为高优先级差异通知。
  • 批次确认后出现新差异:通知原确认人和当班财务。
  • 通知失败不改变批次或差异事实,也不能自动关闭异常。

12.3 核心指标

  • 每日通道收款笔数 / 金额、FCS 入账笔数 / 金额。
  • 逐笔匹配率和金额匹配率。
  • 通道已收款未入账笔数 / 金额及 15 分钟、30 分钟、2 小时、24 小时账龄分布。
  • 内部单边入账、金额不一致、状态冲突、重复 / 多重匹配数量。
  • 各 App、通道、还款方式的差异率。
  • 差异首次响应时长、平均关闭时长、超时未关闭数。
  • 自动复核后消除的差异数与长期未收敛差异数。
  • 每日总体结论播报应发数、成功数、失败数、重试成功率、平均送达时长和重复成功数;重复成功目标为 0。

13. 非功能要求

  • 金额计算使用币种对应精度,不使用展示格式后的数值参与比较。
  • 同一批次重复生成、重复核对和重复回调不得重复累计资金。
  • 批次汇总必须能够回溯到逐笔明细,逐笔明细能够回溯到双方来源和结果版本。
  • 页面展示的是哪一个数据版本必须明确;处理提交时发现版本变化应阻止覆盖并提示刷新。
  • 对账任务故障不得影响支付回调接收、主动查询、FCS 正常入账和既有补偿任务。
  • Webhook 发送和重试异步执行,不阻塞对账批次生成、总体结论展示或财务确认;单一接收目标故障不得影响其他配置。
  • 对账明细、处理记录、确认记录和导出审计按财务及审计制度保存;未确认制度前不得设置短于现有资金流水保存期限的清理策略。

14. 验收标准

  1. 每个业务日能按 App、国家、币种和支付通道生成唯一可追溯的对账批次,并展示双方数据截止时间。
  2. 任一数据源缺失或获取不完整时,批次明确显示“数据不完整 / 生成失败”,不会显示为无差异。
  3. 通道成功且 FCS 入账金额、币种和参考关系一致的交易逐笔标记为已匹配。
  4. 能准确分类通道已收款未入账、内部单边入账、金额不一致、币种不一致、状态冲突、重复 / 多重匹配和参考关系缺失。
  5. 通道处理中或结果未知的交易单列待确认,不混入已确认差异金额,也不当作失败释放。
  6. 一笔收款分配到多个 FCS 期次时按资金事实汇总核对,详情可展开分配明细且不产生重复金额。
  7. 跨日回调或延迟入账能更新原批次;已复核批次发生变化时保留原记录并提示重新复核。
  8. 财务能按日期、App、通道、状态、差异类型、处理状态、订单参考和金额范围查询逐笔明细。
  9. 批次汇总分别展示通道收款、FCS 入账、匹配、待确认和各方向差异,不以净额相抵掩盖逐笔差异。
  10. 财务可认领、转派、备注、关联处理记录、重新核对和关闭处理;人工动作不能直接修改通道或 FCS 权威事实。
  11. 差异关闭必须有标准原因和结论;资金修正类差异必须关联实际处理记录。
  12. 支持按固定数据版本异步导出财务汇总和每日逐笔明细;每日逐笔明细同时提供对账明细和收费科目分项,包含通道收款金额、通道费、内部订单号和实际收费科目,且不因收费科目拆分重复累计通道金额。文件展示截止时间、筛选条件、生成时间和行数,且默认脱敏。
  13. 查询、敏感查看、认领、转派、重新核对、关闭、批次确认、导出和下载均受权限与 App 数据范围控制并完整审计。
  14. 通道参考号重复通知不会重复累计;一对多或多对一无法唯一匹配时不会自动判定已匹配。
  15. 对账任务失败不会阻断正常收款、回调、查单、FCS 入账和既有补偿任务。
  16. 后台提供总体概览、对账批次和差异处理页面;每日对账 Webhook 统一置于系统设置,各页面受角色与 App 数据范围控制,且不提供播报记录菜单。
  17. 总体概览能按业务日展示唯一明确的总体结论;多币种范围按币种分别展示金额,不生成跨币种总金额。
  18. 管理员可按 App、国家、币种和支付通道配置总体结论的播报时机、结论类型、变更播报、Webhook 地址及启停状态。
  19. Webhook 测试只发送标识清楚的模拟结论,不使用真实交易数据;测试成功不会自动启用正式播报。
  20. 正式播报包含业务日、时区、范围、数据截止时间、总体结论、按币种汇总、差异摘要、数据版本和受权限保护的后台入口,不包含逐笔或敏感信息。
  21. 同一配置、业务日、范围、触发场景和数据版本只成功播报一次;自动重试或人工重试不会产生未标识的重复消息。
  22. 播报失败不改变对账结论和财务确认状态;自动重试耗尽后可查询稳定失败分类并由有权限人员人工恢复。
  23. 结论播报后因迟到数据发生变化时,开启变更播报的配置能发送带原结论、新结论和新版本的更正消息。
  24. Webhook 地址和签名密钥加密保存并在页面、日志、导出和审计展示中脱敏;配置、测试、启停、重试和重播完整审计。
  25. 原收款和后续退款作为独立资金事实保留;退款不会覆盖原交易成功状态、原金额或原批次快照。
  26. 退款待处理、处理中、需补资料和失败状态不计入成功退款金额,也不会触发 FCS 提前冲正;退款最终成功后才核对退款与账务冲正。
  27. 支持全额退款、部分退款、多次部分退款、跨日退款、退款失败、退款冲回、非系统发起退款及拒付场景,并能形成明确结论。
  28. 原收款轴与退款轴分别核对;即使通道净保留金额与 FCS 净入账金额相等,也不会用净额抵消两条轴上的逐笔差异。
  29. 已确认批次后发生退款时保留原确认版本,在退款业务日记录反向资金事实,并在原批次标识“确认后发生退款”。
  30. 导出包含退款影响明细,能按退款参考号追溯原收款、内部订单、通道成功退款和 FCS 冲正结果,重复通知不会重复累计。

15. 上线建议

  1. 影子期:连续运行至少 7 个业务日,只生成结果,不开放批次确认;由财务抽样核对通道后台和 FCS 明细。
  2. 校准期:确认各通道成功状态、时间口径、金额口径、迟到数据窗口和唯一参考关系,修正误差后再开放正式确认。
  3. 正式期:开放财务认领、导出和批次确认,保留影子期数据但明确标识不可作为正式财务结论。
  4. 运行观察:按差异类型、App、通道和账龄持续观察重复与迟延情况,再决定是否启动 34、35 号需求及其优先级。