> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doola.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Company services

> The services attached to every company, how they are structured, and how they progress through their lifecycle.

When a company is created, doola attaches three services to it automatically: **Formation**, **EinCreation**, and **RegisteredAgent**. Each service has its own status and subStatus that move independently as doola and third-party providers complete their work.

## Services

| Service           | What it does                                                                         |
| ----------------- | ------------------------------------------------------------------------------------ |
| `Formation`       | Files the company with the state authority (e.g., Delaware Division of Corporations) |
| `EinCreation`     | Obtains the Employer Identification Number from the IRS                              |
| `RegisteredAgent` | Provides the required registered agent address in the formation state                |

## Service fields

Each service object on a company has the following fields:

| Field       | Type     | Description                                                                                   |
| ----------- | -------- | --------------------------------------------------------------------------------------------- |
| `name`      | `string` | Service identifier — `Formation`, `EinCreation`, or `RegisteredAgent`                         |
| `variant`   | `string` | Processing tier for the service (see [Variants](#variants))                                   |
| `status`    | `string` | Lifecycle status (see [Statuses](#statuses))                                                  |
| `subStatus` | `string` | More granular signal about what the service is waiting on (see [Sub-statuses](#sub-statuses)) |

## Variants

| Variant    | Meaning                                                 |
| ---------- | ------------------------------------------------------- |
| `NONE`     | Default — no special processing tier                    |
| `Standard` | Standard processing speed — applicable to `EinCreation` |
| `Expedite` | Expedited processing — applicable to `EinCreation`      |

To request the `Expedite` variant for the EIN service at company creation, see [Expedited EIN](/api/expedited-ein).

## Statuses

| Status       | Meaning                                                                       |
| ------------ | ----------------------------------------------------------------------------- |
| `NotStarted` | Service has not begun — waiting on a dependency to complete first             |
| `InProgress` | Service is actively being worked on by doola or a third party                 |
| `Completed`  | Service finished successfully                                                 |
| `Active`     | Service is live and active (used for ongoing services like `RegisteredAgent`) |
| `Canceled`   | Service was canceled                                                          |

## Sub-statuses

Sub-statuses give a more precise signal about what a service is waiting on. They are informational — your integration does not need to act on them, but they are useful for debugging and support.

| Service           | subStatus                           | Meaning                                                                      |
| ----------------- | ----------------------------------- | ---------------------------------------------------------------------------- |
| `Formation`       | `WaitingForRaToSucceed`             | Formation filing is held until the registered agent record is confirmed      |
| `EinCreation`     | `WaitingForFilingServiceToComplete` | EIN application cannot proceed until the formation filing is complete        |
| `RegisteredAgent` | `WaitingForFormation`               | Registered agent activation is blocked until the formation service completes |

## Initial state

When a company is first created the services are seeded with the following values:

| Service           | status       | variant | subStatus                           |
| ----------------- | ------------ | ------- | ----------------------------------- |
| `Formation`       | `InProgress` | `NONE`  | `WaitingForRaToSucceed`             |
| `EinCreation`     | `NotStarted` | `NONE`  | `WaitingForFilingServiceToComplete` |
| `RegisteredAgent` | `NotStarted` | `NONE`  | `WaitingForFormation`               |

If the company was created with the [expedited EIN](/api/expedited-ein), `EinCreation` is seeded with `variant: "Expedite"` instead of `NONE`.

## Reading service state

Services are returned as a list on the get-company response under the `services` field. Poll the endpoint or use [webhooks](/api/webhooks) to track progress — the `company_formation_completed` event fires when Formation reaches `Completed`, and `company_ein_issued` fires when the EIN is recorded on the company.
