报错是这么冒出来的。上个月有一笔重复扣费申请了退款,平台侧显示退款成功,但可用余额一直没变,发票金额也没冲减,财务对账时发现余额与发票差了一千二百元。

中间走过弯路,把「发票按开票时金额固化,退款后不会自动红冲」当成主因,改完现象没变。

原因不止一个,得分开看。退款只体现在账单明细,没有回到可用额度。少数情况下是冲正记录挂在原订单上,余额账户没有对应流水。

不容易想到的是,退款状态接口和余额接口的口径不同。

拉退款单信息核对金额与状态

curl -s https://api.openai.com/v1/refunds -H "Authorization: Bearer $KEY" | jq '.data[0] | {id,amount,status}'

然后核对余额账户是否有入账流水

python ledger.py --account credit --since 2026-10-01 --grep refund

接着按退款单补一笔冲正流水

python adjust.py --refund rf_8842 --amount 1200 --reason duplicate-charge --dry-run

剩下的就是重新出对账表验证差额

python reconcile.py --bill oct.json --ledger ledger.csv --invoice invoice_10.csv

别只看报错消失,验证要多做一步。余额账户里能看到对应冲正流水,可用额度增加一千二百元,对账表差额归零,发票侧已登记红冲。

补一句。退款和冲正是两件事,钱退到卡上不等于额度回来,两边的流水都要落账才能对平。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189