# Wind down my startup

URL: /business/wind-down-my-startup · Id: `guide:wind-down-my-startup`

> Pause the business to stop all work and keep everything, then dissolve the company to close it for good; only the second step is final.

Winding down takes two steps. Pausing the [Startup](/business/nouns/startup) stops the work and keeps everything; dissolving its [Company](/business/nouns/company) closes the legal entity for good.

| | Pause the business | Dissolve the company |
| --- | --- | --- |
| Say | `Wind down Leaseline` | `Dissolve the company` |
| Stops | Every scheduled [Workflow](/business/nouns/workflow); [Offers](/business/nouns/offer) end on their own terms | The registered agent and every recurring filing |
| Stays | The site, the domain and every record | Every record, kept forever |
| You do | Nothing more | Sign the certificate of dissolution as an officer |
| Undo | Say `Resume Leaseline` | None: it is one-way |

Needs: [Startup](/business/nouns/startup)

**Before real money moves**

- Who says yes: You. Your agent shows you the run and waits for your [Approval](/business/nouns/approval).
- You leave the chat: Never: it all happens in the chat.

## What you get
- 1 business moved to Dormant, with nothing deleted (Startup)
- 1 stop to every scheduled Workflow (Workflow)
- 1 site, domain and records kept, so the business can resume (Site)
- 1 company wound up, with its final returns filed (Company)
- 1 certificate of dissolution for you to sign as an officer (Document)

## Your agent does
**For agents**

- Guide: `guide:wind-down-my-startup`, status `beta`. Page: [/business/wind-down-my-startup.md](/business/wind-down-my-startup.md).
- Approval: ask the founder first. Show the run, then wait for their Approval; a refusal ends it.
- Leaves the chat: never.
- Needs first: [Startup](/business/nouns/startup).
- 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 | [`Startup.pause`](/business/nouns/startup/pause) (`verb:Startup.pause`) | `startup` Startup (an id), required: the `$id` of the first Startup `Startup.list` returns; `reason` text: example `"No paying customers after six months."` | `startup` Startup |
| 2 | [`Company.dissolve`](/business/nouns/company/dissolve) (`verb:Company.dissolve`) | `company` Company (an id), required: the `$id` of the first Company `Company.list` returns; `reason` text, required: example `"Leaseline has stopped trading."` | `company` Company |

Returns: the last call answers with `company` 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",
  "company": {
    "$id": "https://api.sb/leaseline.app/companies/company_1",
    "$type": "Company",
    "name": "Leaseline",
    "legalName": "Leaseline Inc.",
    "status": "dissolved"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Company.dissolve",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/action_1"
  }
}
```

Next: offer “Only pause the business, and keep the company”, or “Resume Leaseline”.

Calls: `Startup.pause` → `Company.dissolve`

Ask:

```text
Wind down Leaseline.
Shut down my startup.
Close the business.
```

API:

```bash
# Look up the Startup: Startup.list
STARTUP=$(curl "https://api.sb/leaseline.app/startups?limit=1" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" | jq -r '.startups[0]["$id"] | split("/") | last')

# 1. Startup.pause
curl -X POST https://api.sb/leaseline.app/startups/$STARTUP/pause \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"No paying customers after six months."}'

# Look up the Company: Company.list
COMPANY=$(curl "https://api.sb/leaseline.app/companies?limit=1" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" | jq -r '.companies[0]["$id"] | split("/") | last')

# 2. Company.dissolve
curl -X POST https://api.sb/leaseline.app/companies/$COMPANY/dissolve \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"Leaseline has stopped trading."}'
```

SDK:

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

const [startup] = await $.Startup.list({ limit: 1 })
await $.Startup.pause({ startup: startup.$id, reason: 'No paying customers after six months.' })
const [company] = await $.Company.list({ limit: 1 })
await $.Company.dissolve({ company: company.$id, reason: 'Leaseline has stopped trading.' })
```

CLI:

```bash
STARTUP=$(npx startup-builder do Startup.list --json '{"limit":1}' | jq -r '.startups[0]["$id"] | split("/") | last')
npx startup-builder do Startup.pause --json '{"startup":"'"$STARTUP"'","reason":"No paying customers after six months."}'
COMPANY=$(npx startup-builder do Company.list --json '{"limit":1}' | jq -r '.companies[0]["$id"] | split("/") | last')
npx startup-builder do Company.dissolve --json '{"company":"'"$COMPANY"'","reason":"Leaseline has stopped trading."}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "const [startup] = await $.Startup.list({ limit: 1 })\nawait $.Startup.pause({ startup: startup.$id, reason: 'No paying customers after six months.' })\nconst [company] = await $.Company.list({ limit: 1 })\nreturn await $.Company.dissolve({ company: company.$id, reason: 'Leaseline has stopped trading.' })"
  }
}
```

## Change it
- Only pause the business, and keep the company.
- Resume Leaseline.
- Sell Leaseline instead.

## Under the hood
- Systems: [Corporate records](/systems/corporate-records), [Tax](/systems/tax)
- Nouns: [Startup](/business/nouns/startup), [Company](/business/nouns/company), [Decision](/business/nouns/decision), [Document](/business/nouns/document)
- Events: [`Startup.paused`](/business/events/Startup.paused), [`Company.dissolved`](/business/events/Company.dissolved)

[`Startup.pause`](/business/nouns/startup/pause) moves the Startup to [Dormant](/business/lifecycle/states/dormant) and deletes nothing. [`Company.dissolve`](/business/nouns/company/dissolve) applies only to a Company that holds no business. It waits one business day before it runs, so you can still stop it.