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

> ## Agent Instructions
> Authenticate with the raw API key in the Authorization header. Never add a Bearer prefix.
> Use the sandbox base URL https://api.test.doola.com and a dk_test_ key in examples unless the user asks for production.
> Send an Idempotency-Key header on POST /v1/partner/customers and POST /v1/partner/companies. No other endpoint takes one.
> Every response is wrapped as {payload, error}. Read fields from payload and branch on error.code, never on the message.
> Drive formation progress from webhooks plus a reconciliation sweep, never a polling loop.
> Embedded SDK (@doola/js): the dk_ key stays on the server and mints customer sessions; the browser gets only a pk_ key and the session. onFormed carries only companyId and can fire more than once. Before charging, read the company with the dk_ key, require formationSubmissionStatus AWAITING_PAYMENT, check the owner's email, and price on the server. Then POST payment-confirmed, which answers 200 with an empty body, and replace the SDK element with a new doola.create() (never append a second one).
> The doola Formation MCP server at https://mcp.doola.com is for founders forming their own company with their own doola account. Partners integrate the Partner API or the Embedded SDK. The /mcp endpoint on this docs site only searches these docs.
> For a full capability summary with the rules above, read https://docs.doola.com/skill.md.

# Form 8821 signature needed

> Handle FORMATION_SIGNATURE_FORM8821_REQUIRED by collecting the Form 8821 signature doola needs to obtain the company's EIN.

A company that requires SS-4 and requests expedited EIN also needs Form 8821 at formation. This includes ITIN-only companies; an ITIN does not waive signing. doola can also request Form 8821 later if it could not obtain the EIN online. This Tax Information Authorization lets doola retrieve the EIN from the IRS directly. When an operator requests it, doola raises `FORMATION_SIGNATURE_FORM8821_REQUIRED` on the company.

You are told by the `signature_form8821_required` webhook. See [Required actions](/api/required-actions) for the payload, the status model, and how to read actions back.

<Info>
  This action is **not** resolved through the [resolution endpoint](/api/required-actions/name-options#submitting-new-names). It closes by itself when the signature completes. Posting a resolution for it returns `422 E_REQUIRED_ACTION_NOT_RESOLVABLE`.
</Info>

## When it fires

Only when a doola operator asks for it; there is no automatic trigger. By then the formation itself is usually complete, and doola's attempt to obtain the EIN on the founder's behalf has failed in a way a Form 8821 fixes. It can apply to **any** founder, US or non-US, and to a company that already signed a Form 8821 at formation: in that case the earlier signature is voided and the requirement returns to `PENDING`.

## What changes on the company

While the action is open, the company's `signatureRequirements` carries a `FORM8821` entry with `status: "PENDING"`, including for a company whose array is otherwise empty. Read the company and you see the ask; you do not need the webhook to have arrived.

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

Once signed, the entry flips to `COMPLETED` and stays on the company.

## Resolving it

Exactly as a Form 8821 is signed at formation: create a signature session with `documentType: "FORM8821"` and present the link to your founder, as described in [SS-4 and Form 8821 signing](/api/non-us-formation#request-a-signing-session). The session endpoint accepts the request while the action is open, whatever the founder's residency. If neither the formation workflow nor an open action requires Form 8821, requesting a session returns `422 E_FORMATION_NOT_ELIGIBLE`.

That signature is the resolution: `signature_form8821_completed` and `document_form8821_uploaded` fire as usual, and the action lands on `resolved`.

<Note>
  The [reminder cadence](/api/non-us-formation#reminders-are-yours-to-send) starts when you create the first signing session, so `signature_form8821_reminder_due` arrives on day 1, 3 and 7 after that while the document is unsigned. It does not start from this webhook: a founder you never present the link to is never reminded, so treat the action itself as the thing to track.
</Note>

## When doola closes it without a signature

doola may obtain the EIN another way while the action is open. When that happens an operator closes the action by hand and it lands on `resolved` with no signature having been given. Treat `resolved` as "nothing more is needed from you", not as "the founder signed"; read `signatureRequirements` if you need to know which.

## What to show your user

The `reason` says it in one sentence: doola could not obtain the company's EIN online, and a signed Form 8821 authorizes doola to retrieve it from the IRS directly. The form does not change the company and the founder is not redoing anything. It is an authorization, and presenting it that way answers the question of why a formed company still has paperwork.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.