The bank account object

Represents a checking or savings account at a U.S. bank.

Bank account objects must be linked with an employee, contractor, or company.

A company must have a linked bank account in order for Check to automatically withdraw funds to fund payrolls. A company can have multiple linked bank accounts that can be used to fund payrolls. However, only the default_bank_account of the company will be used for tax collections and refunds.

An employee or contractor must have a linked bank account in order for Check to pay them using direct deposit. Any employee or contractor can have multiple linked bank accounts, which you can direct funds to using Net Pay Splits.

Check will validate that either a raw_bank_account object or a plaid_bank_account object is included when creating a bank account. You can read more about our bank account verification process here.

Important Note on Default Bank Accounts

When creating a new bank account for a company, it’s important to note that the newly created bank account will not automatically become the default_bank_account for the company. If you intend for the new bank account to serve as the default, you must explicitly update the company.default_bank_account field after creating the new bank account. This ensures that the new account will be used for tax collections and refunds as well as any other operations dependent on the default bank account. If you do not want to use the new bank account as the default but want to use it on your next payroll run, use the new bank account when you create your next payroll.
You can update the company's default_bank_account with the api here.

{
  "id": "bnk_k2KX3XVt4B6JpNXmF3vf",
  "employee": "emp_hkyDTyLEziNfU8jixzPM",
  "status": "validation_pending",
  "raw_bank_account": {
    "institution_name": null,
    "account_number_last_four": "3890",
    "routing_number": "026009593",
    "type": "depository",
    "subtype": "checking"
  }
}
{
  "id": "bnk_HysE2hvUbu3APQ7cjswJ",
  "employee": "emp_x38JYoUXRaMdifvzBUY6",
  "status": "ownership_verified",
  "plaid_bank_account": {
    "name": "Business Checking",
    "plaid_public_token": "public-production-C8rZVjaA-gh2N-xuDw-2CHL-6fzNcs4ZEKZd",
    "institution_name": "Bank of America",
    "mask": "3890",
    "type": "depository",
    "subtype": "checking",
    "verified": true,
    "microdeposit_verification_status": null
  }
}
AttributeDescription
id
string
Unique identifier for the bank account.
employee
string
ID of the employee on the account.
company
string
ID of the company on the account.
contractor
string
ID of the contractor on the account.
status
string
Validation and verification status of the account.

Values may be validation_pending, validated, ownership_verified, disabled_recoverable, disabled_irrecoverable.

A bank account can be used for payroll if its status is not disabled_recoverable or disabled_irrecoverable.
disabled_reason
string
Reason for status being disabled_recoverable or disabled_irrecoverable.

Values may be validation_failed, failed_payment, verification_pending, verification_failed, consumer_account, noc_received.

null if status is not disabled_recoverable or disabled_irrecoverable.
raw_bank_account
object
Structured information about the bank account.
institution_name
string
The name of the bank holding the account.
account_number_last_four
string
The last four digits of the account’s account number.
routing_number
string
The account’s routing number.
subtype
string
The account’s subtype. Values may be checking or savings.
plaid_bank_account
object
Structured information about the Plaid account.
plaid_processor_token
string
A Check processor token retrieved from the Plaid API. Will be null when getting a list of bank accounts to avoid rate limiting.
metadata
object
Additional loosely structured information to associate with this bank account.