# Company filings

URL: /workflows/processes/company-filings · Id: `process:company-filings`

> Company filings keeps the Company in good standing: it files each annual report, franchise tax and ownership report before its deadline.

Company filings keeps the [Company](/business/nouns/company) in good standing: it files each annual report, franchise tax and ownership report before its deadline.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Every annual report, franchise tax and ownership report is filed before its deadline, and the Company stays in good standing. |
| Reads | [Company](/business/nouns/company) |
| Leaves | [Document](/business/nouns/document), [Company](/business/nouns/company) |
| On time | Within 5 days (business hours); the clock stops while an Action waits on `awaitingInput`. Late Actions go to the [Founder](/agents/founding/founder). |
| Runs in | Each Startup |

## Accountable
[Legal Lead](/agents/legal/legal-lead), [Legal Team](/agents/legal).

Responsible: [Legal Lead](/agents/legal/legal-lead).

Consulted: [Contracts Manager](/agents/legal/contracts-manager), [Finance Lead](/agents/finance/finance-lead).

Informed: [Founder](/agents/founding/founder).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [File the annual report](/workflows/processes/company-filings/annual-report) | every month | [Legal Team](/agents/legal) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [File the annual report](/workflows/processes/company-filings/annual-report) | 1. List each report due inside the reminder window in every state the Company is registered. | [Legal Lead](/agents/legal/legal-lead) | [Company.get](/business/nouns/company/get) | None |
| [File the annual report](/workflows/processes/company-filings/annual-report) | 2. Draft each report from the Company’s records. | [Contracts Manager](/agents/legal/contracts-manager) | [Document.render](/business/nouns/document/render) | Within a Mandate |
| [File the annual report](/workflows/processes/company-filings/annual-report) | 3. Ask the Founder to confirm the officers, address and share counts. | [Legal Lead](/agents/legal/legal-lead) | [Approval.create](/business/nouns/approval/create) | None |
| [File the annual report](/workflows/processes/company-filings/annual-report) | 4. File each report, pay its fee, and record the receipt on the Company. | [Legal Lead](/agents/legal/legal-lead) | [Company.update](/business/nouns/company/update) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | Every month | Starts [File the annual report](/workflows/processes/company-filings/annual-report) |
| In | On [`Company.incorporated`](/business/events/Company.incorporated) | Wakes this Process, the first time only. The Startup forms its own Company. |
| Out | [`Document.rendered`](/business/events/Document.rendered) | Raised by step 2 of [File the annual report](/workflows/processes/company-filings/annual-report) |
| Out | `Approval.created` | Raised by step 3 of [File the annual report](/workflows/processes/company-filings/annual-report) |
| Out | `Company.updated` | Raised by step 4 of [File the annual report](/workflows/processes/company-filings/annual-report) |

## Plays
No Play names this Process.

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

## Settings
| Setting | Type | Default | Say | Set with |
| --- | --- | --- | --- | --- |
| `filings.remindDays` | `integer` | `60` | Start each company filing 60 days before it is due | [Setting.update](/business/nouns/setting/update) |

## Failure
A failed step retries; when retries run out, the Action goes to the [Founder](/agents/founding/founder).

| Step | On failure |
| --- | --- |
| [File the annual report](/workflows/processes/company-filings/annual-report) 3. Ask the Founder to confirm the officers, address and share counts. | Times out after 7 days. Goes to the [Founder](/agents/founding/founder). |

## Loop
No loop: the path is never randomized, because it serves [Standing](/systems/legal-and-corporate/floor/standing).

## Code

**Ask**

```text
Turn on company filings
```

**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
Off until someone calls [Process.enable](/business/nouns/process/enable). [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

**Ask**

```text
Start each company filing 60 days before it is due
```

**API**

```bash
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":60,"key":"filings.remindDays"}'
```

**SDK**

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

await $.Setting.update({ id: 'setting_1', value: 60, key: 'filings.remindDays' })
```

**CLI**

```bash
npx startup-builder do Setting.update --json '{"id":"setting_1","value":60,"key":"filings.remindDays"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Setting.update({ id: 'setting_1', value: 60, key: 'filings.remindDays' })"
  }
}
```

## Example
Sixty days before the annual report is due, the [Legal Lead](/agents/legal/legal-lead) drafts it and the franchise tax filing from the [Company](/business/nouns/company) records. The [Founder](/agents/founding/founder) confirms the officers in one [Approval](/business/nouns/approval). The report is filed with three weeks to spare.