Live
prepare_payment warns at prepare when unreserved cash is insufficient or unknown; it becomes a refusal at a future execution launch. Stored snapshots older than 24 hours are unknown by default. Execution is not enabled.View as MarkdownCash buckets
Agent Pay status: Approve does not execute. Execution: not enabled. ACH settlement: not enabled. prepare_payment never moves money. Machine-readable: /docs/agents/status.json.
A balance is not all spendable while drafts or holds are outstanding. POINTS splits it into three buckets.
| Bucket | Meaning |
|---|---|
| Unreserved | Spendable: the balance minus reserved and escrowed amounts, never below zero |
| Reserved | Amounts held by outstanding drafts and approvals |
| Escrowed | Amounts held for escrow-before-work drafts (requires execution (not enabled)) |
How agents see it
get_account_summary returns the available balance as the unreserved amount, and the agentPaySpend object breaks out all three buckets. Balances on the account summary are labelled sandbox.
Rules
- Prepare checks unreserved cash against the stored balance snapshot. Today it warns (
cash_checkon the prepare result and on the approval card), usingunreserved_cash_insufficientorunreserved_cash_unknown; it becomes a refusal with the same codes at a future execution launch. A snapshot older than 24 hours counts as unknown by default. The check includes all outstanding owner reservations and performs no provider read. No payment is sent by prepare. - Drafts reserve as soon as they are prepared. Reserved cash counts toward the operator's daily and monthly limits.
- Reservations are released when a draft is rejected, expires, or is revoked.
- Over-commitment fails closed. If reservations exceed the balance, unreserved is zero.
- A read error fails closed. If reservations can't be read, the whole balance is treated as committed.
Reserving cash does not move it. Approve does not execute.