# Corporate cards

URL: /systems/finance/cards · Id: `capability:cards`

> Corporate cards issue virtual and physical cards to Workers and agents, each bound to a Mandate, merchant rules and Limits.

Corporate cards issue virtual and physical cards to [Workers](/business/nouns/worker), each bound to a [Mandate](/business/nouns/mandate), merchant rules and [Limits](/business/nouns/limit). An [Agent](/business/nouns/agent)’s [Card](/business/nouns/card) pays for one [Task](/business/nouns/task) or one merchant, never anything it likes.

## Contract
| Clause | Terms |
| --- | --- |
| Issuing | [`Card.issue`](/business/nouns/card/issue) runs after the Mandate check passes. Every Card carries an explicit Limit per charge and per period, so the rail’s default never decides. |
| Kinds | `Card.form` is `singleUse` for one Task, `merchant` for one merchant that bills on its own schedule, or `physical` for a [Human](/business/nouns/human). |
| Single use | A Card whose `Card.form` is `singleUse` pays its Task once and closes. The receipt attaches to the same Task. |
| One merchant | A Card whose `Card.form` is `merchant` pays one ad network or renewal until the Mandate expires, within its Limit for each period. |
| Authorization | Each charge runs [`Mandate.spend`](/business/nouns/mandate/spend) in real time against the Mandate, its Limit and `Startup.spendState`. In `hold`, new spend declines at once. |
| Windows | [`Mandate.authorize`](/business/nouns/mandate/authorize) and [`Limit.raise`](/business/nouns/limit/raise) are one-way money decisions that wait their delay window. A charge inside a granted Mandate never waits. |
| Over the Limit | Declined, and an [Approval](/business/nouns/approval) opens for the [Treasurer](/agents/finance/treasurer) through [`Approval.approve`](/business/nouns/approval/approve). |
| Freeze and close | [`Mandate.pause`](/business/nouns/mandate/pause) freezes every Card under the Mandate. [`Mandate.revoke`](/business/nouns/mandate/revoke) closes them and releases amounts held for pending charges. |
| Spend records | Each charge posts a [Cost](/business/nouns/cost) to the Task that spent it, through [`Mandate.spend`](/business/nouns/mandate/spend). Every charge reaches [Spend management](/systems/spend) and the [Ledger](/systems/ledger). |
| Cardholder | The [Company](/business/nouns/company), never an agent, because a commercial card program never funds personal spend. `Card.last4` is all a Worker sees. |
| Program | A held [Startup](/business/nouns/startup) spends on the Studio-held entity’s own card program. A self-serve Startup spends on the platform’s program for connected accounts, and [`Card.issue`](/business/nouns/card/issue) refuses with `card-program-pending` until it is granted. |

## Verbs
| Verb | Object | Event |
| --- | --- | --- |
| [Mandate.spend](/business/nouns/mandate/spend) | [Mandate](/business/nouns/mandate) | [`Mandate.spent`](/business/events/Mandate.spent) |
| [Limit.raise](/business/nouns/limit/raise) | [Limit](/business/nouns/limit) | [`Limit.raised`](/business/events/Limit.raised) |
| [Card.issue](/business/nouns/card/issue) | [Card](/business/nouns/card) | [`Card.issued`](/business/events/Card.issued) |
| [Mandate.pause](/business/nouns/mandate/pause) | [Mandate](/business/nouns/mandate) | [`Mandate.paused`](/business/events/Mandate.paused) |
| [Mandate.revoke](/business/nouns/mandate/revoke) | [Mandate](/business/nouns/mandate) | [`Mandate.revoked`](/business/events/Mandate.revoked) |

## Interfaces
- [API](/code/api/reference)
- [SDK](/code/sdk/reference)
- [CLI](/code/cli/reference)
- [MCP](/code/mcp/reference)

## Example
The [Marketing Lead](/agents/marketing/marketing-lead) at a sleep-tracking app holds a `merchant` Card for one ad network, at $2,000 a month. The network charges at each billing threshold, and every charge passes the Mandate check. A $450 design tool gets its own `singleUse` Card, which closes after the purchase.