Layers
Each transaction posts to one layer; balances report every layer separately.
| Layer | Meaning | Spendable |
|---|---|---|
settled |
Cleared and final | Yes |
pending |
Accepted, not yet cleared | No |
encumbrance |
Committed for a future date (schedules, holds) | No |
layer on POST /transactions defaults to settled. Input is case-insensitive; responses are lowercase.
Balance fields
GET /accounts/{id}/balance returns:
{
"balances": {
"settled": "1000.00",
"pending": "50.00",
"overdue": "0.00",
"future": "200.00"
}
}
overdue and future split the encumbrance layer by due date: before today, or today and later. There is no available figure — only settled is spendable.
GET /accounts/{id}/balance/point-in-time?as_of=2026-01-31&layer=settled returns one layer’s balance at a past date.
Removing an encumbrance
POST /transactions/{id}/void marks a posted transaction void and recalculates balances. Entries are kept; nothing is deleted. Use it to drop a scheduled item; use reverse for settled postings.