---
title: "Create external bank account"
method: POST
path: "/v1/external_bank_accounts"
tags: ["External Bank Account"]
---

# Create external bank account

`POST /v1/external_bank_accounts`

Creates an external bank account within a program or Lithic account.

## Request body

- union
  - BankVerifiedCreateBankAccountApiRequest
    - `verification_method` 'MANUAL' | 'MICRO_DEPOSIT' | 'PRENOTE' | 'EXTERNALLY_VERIFIED' | 'UNVERIFIED', required
    - `owner_type` 'INDIVIDUAL' | 'BUSINESS', required
    - `owner` string, required — Legal Name of the business or individual who owns the external account. This will appear in statements
    - `account_token` string, uuid — Indicates which Lithic account the external account is associated with. For external accounts that are associated with the program, account_token field returned will be null
    - `company_id` string — Optional field that helps identify bank accounts in receipts
    - `doing_business_as` string — Doing Business As
    - `dob` string, date — Date of Birth of the Individual that owns the external bank account
    - `user_defined_id` string — User Defined ID
    - `type` 'CHECKING' | 'SAVINGS', required
    - `routing_number` string, required — Routing Number
    - `account_number` string, required — Account Number
    - `name` string — The nickname for this External Bank Account
    - `country` string, required — The country that the bank account is located in using ISO 3166-1. We will only accept USA bank accounts e.g., USA
    - `currency` string, required — currency of the external account 3-character alphabetic ISO 4217 code
    - `verification_enforcement` boolean
    - `address` ExternalBankAccountAddress
      - `address1` string, required
      - `address2` string, nullable
      - `city` string, required
      - `state` string, required
      - `postal_code` string, required
      - `country` string, required
    - `financial_account_token` string, uuid, required — The financial account token of the operating account to fund the micro deposits
  - ExternallyVerifiedCreateBankAccountApiRequest
    - `verification_method` 'EXTERNALLY_VERIFIED', required
    - `owner_type` 'INDIVIDUAL' | 'BUSINESS', required
    - `owner` string, required — Legal Name of the business or individual who owns the external account. This will appear in statements
    - `account_token` string, uuid — Indicates which Lithic account the external account is associated with. For external accounts that are associated with the program, account_token field returned will be null
    - `company_id` string — Optional field that helps identify bank accounts in receipts
    - `doing_business_as` string — Doing Business As
    - `dob` string, date — Date of Birth of the Individual that owns the external bank account
    - `user_defined_id` string — User Defined ID
    - `type` 'CHECKING' | 'SAVINGS', required
    - `routing_number` string, required — Routing Number
    - `account_number` string, required — Account Number
    - `name` string — The nickname for this External Bank Account
    - `country` string, required — The country that the bank account is located in using ISO 3166-1. We will only accept USA bank accounts e.g., USA
    - `currency` string, required — currency of the external account 3-character alphabetic ISO 4217 code
    - `address` ExternalBankAccountAddress
      - `address1` string, required
      - `address2` string, nullable
      - `city` string, required
      - `state` string, required
      - `postal_code` string, required
      - `country` string, required
  - UnverifiedCreateBankAccountApiRequest
    - `verification_method` 'UNVERIFIED', required
    - `owner_type` 'INDIVIDUAL' | 'BUSINESS', required
    - `owner` string, required — Legal Name of the business or individual who owns the external account. This will appear in statements
    - `account_token` string, uuid — Indicates which Lithic account the external account is associated with. For external accounts that are associated with the program, account_token field returned will be null
    - `company_id` string — Optional field that helps identify bank accounts in receipts
    - `doing_business_as` string — Doing Business As
    - `dob` string, date — Date of Birth of the Individual that owns the external bank account
    - `user_defined_id` string — User Defined ID
    - `type` 'CHECKING' | 'SAVINGS', required
    - `routing_number` string, required — Routing Number
    - `account_number` string, required — Account Number
    - `name` string — The nickname for this External Bank Account
    - `country` string, required — The country that the bank account is located in using ISO 3166-1. We will only accept USA bank accounts e.g., USA
    - `currency` string, required — currency of the external account 3-character alphabetic ISO 4217 code
    - `address` ExternalBankAccountAddress
      - `address1` string, required
      - `address2` string, nullable
      - `city` string, required
      - `state` string, required
      - `postal_code` string, required
      - `country` string, required

## Response `201`

Created

- BankAccountApiResponseUnlinked
  - `token` string, uuid, required — A globally unique identifier for this record of an external bank account association. If a program links an external bank account to more than one end-user or to both the program and the end-user, then Lithic will return each record of the association
  - `owner` string, required — Legal Name of the business or individual who owns the external account. This will appear in statements
  - `routing_number` string, required — Routing Number
  - `last_four` string, required — The last 4 digits of the bank account. Derived by Lithic from the account number passed
  - `name` string, nullable — The nickname for this External Bank Account
  - `currency` string, required — currency of the external account 3-character alphabetic ISO 4217 code
  - `country` string, required — The country that the bank account is located in using ISO 3166-1. We will only accept USA bank accounts e.g., USA
  - `account_token` string, uuid, nullable — Indicates which Lithic account the external account is associated with. For external accounts that are associated with the program, account_token field returned will be null
  - `created` string, date-time, required — An ISO 8601 string representing when this funding source was added to the Lithic account.
  - `company_id` string, nullable — Optional field that helps identify bank accounts in receipts
  - `dob` string, date, nullable — Date of Birth of the Individual that owns the external bank account
  - `doing_business_as` string, nullable — Doing Business As
  - `user_defined_id` string, nullable — User Defined ID
  - `verification_failed_reason` string, nullable — Optional free text description of the reason for the failed verification. For ACH micro-deposits returned, this field will display the reason return code sent by the ACH network
  - `verification_attempts` integer, required — The number of attempts at verification
  - `financial_account_token` string, uuid, nullable — The financial account token of the operating account to fund the micro deposits
  - `type` 'CHECKING' | 'SAVINGS', required
  - `verification_method` 'MANUAL' | 'MICRO_DEPOSIT' | 'PLAID' | 'PRENOTE', required — Verification Method
  - `owner_type` 'BUSINESS' | 'INDIVIDUAL', required — Owner Type
  - `state` 'ENABLED' | 'CLOSED' | 'PAUSED', required
  - `verification_state` 'PENDING' | 'ENABLED' | 'FAILED_VERIFICATION' | 'INSUFFICIENT_FUNDS', required
  - `address` ExternalBankAccountAddress
    - `address1` string, required
    - `address2` string, nullable
    - `city` string, required
    - `state` string, required
    - `postal_code` string, required
    - `country` string, required

## Other responses

- `400` — A parameter in the query given in the request does not match the valid queries for the endpoint.
- `401` — | | | |---|---| | User has not been authenticated | Invalid or missing API key | | API key is not active | The API key used is no longer active | | Could not find API key | The API key provided is not associated with any user | | Please provide API key in Authorization header | The Authorization header is not in the request | | Please provide API key in the form Authorization: [api-key] | The Authorization header is not formatted properly | | Insufficient privileges. Issuing API key required | Write access requires an Issuing API key. Reach out at [lithic.com/contact](https://lithic.com/contact) | | Insufficient privileges to create virtual cards. | Creating virtual cards requires an additional privilege | Reach out at [lithic.com/contact](https://lithic.com/contact) |
- `409` — Conflict
- `429` — Client has exceeded the number of allowed requests in a given time period. | | | |---|---| | Rate limited, too many requests per second | User has exceeded their per second rate limit | | Rate limited, reached daily limit | User has exceeded their daily rate limit | | Rate limited, too many keys tried | One IP has queried too many different API keys |

---

[API](https://skmtc.net/lithic-com/apis/lithic-developer-api.md) · [All operations](https://skmtc.net/lithic-com/apis/lithic-developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lithic-com/lithic-developer-api/revisions/53ab5d4e2adb/schema)
