---
title: "Create a bank account"
method: POST
path: "/bank_accounts"
tags: ["Bank Accounts"]
---

# Create a bank account

`POST /bank_accounts`

## Request body

- object
  - `employee_id` string — Must be present when `contractor_id` and `business_entity_id` is either empty or not set.
  - `contractor_id` string — Must be present when `employee_id` and `business_entity_id` is either empty or not set.
  - `business_entity_id` string — Must be present when `employee_id` and `contractor_id` is either empty or not set.
  - `account_number` string, required — The bank account number. 1 to 12 digits, sent as a string. An account number that fails its institution's check-digit rules raises a `bank_account_invalid_account` warning rather than failing the request, so a successful response is not confirmation the account is valid. Validate details first with `POST /bank_accounts/lookup`.
  - `transit_number` string, required — The 5-digit bank transit number. A transit that is not a known branch of the given institution raises a `bank_account_unrecognized_transit` warning rather than failing the request.
  - `institution_number` string, required — The 3-digit bank institution number. An institution Nmbr does not hold raises a `bank_account_unrecognized_institution` warning rather than failing the request.
  - `name` string, nullable — An optional human-readable label for the bank account, such as "Main chequing". Useful for distinguishing accounts at the same institution.
  - `is_primary` boolean — Whether this is the primary bank account for its owner. Indicates that this bank account is the primary bank account. Optional. Cannot be set to false is there is no other bank account for the same employee, contractor or business entity.
  - `pad_signer_name` string, nullable — The name of the person who signed the PAD agreement. Only applicable to Business Entity bank accounts.
  - `pad_signer_email` string — The email address of the PAD agreement signer. Only applicable to Business Entity bank accounts.
  - `pad_signer_title` string, nullable — The title or role of the PAD agreement signer. Only applicable to Business Entity bank accounts.
  - `pad_signed_at` string, date — The date and time the PAD agreement was signed. Only applicable to Business Entity bank accounts.
  - `pad_file` string

## Response `201`

Created

- object
  - `id` string — The unique identifier of the object in Nmbr.
  - `object` string — The type of the object in Nmbr (`"bank_account"`).
  - `data` BankAccount
    - `business_entity` object — The Business Entity that owns this bank account. Present only for Business Entity bank accounts.
      - `id` string — The unique identifier of the object in Nmbr.
      - `object` string — The type of the object in Nmbr (`"business_entity"`).
    - `name` string, nullable — An optional human-readable label for the bank account, such as "Main chequing". Useful for distinguishing accounts at the same institution.
    - `institution_number` string — The 3-digit bank institution number. An institution Nmbr does not hold raises a `bank_account_unrecognized_institution` warning rather than failing the request.
    - `institution_name` string, nullable — The name of the banking institution matching the institution number, or `null` if the number is not recognized. Always the English name; see `institution_name_translated` for the value in the request's locale.
    - `institution_name_translations` object, nullable
      - `en` string, nullable
      - `fr` string, nullable
    - `institution_name_translated` string — The translation of the `institution_name` property for the request locale. Computed using the values in `institution_name` and `institution_name_translations` and the value of the request's `Accept-Language` header.
    - `transit_number` string — The 5-digit bank transit number. A transit that is not a known branch of the given institution raises a `bank_account_unrecognized_transit` warning rather than failing the request.
    - `transit_address` string, nullable — The address of the branch matching the institution and transit numbers, or `null` if the pair is not recognized.
    - `account_number_last_3` string, nullable — The last 3 digits of the bank account number.
    - `is_primary` boolean — Whether this is the primary bank account for its owner.
    - `is_deletable` boolean — Whether this bank account can be deleted.
    - `warnings` object, nullable — A collection of data validation warnings for this bank account. Warnings indicate incomplete or potentially incorrect data, such as an unrecognized institution or transit number.
      - `object` string, nullable
      - `data` object, nullable
    - `is_pad_signed` boolean — Whether a PAD agreement has been signed. Only present for Business Entity bank accounts.
    - `pad_signer_name` string, nullable — The name of the person who signed the PAD agreement. Only applicable to Business Entity bank accounts.
    - `pad_signer_email` string, nullable — The email address of the PAD agreement signer. Only applicable to Business Entity bank accounts.
    - `pad_signer_title` string, nullable — The title or role of the PAD agreement signer. Only applicable to Business Entity bank accounts.
    - `pad_signed_at` string, dateTime, nullable — The date and time the PAD agreement was signed. Only applicable to Business Entity bank accounts.
    - `pad_file` unknown
    - `created_at` string, dateTime — The date and time the object was created in Nmbr.
    - `updated_at` string, dateTime — The date and time the object was last updated in Nmbr.

---

[API](https://skmtc.dev/nmbr/apis/nmbr-api.md) · [All operations](https://skmtc.dev/nmbr/apis/nmbr-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nmbr/nmbr-api/revisions/29c2d6ac7131/schema)
