# Company

URL: /business/nouns/company · Id: `noun:company`

> A Company is a legal entity that holds Startups, signs Agreements, and owns equity, authority, and profit rights.

A Company is a legal entity that holds [Startups](/business/nouns/startup), signs [Agreements](/business/nouns/agreement), and owns equity, authority, and profit rights. A Startup that [graduates](/business/nouns/startup/graduate) moves to a Company of its own.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `legalName` | `string` | Yes | The registered name. |
| `jurisdiction` | `string` | Yes | Where it is incorporated. |
| `status` | `string` | Yes | One of `forming`, `incorporated` or `dissolved`. |

<details>
<summary>Inherited from [Party](/business/nouns/party): 1 property</summary>

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | The legal or personal name. |

</details>

## Object
```json
{
  "$id": "https://api.sb/routewise.dev/companies/company_1",
  "$type": "Company",
  "name": "RouteWise",
  "legalName": "RouteWise Inc.",
  "jurisdiction": "US-DE",
  "status": "forming"
}
```

## Relationships
- <a id="rel-controlled-by"></a>A Company **is controlled by** one [Studio](/business/nouns/studio): a [Studio](/business/nouns/studio) controls the holding Companies that are owner of record for its [Startups](/business/nouns/startup). `controlledBy`, inverse [`controls`](/business/nouns/studio#rel-controls).
- <a id="rel-holds"></a>A Company **holds** many [Startups](/business/nouns/startup): the holding Company is the [Startup](/business/nouns/startup)’s owner of record: it signs its [Agreements](/business/nouns/agreement) and owns its profit rights. `holds`, inverse [`heldBy`](/business/nouns/startup#rel-held-by).
- <a id="rel-instruments"></a>A Company **has** many [Instruments](/business/nouns/instrument): an [Instrument](/business/nouns/instrument) is a right in one Company and counts in its fully diluted cap table. `instruments`, inverse [`issuedBy`](/business/nouns/instrument#rel-issued-by).
- <a id="rel-keeps"></a>A Company **keeps** many [Suppressions](/business/nouns/suppression): a Company’s [Suppressions](/business/nouns/suppression) bind every [Startup](/business/nouns/startup) it holds: no commercial [Message](/business/nouns/message) goes to a suppressed address. `keeps`, inverse [`keptBy`](/business/nouns/suppression#rel-kept-by).
- <a id="rel-known-as"></a>A Company **is known as** many [Organizations](/business/nouns/organization): each [Startup](/business/nouns/startup)’s own view of an outside party resolves to the one legal entity behind it. `knownAs`, inverse [`resolvesTo`](/business/nouns/organization#rel-resolves-to).
- <a id="rel-pay-runs"></a>A Company **has** many [Pay Runs](/business/nouns/pay-run): a [Pay Run](/business/nouns/pay-run) is paid by one Company, the employer of record for everyone in it. `payRuns`, inverse [`paidBy`](/business/nouns/pay-run#rel-paid-by).
- <a id="rel-shares"></a>A Company **has** many [Shares](/business/nouns/share): a [Share](/business/nouns/share) is issued by one Company and sits on that Company’s cap table. `shares`, inverse [`issuedBy`](/business/nouns/share#rel-issued-by).

## Lifecycle

| State | Meaning | Moves to |
| --- | --- | --- |
| `forming` (first) | Its founders, jurisdiction and shares are chosen, and no formation filing is accepted yet. | `incorporated` by [Company.incorporate](/business/nouns/company/incorporate) |
| `incorporated` | A registered legal entity that signs Agreements, holds accounts and owns equity. | `dissolved` by [Company.dissolve](/business/nouns/company/dissolve) |
| `dissolved` | Wound up, with its final returns filed and every record kept. | None: it ends here. |

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Company.dissolve](/business/nouns/company/dissolve) | Dissolve winds up a Company that holds no business: it files final returns and the certificate, and keeps every record. | [Legal Lead](/agents/legal/legal-lead) | [`Company.dissolved`](/business/events/Company.dissolved) | One-way (money, customer): `send`, `do` |
| [Company.incorporate](/business/nouns/company/incorporate) | Incorporate forms a Company in a chosen jurisdiction, with its founders, shares and registered agent on record. | [Founder](/agents/founding/founder) | [`Company.incorporated`](/business/events/Company.incorporated) | One-way (money): `send`, `do` |
| [Company.register](/business/nouns/company/register) | Register applies for a sales tax, VAT or GST registration in one jurisdiction and records the grant as a Credential. | [Finance Lead](/agents/finance/finance-lead) | [`Company.registered`](/business/events/Company.registered) | One-way: `send`, `do` |
| [Company.submit](/business/nouns/company/submit) | Submit files one tax return for a jurisdiction and its Periods, pays the tax due, and keeps the return as a Document. | [Finance Lead](/agents/finance/finance-lead) | [`Company.submitted`](/business/events/Company.submitted) | One-way (money): `send`, `do` |
| <a id="create"></a>[Company.create](/business/nouns/company/create) | Creates a Company. Inherited from [Noun](/business/nouns/noun). | None. | `Company.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Company.get](/business/nouns/company/get) | Returns one Company by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Company.list](/business/nouns/company/list) | Returns Companies, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Company.update](/business/nouns/company/update) | Changes the given properties of a Company. Inherited from [Noun](/business/nouns/noun). | None. | `Company.updated` | Two-way: `try`, `send`, `do` |

A Company is never deleted: it ends by [Company.dissolve](/business/nouns/company/dissolve), and its records stay.

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Company.create` | Yes | Yes | Yes | No |
| `Company.get` | Yes | Yes | Yes | Yes |
| `Company.list` | Yes | Yes | Yes | Yes |
| `Company.update` | Yes | Yes | Yes | No |
| `Company.dissolve` | Yes | No | No | No |
| `Company.incorporate` | Yes | No | No | No |
| `Company.register` | Yes | No | No | No |
| `Company.submit` | Yes | No | No | No |

## Call it

**Ask**

```text
Incorporate the company “PatentPad Inc.”
```

**API**

```bash
curl -X POST https://api.sb/patentpad.com/companies/incorporate \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"legalName":"PatentPad Inc.","jurisdiction":"US-DE"}'
```

```json
{
  "api": "https://api.sb/patentpad.com",
  "company": {
    "$id": "https://api.sb/patentpad.com/companies/company_1",
    "$type": "Company",
    "name": "PatentPad",
    "legalName": "PatentPad Inc.",
    "jurisdiction": "US-DE",
    "status": "incorporated"
  },
  "action": {
    "$id": "https://api.sb/patentpad.com/actions/action_1",
    "operation": "Company.incorporate",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/patentpad.com/actions/action_1"
  }
}
```

**SDK**

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

const company = await $.Company.incorporate({ legalName: 'PatentPad Inc.', jurisdiction: 'US-DE' })
```

**CLI**

```bash
npx startup-builder do Company.incorporate --json '{"legalName":"PatentPad Inc.","jurisdiction":"US-DE"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Company.incorporate({ legalName: 'PatentPad Inc.', jurisdiction: 'US-DE' })"
  }
}
```

## Example
One Company holds a résumé-review shop, a cover-letter [Agent](/business/nouns/agent) and a job-board directory. It signs their Agreements, keeps one [Suppression](/business/nouns/suppression) list for all three, and receives their profit.