---
title: "Create a bank account"
method: POST
path: "/bank_accounts"
---

# Create a bank account

`POST /bank_accounts`

## Request body

- object
  - `name` string, required — Human readable name for the bank account
  - `currency` string — Three-letter ISO 4217 currency code (e.g. USD, EUR). Must be uppercase. Optional.
  - `mask` string — Last four digits of the account number, as it appears on statements. Set automatically for Plaid-linked accounts.

## Response `201`

Bank account created

- BankAccount
  - `id` integer — Unique numeric identifier
  - `name` string, required — Human readable name for the bank account
  - `mask` string, nullable — Last four digits of the account number, as it appears on statements. Populated for Plaid-linked accounts.
  - `display_name` string — Human label for the account: "Name (mask)" when a mask is known, otherwise just the name.
  - `currency` string, nullable — Three-letter ISO 4217 currency code (e.g. USD, EUR). Must be uppercase. Optional — bank accounts may be created without a currency.
  - `role` 'fbo' | 'ach_suspense' | 'network_settlement' | 'secondary_network' | 'revenue' | 'cardholder_adjustment' | 'cash_load' | 'unload_settlement' | 'reserve' | 'escheat' | 'gl' | 'operating', nullable — Canonical account role within a program. Null when the account has no declared role.
  - `program` object, nullable — The program this account belongs to, if any.
    - `id` string, uuid
    - `name` string
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401` — Unauthorized
- `422` — Validation error

---

[API](https://skmtc.net/endclose/apis/end-close-api.md) · [All operations](https://skmtc.net/endclose/apis/end-close-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/endclose/end-close-api/revisions/613ceff68dc7/schema)
