---
title: "Create financial account"
method: POST
path: "/v1/financial_accounts"
tags: ["Financial Accounts"]
---

# Create financial account

`POST /v1/financial_accounts`

## Request

- Base URL: `https://api.slant.app`
- URL: `https://api.slant.app/v1/financial_accounts`
- Auth: HTTP bearer

Financial terms and values; no custodian data or attachments. Numbers are masked. Imported annuity terms and parties are read-only except notes. Values use dollars; balances use cents. Party arrays replace submitted roles or accessible annuity parties. Only advisor valuations can be edited.

## Headers

- `Authorization` string
- `Idempotency-Key` string

## Request body

- object
  - `name` string, required
  - `account_type` 'checking' | 'savings' | 'investment' | 'insurance' | 'unknown' | 'cd' | 'money_market' | 'cash' | 'annuity', required
  - `tax_advantaged_type` 'not_applicable' | 'hsa' | 'traditional_401k' | 'roth_401k' | 'traditional_ira' | 'roth_ira' | 'education_fivetwonine' | 'sep_ira' | 'simple_ira' | 'solo_401k' | 'traditional_403b' | 'roth_403b' | 'traditional_four_five_seven' | 'roth_four_five_seven' | 'pension_plan' | 'profit_sharing_plan' | 'rollover_ira' | 'ugma' | 'utma' | 'non_deductible_ira' | 'beneficiary_ira' | 'traditional_401a' | 'coverdell_esa' | 'inherited_ira' | 'unknown' | 'other'
  - `other_tax_advantaged_type_label` string, nullable
  - `account_number` string, nullable
  - `institution_name` string, nullable
  - `balance_in_cents` integer, nullable: Money in integer cents.
  - `notes` string, nullable
  - `owner_ids` string[]: Replaces this role; omit to preserve existing people.
  - `custom_fields` object
  - `book_id` string: Optional book context; must match the household.
  - `household_id` string, required: Authorized household placement.

## Response `201`

Successful financial resource access

- object
  - `name` string
  - `account_type` 'checking' | 'savings' | 'investment' | 'insurance' | 'unknown' | 'cd' | 'money_market' | 'cash' | 'annuity'
  - `tax_advantaged_type` 'not_applicable' | 'hsa' | 'traditional_401k' | 'roth_401k' | 'traditional_ira' | 'roth_ira' | 'education_fivetwonine' | 'sep_ira' | 'simple_ira' | 'solo_401k' | 'traditional_403b' | 'roth_403b' | 'traditional_four_five_seven' | 'roth_four_five_seven' | 'pension_plan' | 'profit_sharing_plan' | 'rollover_ira' | 'ugma' | 'utma' | 'non_deductible_ira' | 'beneficiary_ira' | 'traditional_401a' | 'coverdell_esa' | 'inherited_ira' | 'unknown' | 'other'
  - `other_tax_advantaged_type_label` string, nullable
  - `account_number` string, nullable: Masked account number; the full number is never returned.
  - `institution_name` string, nullable
  - `balance_in_cents` integer, nullable: Money in integer cents.
  - `notes` string, nullable
  - `owner_ids` string[]: Replaces this role; omit to preserve existing people.
  - `custom_fields` object
  - `id` string, required
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `book_id` string
  - `household_id` string
  - `balance_as_of` string, date-time, nullable

## Other responses

- `400`: Bad Request - malformed JSON, invalid filters, or missing required book context
- `401`: Unauthorized - missing or invalid token
- `403`: Access denied. Policy and membership failures may have an empty body. A read-only personal token cannot perform writes.
- `429`: An hourly API rate limit was exceeded. Wait Retry-After seconds before retrying.

## Changes

- **2026-11-03** `173c41bf6be9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/slant/apis/slant-public-api-v1/changes/v1/financial_accounts/post.md)

---

[API](https://skmtc.dev/slant/apis/slant-public-api-v1.md) - [All operations](https://skmtc.dev/slant/apis/slant-public-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/slant/apis/slant-public-api-v1/revisions/173c41bf6be9?raw)
