> ## 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.

# Expedited EIN

> Request prioritized EIN processing at company creation for non-US founders.

<Info>
  By default, the EIN application joins the standard IRS processing queue. Expedited EIN processing is available for an additional fee. If you would like to add expedited processing for your end users, contact our Partnerships team for pricing details. In order to use this functionality, expedited processing must be included in your partner agreement.
</Info>

You request expedited processing in the same create-company call: one extra field, no separate endpoint. The founder also signs one additional document — [Form 8821](#the-form-8821-signature) — alongside the SS-4. Everything else about the [formation flow](/api/formation) is unchanged.

## Availability

Expedited EIN has two requirements:

1. **Expedited EIN must be part of your partner agreement.** The `requestedServices` field appears in the API reference for every partner, but doola performs the expedited processing only for partners whose agreement includes Expedited EIN. When it does, doola enables the feature for your account.
2. **The founder must be non-US.** Expedited processing is only available when no `member`, `executiveMember`, or `responsibleParty` supplies a US tax ID (SSN or ITIN). This is the same determination that produces the SS-4 requirement for [non-US founders](/api/non-us-formation).

A request that fails either check is rejected in full: **no company is created**, and the rejection is a `4xx`, so your `Idempotency-Key` is released. Fix the request and retry with the same key.

<Note>
  Sending `variant: "Expedite"` without Expedited EIN in your partner agreement is rejected with `403 E_FEATURE_NOT_ENABLED`, not silently downgraded to standard processing.
</Note>

## Requesting the expedited EIN

Add `requestedServices` to the [create-company](/api/api-reference/companies/create-a-company) request body:

```json theme={null}
{
  "doolaCustomerId": "31pLCw7sN2aQ9fJkRtY3vXbHmLe",
  "state": "WY",
  "...": "...",
  "requestedServices": [
    { "service": "EinCreation", "variant": "Expedite" }
  ]
}
```

| Field     | Values                 | Meaning                                                                                                    |
| --------- | ---------------------- | ---------------------------------------------------------------------------------------------------------- |
| `service` | `EinCreation`          | The service to configure. Only the EIN service is configurable today.                                      |
| `variant` | `Standard`, `Expedite` | `Expedite` requests prioritized EIN processing. `Standard` behaves exactly the same as omitting the entry. |

Omitting `requestedServices` keeps standard processing, so existing integrations are unaffected.

## Reading it back

The company's `EinCreation` service carries the variant, on both the create response and [Get a company](/api/api-reference/companies/get-a-company):

```json theme={null}
{
  "services": [
    { "name": "Formation", "status": "InProgress", "variant": "NONE" },
    { "name": "EinCreation", "status": "NotStarted", "variant": "Expedite" },
    { "name": "RegisteredAgent", "status": "NotStarted", "variant": "NONE" }
  ]
}
```

See [Company services](/api/company-services) for the full service lifecycle.

## The Form 8821 signature

Expedited processing relies on one extra authorization from the founder: **Form 8821** (Tax Information Authorization), which lets doola retrieve the EIN letter directly from the IRS. An expedited company therefore carries a second signature requirement alongside the SS-4, on both the create response and [Get a company](/api/api-reference/companies/get-a-company):

```json theme={null}
{
  "signatureRequirements": [
    { "documentType": "SS4", "status": "PENDING" },
    { "documentType": "FORM8821", "status": "PENDING" }
  ]
}
```

Collect it exactly like the SS-4: request a signing session with `documentType: "FORM8821"` and present the whitelabeled link to the founder. The [signing flow](/api/non-us-formation#the-signing-flow) is identical, and the two documents are independent — collect them in parallel or in any order.

Three webhook events mirror the SS-4 set: `signature_form8821_completed` fires the instant the founder signs, `document_form8821_uploaded` once the signed PDF is stored and downloadable, and `signature_form8821_reminder_due` (day 1, 3, 7) while the document remains unsigned. See [Webhooks](/api/webhooks#events).

<Note>
  doola cannot retrieve the EIN letter from the IRS until the Form 8821 is signed, so an unsigned Form 8821 holds up the expedited path just like an unsigned SS-4 holds up the EIN application itself.
</Note>

## What stays the same

Expedited EIN changes how fast the EIN application is processed, not the flow around it:

* **The SS-4 signature is still required.** Every expedited company has a non-US founder, so the founder signs an SS-4 before the IRS issues the EIN, exactly as described in [Non-US founders](/api/non-us-formation).
* **Formation itself is not expedited.** State filing and registered agent proceed on their usual timelines; the EIN application is prioritized once it can proceed.
* **The same signals report progress.** Track the `EinCreation` service status, the `ein` field on the company, and the webhooks below.

## Knowing when the EIN is issued

Two webhooks signal EIN issuance, at two distinct moments. They apply to every formation, expedited or not:

| Event                         | Fires when                                                                                       |
| ----------------------------- | ------------------------------------------------------------------------------------------------ |
| `company_ein_issued`          | doola records the company's EIN. Fetch the company to read the `ein` field.                      |
| `document_einletter_uploaded` | The IRS EIN confirmation letter is stored and ready to [download](/api/domain-objects#document). |

See [Webhooks](/api/webhooks) for payloads and delivery details.

## Errors

Branch on `error.code`, never on the message.

| HTTP | Code                           | Meaning                                                                                                                                                             |
| ---- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 403  | `E_FEATURE_NOT_ENABLED`        | Expedited EIN is not part of your partner agreement. See [Availability](#availability).                                                                             |
| 400  | `E_EXPEDITED_EIN_NOT_ELIGIBLE` | Someone on the company supplies a US tax ID, so it does not qualify for expedited processing. Retry without `requestedServices` for standard processing.            |
| 400  | `E_VALIDATION_FAILED`          | The `requestedServices` shape is invalid (an unsupported `service` or `variant`). The field detail carries `E_REQUESTED_SERVICES_INVALID` with the concrete reason. |

The shape error looks like this:

```json theme={null}
{
  "payload": null,
  "error": {
    "code": "E_VALIDATION_FAILED",
    "message": "one or more fields are invalid",
    "requestId": "3D2mMaLHsT60sI5qyeHuBlS9TEM",
    "fields": {
      "requestedServices": {
        "code": "E_REQUESTED_SERVICES_INVALID",
        "message": "variant must be one of [Standard, Expedite]; got 'Fast'"
      }
    }
  }
}
```

See [Errors](/api/errors) for the response envelope and the global codes any endpoint can return.
