---
title: "Create a company bank account"
method: POST
path: "/v1/companies/{company_id}/bank_accounts"
tags: ["Bank Accounts"]
---

# Create a company bank account

`POST /v1/companies/{company_id}/bank_accounts`

This endpoint creates a new company bank account.

Upon being created, two verification deposits are automatically sent to the bank account, and the bank account's verification_status is 'awaiting_deposits'.

When the deposits are successfully transferred, the verification_status changes to 'ready_for_verification', at which point the verify endpoint can be used to verify the bank account.
After successful verification, the bank account's verification_status is 'verified'.


>🚧 Warning
>
> If a default bank account exists, it will be disabled and the new bank account will replace it as the company's default funding method.

scope: `company_bank_accounts:write`

## Path parameters

- `company_id` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'

## Request body

- CompanyBankAccountRequest
  - `routing_number` string, required — The bank routing number
  - `account_number` string, required — The bank account number
  - `account_type` 'Checking' | 'Savings', required — The bank account type

## Response `200`

Bank account unchanged

- CompanyBankAccount — The company bank account
  - `uuid` string, required — UUID of the bank account
  - `company_uuid` string — UUID of the company
  - `account_type` 'Checking' | 'Savings' — Bank account type
  - `routing_number` string — The bank account's routing number
  - `hidden_account_number` string — Masked bank account number
  - `verification_status` 'awaiting_deposits' | 'ready_for_verification' | 'verified' — The verification status of the bank account. 'awaiting_deposits' means the bank account is just created and money is being transferred. 'ready_for_verification' means the micro-deposits are completed and the verification process can begin by using the verify endpoint. 'verified' means the bank account is verified.
  - `verification_type` 'bank_deposits' | 'plaid' | 'plaid_external' — The verification type of the bank account. 'bank_deposits' means the bank account is connected by entering routing and accounting numbers and verifying through micro-deposits. 'plaid' means the bank account is connected through Plaid.
  - `plaid_status` 'connected' | 'disconnected', nullable — The Plaid connection status of the bank account. Only applies when verification type is Plaid.
  - `last_cached_balance` string, nullable — The last fetch balance for the bank account. Please be aware that this amount does not reflect the most up-to-date balance and only applies when the verification type is Plaid.
  - `balance_fetched_date` string, nullable — The balance fetch date associated with the last_cached_balance. Only applies when verification type is Plaid.
  - `name` string — Name of bank account
  - `reverse_wire_enabled` boolean, nullable — Whether the company has at least one bank account with active reverse-wire funding. The same value is returned on every bank-account row in this response.

## Other responses

- `201` — created
- `404` — Not Found
- `422` — Invalid Attribute

---

[API](https://skmtc.net/gusto/apis/gusto-api.md) · [All operations](https://skmtc.net/gusto/apis/gusto-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gusto/gusto-api/revisions/826dfa57fb3b/schema)
