Skip to content

07 settlement and ledger

技术老胡 edited this page Jul 30, 2026 · 4 revisions

收益结算与账本规则

V1 需要处理两条独立结算链:

商户:普通商品货款、云仓首次供货货款
用户:云仓代销本金返还、销售收益、到期回购款

用户租地/认养按订单、实际产出和邮寄履约管理,不生成用户收益账本。

一、账本架构

层级 作用
业务事实 订单、付款、退款、库存流水、批次进度、供货验收、履约
业务账本 按规则计算应付商户或用户的可审计明细
商户结算单 按商户和自然日汇总已满足条件的货款账本,审核后统一入账
资金入账记录 以唯一幂等键衔接业务账本/商户结算单与 CRMEB 余额、资金流水
对账 业务账本、商户结算单、入账记录和 CRMEB 资金流水之间核对

业务账本不是支付流水,也不能只依赖 CRMEB 余额变动反推业务原因。

V1 不为用户另建汇总结算单。用户云仓业务账本通过审核和风险检查后逐笔生成资金入账记录;商户货款则按自然日生成不可变结算单后统一入账。

二、基本原则

  • 每笔账本都有明确来源主体、业务类型、订单明细和规则快照。
  • 商户货款与用户云仓本金/收益分开计算,并走不同的入账链路。
  • 云仓首次购买与二次零售分开记录。
  • 配置变化不影响历史订单。
  • 账本只追加,不物理删除。
  • 退款和售后通过冻结、冲正、解冻或作废处理。
  • 每个计算任务都有唯一幂等键。
  • 用户本金、收益和回购款分开展示。
  • V1 优先做到可核算、可复核、可导出,不强求支付机构自动分账。

三、来源类型

来源码建议 说明
platform_self_goods 平台自营普通商品收入
merchant_goods 商户普通商品货款
merchant_cloud_primary_supply 商户云仓首次供货货款
user_cloud_principal 用户云仓已售本金返还
user_cloud_profit 用户云仓代销收益
user_cloud_buyback 用户到期未售回购款
user_cloud_reversal 云仓冲正
user_land_order 租地订单收入与退款,不生成用户收益
user_adoption_order 认养订单收入与退款,不生成用户收益

四、商户普通商品货款

商户结算基数
= 商品成交金额
- 商户承担优惠
- 商品退款扣减

商户应结算货款
= 商户结算基数
- 平台佣金
- 约定手续费
- 商户承担运费

平台券和平台补贴由平台承担,不减少商户结算基数。

五、商户云仓供货货款

V1 采用供货价模式:

商户有效首次购买数量
= 用户已付款数量
- 首次交易退款数量
- 入库/供货验收不合格数量

商户云仓供货货款
= 商户供货价 × 商户有效首次购买数量
- 首次退款扣减
- 商户承担的约定履约扣减

结算条件:

首次购买完成
+ 入库/供货验收完成
+ 首次售后观察期结束
+ 无退款/质量争议/冻结
→ 进入待结算

首次购买完成时间按去向认定:邮寄为确认/自动收货,自提为核销,代销为持仓进入正式批次。不同去向可能影响可结算时间,但不改变商户有效首次购买数量;平台二次零售是否售完也不影响商户供货货款。

六、用户云仓账本

1. 本金

本金是用户首次购买进入代销的商品价款,不包含邮寄补运费。

按活动 SKU 的结算模式,本金可能在进度节点分期返还,也可能在批次结束统一返还。

2. 代销收益

批次累计可分配销售利润
= max(0, 批次累计确认销售收入 - 批次累计已售本金)

用户累计应得收益
= 批次累计可分配销售利润
× 用户持仓占比
× 用户收益分成率快照

平台日常仓储、推广、包装、平台券和支付手续费从平台分成中承担,不临时减少用户收益基数。

3. 到期回购款

用户回购款
= 用户最终未售数量
× 用户云仓抢购单价
× 回购比例快照

回购款不是代销收益。回购完成后,对应商品所有权转为平台。

4. 累计差额

每次节点结算都使用累计差额:

本次应生成账本
= 当前累计应结算
- 历史已正式入账
- 已生成但尚未完成入账的业务账本

这样即使一次销售跨越多个进度节点,也不会重复发放。

七、三种结算模式

模式 25%/50%/75%/100% 节点 批次结束
批次结束统一结算 不入账 已售本金、全部收益、未售回购款
分期收益,结束返本金 只入账新增收益 已售本金、收益尾差、未售回购款
分期本金和收益 入账新增本金和收益 本金/收益尾差、未售回购款

批次可能因全部商品提前有效售完而提前结束,也可能到期后通过回购结束。到期未售不伪造 100% 销售进度。

八、账本与入账状态

业务状态和资金入账状态分开保存,不用一个字段同时表达计算、审核和入账结果。

业务账本状态 说明
待条件 尚未满足观察期、验收或节点条件
待审核 计算完成,等待自动或人工校验
可入账 已满足规则和风控条件
已纳入商户结算单 仅商户账本使用,已锁定到不可变结算单
已冻结 存在退款、争议、库存或质量异常
已冲正 有对应反向账本抵消原事实
已作废 来源订单无效且未发生资金入账
入账状态 说明
未创建 尚未生成资金入账记录
待处理 已生成入账记录,等待执行
人工复核 单笔或当日累计金额超过阈值,或存在风险标记
处理中 已锁定记录并执行余额与流水事务
已完成 CRMEB 余额和配套资金流水均已成功写入
失败待重试 可恢复错误,等待任务重试
追偿处理中 冲正时余额不足,不允许部分扣款或产生负余额

所有变化记录操作者、时间、原因和原状态。资金入账使用唯一 posting_key,重试不得重复加减余额。

九、结算时点

商户普通商品

订单完成
→ 售后观察期结束
→ 无退款/争议
→ 可入账货款账本
→ 商户自然日结算单
→ 商户可用余额

商户云仓供货

用户首次购买有效
→ 入库/供货验收
→ 首次售后观察期结束
→ 可入账供货货款账本
→ 商户自然日结算单
→ 商户可用余额

用户云仓

二次零售订单完成并过售后观察期
→ 更新批次有效销售进度
→ 达到节点或批次结束
→ 生成累计差额账本
→ 审核/冻结检查
→ 生成唯一资金入账记录
→ 用户余额与用户账单在同一事务内入账

到期回购

批次到期
→ 停止新二次分配
→ 等待已锁定订单完成/释放
→ 确认最终未售数量
→ 生成回购单和回购账本
→ 商品转平台库存
→ 最终结算并关闭批次

十、退款、售后与冲正

未正式入账

  • 直接冻结、作废或重新计算尚未正式入账的业务账本。
  • 二次零售退款不再计入有效销售进度。
  • 商户首次交易退款冲减有效首次购买数量。

入账处理中

  • 暂停未执行的资金入账记录,并锁定相关业务账本。
  • 商户结算单一旦生成不得修改明细;发现差异时把未入账结单标为争议/冻结,复核后恢复原结单或生成独立调整结单,不取消原结单后覆盖重算。
  • 用户账本尚未完成入账时可作废原入账记录并重新计算,但必须保留完整审计链。

已正式入账

  • 原账本保留。
  • 新增反向冲正账本。
  • 仅审计确认的重复/错误入账,或最终外部支付撤销且权益已灭失时允许资金冲正。
  • 日常滞销、折扣回购、仓储成本、推广成本和平台原因损失不得冲减用户或商户既得金额。
  • 反向入账使用新的唯一资金入账记录并关联原记录,不修改原记录。
  • 目标余额不足时不得部分扣款或产生负余额,转为追偿处理中,冻结后续农业业务入账并人工复核。

十一、商户结算单与资金入账记录

商户结算单按“商户 + 结算自然日 + 结算类型 + 版本”唯一生成,汇总前一自然日已满足条件的普通商品或云仓供货账本。生成后明细和金额不可直接编辑;重新计算必须产生新版本或调整账本。

字段 说明
结算单号 唯一编号
结算单类型 商户普通、商户云仓
商户 ID 结算主体
结算自然日/版本 汇总周期与重算版本
账本数量 包含明细数量
商户货款合计 商户结算使用
扣减/冲正合计 退款和调整
应付合计 最终金额
状态 草稿、待审核、待入账、处理中、已完成、已驳回、已取消
审核人/时间 财务操作
资金入账记录 ID 实际入账关联
备注 说明

用户账本和商户结算单都通过统一资金入账记录连接 CRMEB 余额与流水。入账记录至少保存来源类型/ID/版本、目标账户、收支方向、金额、状态、入账前后余额、CRMEB 流水 ID、重试次数、错误信息和冲正关联。

自动入账阈值默认如下,均可在平台配置中调整:

场景 默认阈值 超限处理
用户单笔入账 10,000 元 金额不拆分、不改变,进入人工复核
用户单日累计入账 50,000 元 后续记录进入人工复核
商户单张结算单 100,000 元 整单进入人工复核

商户货款满足售后观察期后已经具备入账资格,因此农业业务不得调用 CRMEB 的全局商户资金锁定方法再次延迟;商户余额入账和财务流水必须在同一事务内完成。

十二、对账维度

商户云仓

活动付款数量
→ 首次退款数量
→ 有效首次购买数量
→ 入库/验收数量
→ 供货价货款
→ 待结算/已结算

用户云仓

用户代销数量
→ 批次有效销售数量与占比
→ 应返本金
→ 应得收益
→ 到期回购
→ 冻结/冲正
→ 待结算/已结算

资金

用户业务账本应付合计
= 用户成功资金入账 + 用户仍在处理金额

商户可入账账本应付合计
= 商户结算单应付合计
= 商户成功资金入账 + 商户仍在处理金额

上线前统一将相关核心金额字段扩展至 DECIMAL(14,2);中间计算使用不低于 DECIMAL(20,8) 的精度,并在应用层执行显式容量校验,不能依赖当前非严格 SQL 模式自动截断或钳制。

十三、导出要求

财务导出至少包含:

  • 业务和账本编号。
  • 主体名称和 ID。
  • 首次订单、二次订单、退款和批次关联。
  • 商品、SKU、数量和单价。
  • 供货价、用户本金、确认销售收入。
  • 分成率、进度节点、回购比例。
  • 本金、收益、回购、扣减和应付金额。
  • 观察期、入库验收和可结算时间。
  • 业务状态、商户结算单(如适用)、资金入账记录和 CRMEB 资金流水。
  • 创建、审核和结算时间。

十四、关联文档

Clone this wiki locally