财务与对账
账不对的时候,系统要能自己喊出来
货代的账错起来是安静的:钱包扣了两次、发票金额和收款分配对不上、供应商多收了没人发现。等季度对账时才查,已经翻不动了。
两套账,分开记
// 预付池与应收是两个概念,混在一起就再也分不开
一票订单
下面两条腿始终挂在它身上,不是两套账各记各的
AR · 应收(客户)
开票
送达并录入实际成本后才开,不提前
收款核销
钱包 / 收款单按先进先出冲抵
逾期提醒
账龄分档,超期自动拦新单
AP · 应付(承运商)
录实际成本
以承运商账单为准,不是下单时的报价
差异比对
与报价不符自动标出,够小的自动结案
该转嫁的转嫁
补收要写明原因,对外发票不随手改
这一票到底赚没赚
两条腿都落在同一个订单上,利润是算出来的,不是估出来的
// 账对不上时系统自己喊:数据库层有一组恒等式在跑(收款合计必须等于发票已收、余额不得为负…),对不上会告警,而不是等月底盘账才发现。
默认用钱包:不用申请账期、不用信用审核,绝大多数客户全程走这条路——充值到账确认后即可用余额下单。规模上来了,可以另外申请开通信用额度,走审核——两者最终都归到同一套发票与对账逻辑,区别只在钱是先到账还是后到账。
钱包:预付池
客户预存的钱,余额严格不为负。下单只做授权冻结,不真扣;送达开票后才按先进先出真正核销。
发票:唯一应收来源
应收只从未结发票产生。授信额度需经审核后开通,非默认可用——它只是风控授权,不入账,决定客户能不能下单,不影响你欠不欠账。
一组不变量,每小时自检
// 不是报表口径,是数据库层的硬约束
恒等式
发票已收金额必须等于其收款分配之和;余额必须等于总额减已收减贷记。手改数字会立刻被抓出来。
边界
钱包余额不为负;可发运额度 = 钱包 + 授信 − 未结发票 − 冻结。越界即告警。
可逆
每笔核销都可撤销,退款必须挂在真实收款来源上,不允许凭空生成贷记。
这些检查每小时跑一次,异常直接推到运维群。设计上宁可误报也不漏报 —— 账务问题发现得越晚,追溯成本涨得越快。
应收、应付与外部账
应收 AR
账龄分档、客户维度汇总、逐单明细,开票有唯一入口,不存在绕过开票的收入。
应付 AP
按供应商归集承运商账单,差异自动比对:承运商少收不会改动已经确认的客户账单,差额计入平台利润;多收的部分只有在有明确凭证时才能计入客户账单,不会出现一笔说不清来源的加价。
QuickBooks 同步
发票、收款与贷记同步到 QBO。开票入口始终在 TMS 一侧,QBO 是下游镜像而非并行账本。
代理那一层的分成怎么结,见 多级代理 →