---
title: "Create External financial institution"
method: POST
path: "/accounts/{account_id}/financial-institutions/external"
tags: ["Financial Institutions"]
---

# Create External financial institution

`POST /accounts/{account_id}/financial-institutions/external`

Creates a record of an external financial institution that can be used to receive funds.

## Path parameters

- `account_id` string, required — ID of the resource

## Request body

- CreateExternalFinancialInstitutionRequest
  - `account_number` string, required
  - `account_type` string, required
  - `bank_address` USStreetAddress
    - `city` string, required
    - `country` string
    - `state` 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'VI' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY', required
    - `street_line_1` string, required
    - `street_line_2` string
    - `zip` string, required
  - `beneficiary_address` USStreetAddress
    - `city` string, required
    - `country` string
    - `state` 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'VI' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY', required
    - `street_line_1` string, required
    - `street_line_2` string
    - `zip` string, required
  - `name` string
  - `owner` string, required
  - `ownership` 'self-owned' | 'customer-owned' — Ownership type of the financial institution
  - `routing_number` string, required
  - `transfer_types` string[], required — Transfer types to support for this financial institution. When wire is included, bank_address and beneficiary_address are required.

## Response `201`

OK

- FinancialInstitutionV2
  - `account_number` string, nullable — Masked account number showing only last 4 digits for security (format: ****1234). Full number never returned.
  - `account_type` 'checking' | 'savings', nullable
  - `bank_address` USStreetAddress
    - `city` string, required
    - `country` string
    - `state` 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'VI' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY', required
    - `street_line_1` string, required
    - `street_line_2` string
    - `zip` string, required
  - `beneficiary_address` USStreetAddress
    - `city` string, required
    - `country` string
    - `state` 'AL' | 'AK' | 'AS' | 'AZ' | 'AR' | 'CA' | 'CO' | 'CT' | 'DE' | 'DC' | 'FL' | 'GA' | 'GU' | 'HI' | 'ID' | 'IL' | 'IN' | 'IA' | 'KS' | 'KY' | 'LA' | 'ME' | 'MD' | 'MA' | 'MI' | 'MN' | 'MS' | 'MO' | 'MT' | 'NE' | 'NV' | 'NH' | 'NJ' | 'NM' | 'NY' | 'NC' | 'ND' | 'MP' | 'OH' | 'OK' | 'OR' | 'PA' | 'PR' | 'RI' | 'SC' | 'SD' | 'TN' | 'TX' | 'VI' | 'UT' | 'VT' | 'VA' | 'WA' | 'WV' | 'WI' | 'WY', required
    - `street_line_1` string, required
    - `street_line_2` string
    - `zip` string, required
  - `created` string, date-time, required — ISO-8601 timestamp that includes date and time
  - `id` string, required — ID of the resource
  - `last_updated` string, date_time — Last update timestamp
  - `name` string, nullable, required
  - `needs_update` boolean — Whether this FI needs Plaid reauthorization
  - `owner` string, nullable — Beneficiary name for wire transfers (maps from POST request owner field)
  - `ownership` 'self-owned' | 'customer-owned' — Ownership type of the financial institution
  - `routingNumber` string, required
  - `status` 'active' | 'archived', required
  - `transfer_types` string[], nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `500` — Unknown

---

[API](https://skmtc.net/brale/apis/brale-api.md) · [All operations](https://skmtc.net/brale/apis/brale-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/brale/brale-api/versions/7446d49997c2/schema)
