---
taskmaster_id: "4.3"
status: "done"
priority: "high"
depends_on: ["2"]
parent_id: "4"
source: "taskmaster"
generated_at: "2026-05-28T11:49:27.076Z"
---

# 4.3 - Specify funds ledger and escrow state machine

- [x] 4.3 - Specify funds ledger and escrow state machine #taskmaster #priority/high #status/done ⏫ 🆔 tm-4-3 ⛔ tm-2

## Metadata

| Field | Value |
| --- | --- |
| Taskmaster ID | 4.3 |
| Status | done |
| Priority | high |
| Dependencies | 2 |
| Parent | 4 - Define backend security and refactor strategy from latest audit |

## Description

Define canonical money movement and legal state transitions before refactor or provider migration.

## Details

Create specs for FundsAccount, LedgerEntry, FundsBalance, gross paid, provider fees, platform fees, held, disputed, releasable, released, refunded, idempotency keys, reconciliation behavior, purchase request states, payment states, escrow/funds states, dispute states, valid transitions, forbidden transitions, and release/refund/admin override preconditions.

## Verification

Spec can be used to reject double-release, release-during-dispute, underfunded payout, and ambiguous provider-event scenarios.
