# Procure

URL: /workflows/processes/procure · Id: `process:procure`

> Procure turns a need into a purchase: make or buy, upstream review, an Agreement, then spend within Limits and on to payables.

Procure turns a need into a purchase: make or buy, upstream review, an [Agreement](/business/nouns/agreement), then spend within [Limits](/business/nouns/limit) and on to payables.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each purchase has a make-or-buy Decision, a reviewed upstream, a signed Agreement and a spending Mandate before the first charge. |
| Reads | [Decision](/business/nouns/decision) |
| Leaves | [Agreement](/business/nouns/agreement), [Mandate](/business/nouns/mandate), [Card](/business/nouns/card), [Task](/business/nouns/task) |
| Runs in | Each Startup |

## Accountable
[Operations Lead](/agents/operations/operations-lead), [Operations Team](/agents/operations).

Responsible: [Operations Lead](/agents/operations/operations-lead).

Consulted: [Finance Lead](/agents/finance/finance-lead), [Security Engineer](/agents/engineering/security-engineer), [Privacy Officer](/agents/legal/privacy-officer), [Contracts Manager](/agents/legal/contracts-manager).

Informed: [Treasurer](/agents/finance/treasurer).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) | on `Decision.created` where `choice = 'buy'` | [Operations Team](/agents/operations) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) | 1. Review the vendor before any data or money reaches it. | [Risk Analyst](/agents/operations/risk-analyst) | [Risk.assess](/business/nouns/risk/assess) | None |
| [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) | 2. Sign the vendor’s Agreement within the fallback positions. | [Contracts Manager](/agents/legal/contracts-manager) | [Agreement.create](/business/nouns/agreement/create) | None |
| [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) | 3. Grant a Mandate with a monthly Limit for the vendor’s charges. | [Treasurer](/agents/finance/treasurer) | [Mandate.authorize](/business/nouns/mandate/authorize) | Asks first; waits 1 business hour |
| [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) | 4. Issue a Card locked to the vendor under that Mandate. | [Treasurer](/agents/finance/treasurer) | [Card.issue](/business/nouns/card/issue) | None |
| [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) | 5. Record the vendor’s renewal date as a Task for the Operations Lead. | [Operations Lead](/agents/operations/operations-lead) | [Task.create](/business/nouns/task/create) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On `Decision.created` where `choice = 'buy'` | Starts [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) |
| Out | [`Risk.assessed`](/business/events/Risk.assessed) | Raised by step 1 of [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) |
| Out | `Agreement.created` | Raised by step 2 of [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) |
| Out | [`Mandate.authorized`](/business/events/Mandate.authorized) | Raised by step 3 of [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) |
| Out | [`Card.issued`](/business/events/Card.issued) | Raised by step 4 of [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) |
| Out | `Task.created` | Raised by step 5 of [Buy from a vendor](/workflows/processes/procure/buy-from-vendor) |

## Plays
No Play names this Process.

## Controls
No Control names this Process or a Workflow of it.

## Settings
None.

## Failure
A failed step retries; when retries run out, the Action goes to the [Operations Lead](/agents/operations/operations-lead).

## Loop
| Step | Value |
| --- | --- |
| Hypothesis | Buying a Capability costs less than building it when its fully loaded Cost falls. |
| Measure | [Fully loaded Cost](/agents/finance#fully-loaded-cost) over 1q, at least 3 observations |
| Learn | The learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant. |

## Code

**Ask**

```text
Turn on procure
```

**API**

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

**SDK**

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

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for every Product Template. [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

## Example
Marketing needs a social scheduling tool. Procure weighs building it on the platform against buying it, buys it after upstream review, signs the [Agreement](/business/nouns/agreement), and sends the bill to payables.