# Approve card charges over $500

URL: /workflows/guides/approve-card-charges-over-500 · Id: `guide:approve-card-charges-over-500`

> Card charges under $500 go through and get coded; anything larger waits for your yes, with the receipt attached.

Charges on a company [Card](/business/nouns/card) under $500 go through and get coded. Anything larger becomes an [Approval](/business/nouns/approval) with the vendor and receipt attached.

Needs: [Issue a card with a limit](/systems/finance/issue-a-card-with-a-limit)

**Before it runs**

- You leave the chat: Never: it all happens in the chat.

## What you get
- 1 Approval to you for each charge over $500, with the vendor and the receipt (Approval)
- 1 every charge filed to the right account (Transaction)
- 1 receipt reminder to the cardholder after seven days (Message)
- 1 Expense approval Process, on (Process)

## Your agent does
**For agents**

- Guide: `guide:approve-card-charges-over-500`, status `live`. Page: [/workflows/guides/approve-card-charges-over-500.md](/workflows/guides/approve-card-charges-over-500.md).
- Approval: none. Run it when the founder asks.
- Leaves the chat: never.
- Needs first: [Issue a card with a limit](/systems/finance/issue-a-card-with-a-limit).
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Process.enable`](/business/nouns/process/enable) (`verb:Process.enable`) | `process` Process (an id), required: example `"process_expense_approval"` | `process` Process |
| 2 | [`Setting.update`](/business/nouns/setting/update) (`verb:Setting.update`) | `id` string, required: example `"setting_1"`; `key` string: example `"spend.askAbove"`; `value` json: example `{"amount":500,"currency":"USD"}` | `setting` Setting |

Returns: the last call answers with `setting` and its `action`, whose `status` is `done`, `pending` (waiting on an Approval or a Worker), `failed`, `canceled` or `refused`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "setting": {
    "$id": "https://api.sb/leaseline.app/settings/setting_1",
    "$type": "Setting",
    "key": "spend.askAbove",
    "value": {
      "amount": 500,
      "currency": "USD"
    }
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Setting.update",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/action_1"
  }
}
```

Next: offer “Lower it to $200 for software subscriptions”, or “Freeze the card for this vendor”.

Calls: `Process.enable` → `Setting.update`

Ask:

```text
Card charges under $500 are fine without me.
Chase missing receipts after a week.
Code every card charge to an account.
```

API:

```bash
# 1. Process.enable
curl -X POST https://api.sb/leaseline.app/processes/process_expense_approval/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"

# 2. Setting.update
curl -X PATCH https://api.sb/leaseline.app/settings/setting_1 \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":{"amount":500,"currency":"USD"},"key":"spend.askAbove"}'
```

SDK:

```ts
import { $ } from 'startup-builder'

await $.Process.enable({ process: 'process_expense_approval' })
await $.Setting.update({ id: 'setting_1', value: { amount: 500, currency: 'USD' }, key: 'spend.askAbove' })
```

CLI:

```bash
npx startup-builder do Process.enable --json '{"process":"process_expense_approval"}'
npx startup-builder do Setting.update --json '{"id":"setting_1","value":{"amount":500,"currency":"USD"},"key":"spend.askAbove"}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "await $.Process.enable({ process: 'process_expense_approval' })\nreturn await $.Setting.update({ id: 'setting_1', value: { amount: 500, currency: 'USD' }, key: 'spend.askAbove' })"
  }
}
```

## Change it
- Lower it to $200 for software subscriptions.
- Freeze the card for this vendor.
- Show me what we spent on cards this month.

## Under the hood
- Systems: [Spend management](/systems/spend), [Ledger](/systems/ledger)
- Nouns: [Card](/business/nouns/card), [Mandate](/business/nouns/mandate), [Approval](/business/nouns/approval), [Transaction](/business/nouns/transaction), [Setting](/business/nouns/setting)
- Events: [`Card.issued`](/business/events/Card.issued), [`Mandate.spent`](/business/events/Mandate.spent)
- Stripe objects: `Issuing Authorization`

Set the line where your attention is worth more than the money. At $500 a founder sees a few charges a month, not every coffee. For an [Agent](/business/nouns/agent) spending on its own [Mandate](/business/nouns/mandate), see [what agents spend](/agents/approve-what-agents-spend).