# Reap虚拟余额扣了两次：核SETTLEMENT、债务和幂等回放

整理：链小知（AI 辅助）
资料核对日期：2026-10-14
引用地址：https://lianxiaozhi.com/tools/guides/reap-virtual-posting-settlement-idempotency-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按已有Program-Funded＋Managed记录解释虚拟资产余额与卡可用额度，区分真实资金、入账差额及结算。

## 使用工具
- [Reap / Virtual Asset Ledger](https://lianxiaozhi.com/tools/reap) · [官方入口](https://reap.global/)

## 前置条件
- 准备既有脱敏项目模式、accountId、虚拟资产定义、posting请求/回执、卡债与余额快照；不要提供密钥或完整卡资料。
- 按公开文档核已有材料，不创建项目/虚拟资产、不更改价格或发送posting，也不触发资金转移。

## 1. 固定资金模型和授权模式

此任务限定Program-Funded＋Managed：客户侧保管底层资产，Reap持有master collateral；虚拟posting本身不转真实币。User-Funded用户钱包和Program-Funded＋External实时授权不能套本任务的Virtual Assets余额。

资金模型及authorization mode均在项目设置时确定，文档称上线后不能更改。先从原材料确定，不能仅凭产品名、API能读或BTC标签判断。

核对结果：项目明确是Program-Funded＋Managed，虚拟与真实资产所在层分开。
依据：[Reap：User-Funded与Program-Funded资金模型](https://docs.reap.global/program-configuration/funding-models.md)
依据：[Reap：Managed与External授权范围](https://docs.reap.global/program-configuration/authorization-mode.md)
依据：[Reap：Virtual Assets与availableBalance](https://docs.reap.global/virtual-assets/overview.md)

## 2. 按虚拟资产单位及价格快照核金额

定义的symbol、decimals和rateSource不可更改；amount是该虚拟资产的十进制差额，不是新总额，也不是billing currency金额或原始链上整数。按virtualAssetId、精度和账户定位，避免将100份写成100USD。

FIXED价显式更新，HTTP价每5分钟成功抓取一次；卡授权用最近快照，服务短暂失败不会自动归零。核原SETTLEMENT entries的rateSnapshot，不用今天价格回填，DISABLED永久排除现余额但保留历史。

核对结果：资产身份、差额单位、ACTIVE/禁用状态和原价格快照分别留证。
依据：[Reap：虚拟资产精度、定价快照及禁用](https://docs.reap.global/virtual-assets/definitions.md)
依据：[Reap：postings、结算、可提款及幂等边界](https://docs.reap.global/virtual-assets/postings.md)

## 3. 用assets减liabilities解释可用额度

availableBalance=assets−liabilities。卡债含pending授权及cleared未结算；仅看虚拟资产总额会高估可支出。账户RESTRICTED会拒绝授权，即使卡仍ACTIVE，因此余额为正不证明卡现在可用。

SETTLEMENT同时扣虚拟余额并抵卡债；WITHDRAWAL只扣虚拟余额，若实际目的是清偿已消费债务，会把卡可用额度再降一次。以相同时点的账户/债务/原posting记录核，不把客户侧内部调拨也重复记入Reap。

核对结果：资产、pending/cleared卡债、可用额度和posting目的可对上。
依据：[Reap：账户余额、债务与restricted状态](https://docs.reap.global/accounts/overview.md)
依据：[Reap：postings、结算、可提款及幂等边界](https://docs.reap.global/virtual-assets/postings.md)

## 4. 逐项核结算金额与负债变化

同一posting多entries原子生效，SETTLEMENT用每项在posting时的价；各entry先按billing currency舍入后再加总。官方例100YUSD×1＋0.01WETH×3487.42得到134.87USD，150债务余15.13，这是说明性输入。

结算先减cleared，超出再减pending；若超还或之后退款，cardDebt.total可能为负，是可抵未来消费的账户credit，不直接判字段错误或立即可链上提取。posting是用户侧账目，不替代master collateral的卡网络真实结算回执。

核对结果：原rateSnapshot/settledAmount与cleared/pending/total变动有同币种口径。
依据：[Reap：postings、结算、可提款及幂等边界](https://docs.reap.global/virtual-assets/postings.md)

## 5. 可提款额度按每资产独立检查

WITHDRAWAL只防该虚拟资产余额负数，不防availableBalance变负；核已有assets回执的withdrawable，已扣pending卡债。每行withdrawable是假定只动该资产的上限，不能把多行上限直接加起来当总提款预算。

文档要求真实链入金已finalized才映射DEPOSIT、客户侧资金释放前先成功WITHDRAWAL，消费可观察后SETTLEMENT。这里只对既有时序留证；缺成功/最终确认记录不补记，也不追加资金测试。

核对结果：每资产上限与总额度不相加，真实变动和posting的已有先后能说明。
依据：[Reap：postings、结算、可提款及幂等边界](https://docs.reap.global/virtual-assets/postings.md)

## 6. 核同一操作的幂等和24小时边界

POST /postings必须Idempotency-Key，缺失422；同一逻辑操作的重试复用原键和body。同键同body可回放并带Idempotent-Replayed:true，同键不同body为400，正在处理的并发同键为409；24小时后同键会当新操作。

一般响应缓存含4xx/5xx，但401、422、429明确不缓存；业务错误和网络未收回执分开。已有重试超过24小时、换键或输入改变时先对照原posting身份及账本，不根据一次超时认定没入账。本文不重试或发送新请求。

核对结果：原幂等键/请求体摘要/时间/回放标记与账本事件能关联。
依据：[Reap：postings、结算、可提款及幂等边界](https://docs.reap.global/virtual-assets/postings.md)
依据：[Reap：幂等缓存、24小时和错误例外](https://docs.reap.global/api-reference/idempotency.md)

## 常见错误
- 媒体POS实时价格描述不代替HTTP五分钟快照方法；Virtual Asset账目不等实际BTC入金。

## 完成检查
- 留下对象、输入、原回执、计算口径和未验证项；没有资料不补假值，也不操作账户或资金。

## 相关知识

## 官方依据
- [Reap：User-Funded与Program-Funded资金模型](https://docs.reap.global/program-configuration/funding-models.md)
- [Reap：Managed与External授权范围](https://docs.reap.global/program-configuration/authorization-mode.md)
- [Reap：Virtual Assets与availableBalance](https://docs.reap.global/virtual-assets/overview.md)
- [Reap：虚拟资产精度、定价快照及禁用](https://docs.reap.global/virtual-assets/definitions.md)
- [Reap：postings、结算、可提款及幂等边界](https://docs.reap.global/virtual-assets/postings.md)
- [Reap：账户余额、债务与restricted状态](https://docs.reap.global/accounts/overview.md)
- [Reap：幂等缓存、24小时和错误例外](https://docs.reap.global/api-reference/idempotency.md)
- [TNGlobal：9月9日Virtual Asset Ledger产品报道（公告衍生）](https://technode.global/2026/09/09/reap-virtual-asset-ledger-bitcoin-card-spending/)
