---
updatedAt: 2026-06-18T18:55:55.000Z
agentTools:
  projectIndex: https://docs.checkhq.com/llms.txt
---

# 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 non-payroll tax collections and refunds (e.g., historical liability debits and quarter-end variance 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](https://docs.checkhq.com/docs/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](/docs/bank-account-verification).

```json Sample raw bank account
{
  "id": "bnk_k2KX3XVt4B6JpNXmF3vf",
  "employee": "emp_hkyDTyLEziNfU8jixzPM",
  "status": "validation_pending",
  "last_noc_correction_at": null,
  "account_number_type": "raw",
  "raw_bank_account": {
    "institution_name": null,
    "account_number_last_four": "3890",
    "routing_number": "026009593",
    "type": "depository",
    "subtype": "checking"
  }
}
```
```json Sample plaid bank account
{
  "id": "bnk_HysE2hvUbu3APQ7cjswJ",
  "employee": "emp_x38JYoUXRaMdifvzBUY6",
  "status": "ownership_verified",
  "account_number_type": "tokenized",
  "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,
    "routing_number": "026009593",
    "microdeposit_verification_status": null
  }
}
```

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `id`  
        _string_
      </td>

      <td>
        Unique identifier for the bank account.
      </td>
    </tr>

    <tr>
      <td>
        `employee`  
        _string_
      </td>

      <td>
        ID of the employee on the account.
      </td>
    </tr>

    <tr>
      <td>
        `company`  
        _string_
      </td>

      <td>
        ID of the company on the account.
      </td>
    </tr>

    <tr>
      <td>
        `contractor`  
        _string_
      </td>

      <td>
        ID of the contractor on the account.
      </td>
    </tr>

    <tr>
      <td>
        `status`  
        _string_
      </td>

      <td>
        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`.
      </td>
    </tr>

    <tr>
      <td>
        `disabled_reason`  
        _string_
      </td>

      <td>
        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`.
      </td>
    </tr>

    <tr>
      <td>
        `last_noc_correction_at`  
        _datetime_
      </td>

      <td>
        The time when Check last updated this bank account due to receipt of a Notification of Change (NOC). If this field is `null`, then Check has never updated this bank account due to receipt of a NOC. Please see [Notifications of Change (NOCs)](https://docs.checkhq.com/docs/notifications-of-change-nocs) for more information.
      </td>
    </tr>

    <tr>
      <td>
        `raw_bank_account`  
        _object_
      </td>

      <td>
        Structured information about the bank account.
      </td>
    </tr>

    <tr>
      <td>
        `institution_name`  
        _string_
      </td>

      <td>
        The name of the bank holding the account.
      </td>
    </tr>

    <tr>
      <td>
        `account_number_last_four`  
        _string_
      </td>

      <td>
        The last four digits of the account’s account number.
      </td>
    </tr>

    <tr>
      <td>
        `account_number_type`  
        _string_
      </td>

      <td>
        Indicates whether the account number is a raw account number or a tokenized account number from Plaid. Values may be `raw` or `tokenized`.
      </td>
    </tr>

    <tr>
      <td>
        `routing_number`  
        _string_
      </td>

      <td>
        The account’s routing number.
      </td>
    </tr>

    <tr>
      <td>
        `type`  
        _string_
      </td>

      <td>
        The account's type. Value is `depository`.
      </td>
    </tr>

    <tr>
      <td>
        `subtype`  
        _string_
      </td>

      <td>
        The account’s subtype. Values may be `checking` or `savings`.
      </td>
    </tr>

    <tr>
      <td>
        `plaid_bank_account`  
        _object_
      </td>

      <td>
        Structured information about the Plaid account.
      </td>
    </tr>

    <tr>
      <td>
        `plaid_processor_token`  
        _string_
      </td>

      <td>
        A Check processor token retrieved from the Plaid API. Will be `null` when getting a list of bank accounts to avoid rate limiting.
      </td>
    </tr>

    <tr>
      <td>
        `metadata`  
        _object_
      </td>

      <td>
        Additional loosely structured information to associate with this bank account.
      </td>
    </tr>

    <tr>
      <td>
        `source`  
        _string_
      </td>

      <td>
        The integration partner that created and manages this bank account. When present, this indicates the bank account is owned by an ecosystem partner (e.g., an earned wage access provider) and **should not be edited or deleted** by your platform. `null` if the bank account was created by the partner or employee directly.
      </td>
    </tr>
  </tbody>
</Table>