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

# Create Account

> Create an account for your organization.
 Note that accounts can only be created if the associated identity has been cleared to transact (i.e. has passed both compliance and jurisdiction checks).



## OpenAPI

````yaml /v2/openapi.yaml post /v2/accounts
openapi: 3.1.0
info:
  title: Bastion APIs
  version: '2.0'
servers:
  - url: https://api.prod.bastion.com
    description: Production environment
  - url: https://api.sandbox.bastion.io
    description: Sandbox environment
security:
  - auth: []
tags:
  - name: Bastion APIs
paths:
  /v2/accounts:
    post:
      tags:
        - Accounts
      summary: Create Account
      description: |-
        Create an account for your organization.
         Note that accounts can only be created if the associated identity has been cleared to transact (i.e. has passed both compliance and jurisdiction checks).
      operationId: bastion.api.v2.API.CreateAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bastion.api.v2.CreateAccountRequest'
        required: true
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bastion.api.v2.Account'
        '400':
          description: Bad request
        '409':
          description: Resource Conflicts
        '422':
          description: Unprocessable Entity - identity state does not permit this operation
        '500':
          description: Internal Server Error
components:
  schemas:
    bastion.api.v2.CreateAccountRequest:
      type: object
      properties:
        request_id:
          type: string
          title: request_id
          pattern: >-
            [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}
          format: uuid
          description: Request identifier in a UUID format. Serves as an idempotency key.
        identity_id:
          type: string
          title: identity_id
          description: >-
            Unique identifier of the identity to which this account should
            belong.
        type:
          $ref: '#/components/schemas/bastion.common.AccountType'
          type: string
          title: type
          description: |-
            (OPTIONAL) Type of account to create.

             Valid values are OMNIBUS and SEGREGATED.
             LEDGER and ONCHAIN are legacy values.
          default: SEGREGATED
      title: CreateAccountRequest
      required:
        - request_id
        - identity_id
      additionalProperties: false
    bastion.api.v2.Account:
      type: object
      properties:
        request_id:
          type: string
          title: request_id
          description: Request identifier in a UUID format. Serves as an idempotency key
        identity_type:
          $ref: '#/components/schemas/bastion.common.IdentityType'
          title: identity_type
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/bastion.api.WalletAddress'
          title: addresses
          readOnly: true
        identity_id:
          type: string
          title: identity_id
          description: Unique identifier of the identity associated with the account.
          readOnly: true
        id:
          type: string
          title: id
          description: Unique identifier of the account.
          readOnly: true
        account_type:
          $ref: '#/components/schemas/bastion.common.AccountType'
          title: account_type
          description: 'Deprecated: use "type" instead'
          readOnly: true
          deprecated: true
        frozen:
          type: boolean
          title: frozen
          description: |-
            True if the account is frozen.
             Accounts that are frozen are blocked from interacting with the Bastion platform without manual intervention.
             Contact compliance@bastion.com for more details if an account is frozen.
          readOnly: true
        identity_status:
          $ref: '#/components/schemas/bastion.api.IdentityStatus'
          title: identity_status
          description: The identity's top-level status.
          readOnly: true
        identity_sub_status:
          $ref: '#/components/schemas/bastion.api.IdentitySubStatus'
          title: identity_sub_status
          description: >-
            The identity's sub-status. Only meaningful when identity_status is
            PENDING_ONBOARDING.
          readOnly: true
        account_status:
          $ref: '#/components/schemas/bastion.api.account.AccountStatus'
          title: account_status
          description: 'Deprecated: use "status" instead'
          readOnly: true
          deprecated: true
        status:
          $ref: '#/components/schemas/bastion.api.account.AccountStatus'
          title: status
          description: The account's status, derived from its parent identity state.
          readOnly: true
        type:
          $ref: '#/components/schemas/bastion.common.AccountType'
          title: type
          description: |-
            The account's type.

             Valid values are OMNIBUS and SEGREGATED.
             LEDGER and ONCHAIN are legacy values.
          readOnly: true
      title: Account
      required:
        - request_id
      additionalProperties: false
    bastion.common.AccountType:
      type: string
      title: AccountType
      enum:
        - ACCOUNT_TYPE_UNSPECIFIED
        - LEDGER
        - ONCHAIN
        - OMNIBUS
        - SEGREGATED
      example: LEDGER
    bastion.common.IdentityType:
      type: string
      title: IdentityType
      enum:
        - IDENTITY_TYPE_UNSPECIFIED
        - INDIVIDUAL
        - BUSINESS
      description: >-
        Identity type


        <Info>

        Please note that BUSINESS accounts are only supported in the US at this
        time.

        </Info>
      example: INDIVIDUAL
    bastion.api.WalletAddress:
      type: object
      properties:
        chains:
          type: array
          items:
            $ref: '#/components/schemas/bastion.common.Chain'
          title: chains
        address:
          type: string
          title: address
      title: WalletAddress
      additionalProperties: false
    bastion.api.IdentityStatus:
      type: string
      title: IdentityStatus
      enum:
        - IDENTITY_STATUS_UNSPECIFIED
        - PENDING_ONBOARDING
        - ACTIVE
        - SUSPENDED
        - REJECTED
        - TERMINATED
      description: Top-level identity lifecycle status.
      example: PENDING_ONBOARDING
    bastion.api.IdentitySubStatus:
      type: string
      title: IdentitySubStatus
      enum:
        - IDENTITY_SUB_STATUS_UNSPECIFIED
        - CREATED
        - COMPLIANCE_CHECKS_IN_PROGRESS
        - IDV_REQUIRED
        - IDV_REQUESTED
        - IDV_IN_PROGRESS
        - IDV_EXPIRED
        - RFI_REQUIRED
      description: >-
        Sub-status within PENDING_ONBOARDING tracking onboarding workflow
        progress.
         Only meaningful when IdentityStatus is PENDING_ONBOARDING.
      example: CREATED
    bastion.api.account.AccountStatus:
      type: string
      title: AccountStatus
      enum:
        - ACCOUNT_STATUS_UNSPECIFIED
        - ACTIVE
        - FROZEN
        - CLOSED
      description: >-
        AccountStatus represents the state of an account, derived from its
        parent identity state.
      example: ACTIVE
    bastion.common.Chain:
      type: string
      title: Chain
      enum:
        - CHAIN_UNSPECIFIED
        - ETHEREUM_MAINNET
        - POLYGON_MAINNET
        - ETHEREUM_TESTNET
        - OPTIMISM_SEPOLIA
        - BASE_MAINNET
        - BASE_SEPOLIA
        - OPTIMISM_MAINNET
        - POLYGON_AMOY
        - SOLANA_MAINNET
        - SOLANA_DEVNET
      description: Chain identifier
      example: ETHEREUM_MAINNET
  securitySchemes:
    auth:
      type: http
      description: Bearer authentication with an API token
      scheme: bearer

````

## Related topics

- [Create an account in the Bastion Dashboard](/guides/dashboard/creating-accounts.md)
- [Create an identity in the Bastion Dashboard](/guides/dashboard/creating-identities.md)
- [Accounts API overview](/v2/api-reference/accounts/overview.md)
- [Onboard an individual customer](/guides/quickstarts/onboard-an-individual-customer.md)
- [Onboard a business customer](/guides/quickstarts/onboard-a-business-customer.md)
