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

# Account Opening

Onboarding opens your account. It's done in the app, once per account. The API can follow its progress but can't fill it in.

## Choose an account type

* **Individual:** an account in your own name.
* **Business:** an account for a company. You'll also list its owners.

## What we ask for

### Individual

| Step | What you give us |
| - | - |
| Personal details | Name, date of birth, phone number and citizenship. US residents also give their SSN; residents of other countries give their tax ID. |
| Upload documents | A photo of your government ID (front, and back for a driver's license or state ID), and, if you live outside the US, a proof of address such as a utility bill or bank statement. They go to Erebor, our bank. |
| Identity verification | A short selfie check in your browser, matched against your ID. Erebor, our bank, reviews it with your documents. |
| Address | Where you live. |
| Additional information | Employment, income, occupation, where your money comes from and what the account is for. |

### Business

| Step | What you give us |
| - | - |
| Upload documents | The company's formation documents. |
| Business details | Legal name, entity type, industry, EIN and year of incorporation. |
| Incorporation address | Where the company is registered. |
| Operating address | Where it does business. |
| Additional information | Expected monthly volume. Where its money comes from and what the account is for are optional. |
| Beneficial owners | Everyone who owns a significant share, and the person who controls the company. |

## After you submit

Our bank, Erebor, verifies your identity (KYC) and opens your deposit account on approval. Most decisions are quick; some go to a person for review and take longer. You don't need to keep the app open: we email you when the account is ready, or if it can't be opened.

Once Erebor clears your identity and opens the deposit account, we set up your wallet and holdings ledger. Then the account is `active`.

## Onboarding status

`GET /api/onboarding/status` · scope `read`

Where the account is in onboarding. Money can move once `status` is `active`. `404` if onboarding hasn't started.

| Field | Type | Description |
| - | - | - |
| `status` | string | `created`, `kyc_submitted`, `kyc_in_review`, `kyc_approved`, `kyc_rejected`, `bank_account_provisioned`, `wallet_provisioned`, `ledger_registered`, `active` or `provisioning_failed`. |
| `application_status` | string \| null | Erebor's review of the application: `submitted`, `under_review`, `approved` or `rejected`; `null` before submission. |
| `failure_reason` | string \| null | Why onboarding failed, when it did. |
| `email` | string \| null | The account's email. |
| `wallet_address` | string \| null | The account's wallet, once provisioned. |
| `updated_at` | integer | Last change, Unix milliseconds. |

```bash REST theme={null}
curl "$CAPITALAI_API_URL/api/onboarding/status" \
  -H "Authorization: Bearer $CAPITALAI_API_KEY"
```

```ts TypeScript theme={null}
const res = await fetch(`${process.env.CAPITALAI_API_URL}/api/onboarding/status`, {
  headers: { Authorization: `Bearer ${process.env.CAPITALAI_API_KEY}` },
});
console.log(await res.json());
```

```json theme={null}
{
  "status": "kyc_in_review",
  "application_status": "under_review",
  "failure_reason": null,
  "email": "applicant@example.com",
  "wallet_address": null,
  "updated_at": 1791820800000
}
```

`status` moves forward through these stages. You may not see every one; some pass in seconds.

| `status` | Meaning |
| - | - |
| `created` | Onboarding started, not yet submitted. |
| `kyc_submitted` | Submitted to Erebor. |
| `kyc_in_review` | Erebor is verifying your identity. |
| `kyc_approved` | Erebor cleared your identity. We're linking your deposit account. |
| `bank_account_provisioned` | Deposit account open. We're setting up your wallet. |
| `wallet_provisioned` | Wallet set up. |
| `ledger_registered` | Holdings ledger set up. |
| `active` | Done. Money can move. |
| `kyc_rejected` | Erebor declined your identity verification. |
| `provisioning_failed` | KYC passed but we couldn't finish opening the account. `failure_reason` says why. Contact support. |

To wait for the account to open, poll every minute or so until `status` is `active`, `kyc_rejected` or `provisioning_failed`.

## Next

Once `status` is `active`: [fund your account](https://docs.capital.ai/funding/overview.md).


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