> ## 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 processing is available for an additional fee, billed per use.
</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 one requirement: **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 that 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.

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