Skip to content

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.

For developers

Winding down takes two steps. Pausing the Startup stops the work and keeps everything; dissolving its Company closes the legal entity for good.

For developers
Pause the businessDissolve the company
SayWind down LeaselineDissolve the company
StopsEvery scheduled Workflow; Offers end on their own termsThe registered agent and every recurring filing
StaysThe site, the domain and every recordEvery record, kept forever
You doNothing moreSign the certificate of dissolution as an officer
UndoSay Resume LeaselineNone: it is one-way

Needs Startup

What you get

  • 1business moved to Dormant, with nothing deletedStartup
  • 1stop to every scheduled WorkflowWorkflow
  • 1site, domain and records kept, so the business can resumeSite
  • 1company wound up, with its final returns filedCompany
  • 1certificate of dissolution for you to sign as an officerDocument

Your agent does

Startup.pause → Company.dissolve
You, to your agent

Wind down Leaseline.

Shut down my startup.

Close the business.

# 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."}'
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.' })
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."}'
{
  "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, Tax
Nouns
Startup, Company, Decision, Document
Events
Startup.paused, Company.dissolved

Startup.pause moves the Startup to Dormant and deletes nothing. 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.