# Treasury

URL: /systems/treasury · Id: `system:treasury`

> Treasury holds a Startup’s cash accounts and balances on Stripe, moves money between them, and forecasts runway.

Treasury holds a [Startup](/business/nouns/startup)’s cash on Stripe and at its bank, moves it within the [Treasurer](/agents/finance/treasurer)’s [Limits](/business/nouns/limit), and forecasts runway every week. Every move is a [Transaction](/business/nouns/transaction) the [Ledger](/systems/ledger) reconciles.

## Summary
| Part | This System |
| --- | --- |
| Group | Finance |
| Status | Beta: it works, and its Verbs may still change |
| Shelf | Front: offered from a Startup’s first days |

You can ask:

- “How much cash do we have?”
- “Show this month’s transactions”
- “Forecast our cash for the next quarter”

## What you get
| Part | This System |
| --- | --- |
| Starts | On for every Startup at creation, with nothing to install. |
| Built from | [Payment rails](/systems/finance/payments), [Bank accounts](/systems/finance/bank-accounts), [Database](/code/platform/capabilities/database), [Financial accounts](/systems/finance/financial-accounts) |

## Nouns it owns
| Noun | Definition |
| --- | --- |
| [Transaction](/business/nouns/transaction) | A Transaction is money moving on a payment rail, such as a charge, a payout, or a transfer, reconciled to Entries. |
| [Forecast](/business/nouns/forecast) | A Forecast is a dated week-by-week projection of a Startup’s cash, revenue and Cost, computed from its records, that sets its spend state. |
| [Account](/business/nouns/account) | An Account is a ledger account in a Startup’s chart of accounts; a cash Account is held at one place, such as Treasury. |

## Verbs
| Verb | Object | Approval | Event |
| --- | --- | --- | --- |
| [Transaction.list](/business/nouns/transaction/list) | [Transaction](/business/nouns/transaction) | None | None. |
| [Transaction.get](/business/nouns/transaction/get) | [Transaction](/business/nouns/transaction) | None | None. |
| [Forecast.create](/business/nouns/forecast/create) | [Forecast](/business/nouns/forecast) | None | `Forecast.created` |
| [Account.sweep](/business/nouns/account/sweep) | [Account](/business/nouns/account) | None | [`Account.swept`](/business/events/Account.swept) |
| [Account.payout](/business/nouns/account/payout) | [Account](/business/nouns/account) | Asks first; waits 1 business hour | [`Account.paidOut`](/business/events/Account.paidOut) |
| [Account.list](/business/nouns/account/list) | [Account](/business/nouns/account) | None | None. |

## Events
| Direction | Event | How |
| --- | --- | --- |
| Emits | `Forecast.created` | By [Forecast.create](/business/nouns/forecast/create) |
| Emits | [`Account.swept`](/business/events/Account.swept) | By [Account.sweep](/business/nouns/account/sweep) |
| Emits | [`Account.paidOut`](/business/events/Account.paidOut) | By [Account.payout](/business/nouns/account/payout) |
| Emits | [`Transaction.failed`](/business/nouns/transaction#transactionfailed) | Raised by the rail |
| Emits | [`Transaction.settled`](/business/nouns/transaction#transactionsettled) | Raised by the rail |

## States
None.

## Who operates it
| Part | This System |
| --- | --- |
| Accountable | [Treasurer](/agents/finance/treasurer) |
| Team | [Finance Team](/agents/finance) |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | `assist` |
| Also calls its Verbs | [Supply Manager](/agents/operations/supply-manager), [Finance Lead](/agents/finance/finance-lead) |

## Approvals and limits
| Verb | Rule | Detail |
| --- | --- | --- |
| [Account.payout](/business/nouns/account/payout) | A person says yes first | Waits 1 business hour |

## Processes that use it
| Process | How it uses it |
| --- | --- |
| [Supply](/workflows/processes/supply) | A step calls [Forecast.create](/business/nouns/forecast/create) |
| [Books](/workflows/processes/books) | A step calls [Transaction.list](/business/nouns/transaction/list) |
| [Billing](/workflows/processes/billing) | A Workflow writes [Transaction](/business/nouns/transaction) |
| [Runway](/workflows/processes/runway) | A step calls [Forecast.create](/business/nouns/forecast/create) |
| [Payroll](/workflows/processes/payroll) | A Workflow writes [Transaction](/business/nouns/transaction) |
| [Delivery](/workflows/processes/delivery) | A Workflow writes [Transaction](/business/nouns/transaction) |
| [Expense approval](/workflows/processes/expense-approval) | A Workflow writes [Transaction](/business/nouns/transaction) |
| [Supplier payouts](/workflows/processes/supplier-payouts) | A Workflow writes [Transaction](/business/nouns/transaction) |
| [Budget](/workflows/processes/budget) | A step calls [Forecast.create](/business/nouns/forecast/create) |
| [Payables](/workflows/processes/payables) | A Workflow writes [Transaction](/business/nouns/transaction) |
| [Incorporation](/workflows/processes/incorporation) | A Workflow writes [Account](/business/nouns/account) |
| [Mail handling](/workflows/processes/mail-handling) | A Workflow writes [Transaction](/business/nouns/transaction) |

## Rail underneath
Stripe’s products (Stripe’s names): **Treasury**, **Financial Connections**, **Payments**.

| Noun | Stripe object | Source of truth |
| --- | --- | --- |
| [Transaction](/business/nouns/transaction) | **PaymentIntent** (`payment_intent`), when `kind` is `charge` | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |
| [Transaction](/business/nouns/transaction) | **Payout** (`payout`), when `kind` is `payout` | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |
| [Transaction](/business/nouns/transaction) | **Refund** (`refund`), when `kind` is `refund` | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |
| [Account](/business/nouns/account) | **Treasury FinancialAccount** (`treasury.financial_account`), when `heldAt` is `treasury` | The source of truth is Stripe: db.sb mirrors it, written only from Stripe’s webhooks. |

## Views and dashboards
| View | Shows | Metrics |
| --- | --- | --- |
| Cash | Balances, settled Transactions, and the cash Forecast. | [Default alive](/agents/founding#default-alive) |
| The [Treasurer](/agents/finance/treasurer)’s view | The Metrics its accountable Role answers for. | [Runway days](/agents/finance#runway-days) |

## Access
What each Access level may call here.

| Access level | May call |
| --- | --- |
| `owner` | Every Verb (9) |
| `admin` | All but 1 of 9: `Account.payout` |
| `member` | All but 1 of 9: `Account.payout` |
| `viewer` | Read only (6 of 9) |

## Import and export
| Connector | Mode |
| --- | --- |
| Stripe | Import: edits made in the tool arrive as Changes. |

## Fees and pricing
Stripe’s cost for each outbound payment and instant payout passes through at cost, booked as its own Entry; cash already held carries no platform fee.

## Availability and limits
| Part | This System |
| --- | --- |
| Status | Beta: it works, and its Verbs may still change |
| Stripe countries | `US` |

## Compliance notes
Stripe and its partner banks hold the funds; what each Account is used for stays the founder’s.

Controls it carries:

- [Point-in-time recovery](/systems/trust-and-governance/controls/point-in-time-recovery)
- [Processing definitions](/systems/trust-and-governance/controls/processing-definitions)
- [Supplier bank details](/systems/trust-and-governance/controls/supplier-bank-details)
- [Bank detail changes](/systems/trust-and-governance/controls/bank-detail-changes)

## Related Systems
- [Ledger](/systems/ledger)
- [Spend management](/systems/spend)
- [Earnings](/systems/payouts)
- [Pay runs](/systems/payroll): also holds [Transaction](/business/nouns/transaction)

## Example
A [Headless SaaS](/products/templates/headless-saas) for document scanning keeps two weeks of card spend in its card balance and moves the rest to reserve every week. The weekly [Forecast](/business/nouns/forecast) reads its [Subscriptions](/business/nouns/subscription), open [Invoices](/business/nouns/invoice) and [Bills](/business/nouns/bill), and projects 19 months of runway. The Treasurer [Agent](/business/nouns/agent) posts the number to the [Founder](/agents/founding/founder)’s week.