---
title: "Create new account."
method: POST
path: "/v1/accounts"
tags: ["accounts"]
---

# Create new account.

`POST /v1/accounts`

Creates a new account. The data required can be submitted as a JSON body or as a list of parameters (in key=value pairs, like a webform).

## Headers

- `X-Trace-Id` string, uuid

## Request body

- AccountStore
  - `name` string, string, required
  - `type` 'asset' | 'expense' | 'import' | 'revenue' | 'cash' | 'liability' | 'liabilities' | 'initial-balance' | 'reconciliation', string, required — Can only be one one these account types. import, initial-balance and reconciliation cannot be set manually.
  - `iban` string, iban, nullable
  - `bic` string, string, nullable
  - `account_number` string, string, nullable
  - `opening_balance` string, amount — Represents the opening balance, the initial amount this account holds.
  - `opening_balance_date` string, date-time, nullable — Represents the date of the opening balance.
  - `virtual_balance` string, amount
  - `currency_id` string, string — Use either currency_id or currency_code. Defaults to the user's financial administration's currency.
  - `currency_code` string, string — Use either currency_id or currency_code. Defaults to the user's financial administration's currency.
  - `active` boolean — If omitted, defaults to true.
  - `order` integer — Order of the account
  - `include_net_worth` boolean — If omitted, defaults to true.
  - `account_role` 'defaultAsset' | 'sharedAsset' | 'savingAsset' | 'ccAsset' | 'cashWalletAsset' | 'null', string, nullable — Is only mandatory when the type is asset.
  - `credit_card_type` 'monthlyFull' | 'null', string, nullable — Mandatory when the account_role is ccAsset. Can only be monthlyFull or null.
  - `monthly_payment_date` string, date-time, nullable — Mandatory when the account_role is ccAsset. Moment at which CC payment installments are asked for by the bank.
  - `liability_type` 'loan' | 'debt' | 'mortgage' | 'null', string, nullable — Mandatory when type is liability. Specifies the exact type.
  - `liability_direction` 'credit' | 'debit' | 'null', string, nullable — 'credit' indicates somebody owes you the liability. 'debit' Indicates you owe this debt yourself. Works only for liabilities.
  - `interest` string, string, nullable — Mandatory when type is liability. Interest percentage.
  - `interest_period` 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'half-year' | 'yearly' | 'null', string, nullable — Mandatory when type is liability. Period over which the interest is calculated.
  - `notes` string, string, nullable
  - `latitude` number, double, nullable — Latitude of the accounts's location, if applicable. Can be used to draw a map.
  - `longitude` number, double, nullable — Latitude of the accounts's location, if applicable. Can be used to draw a map.
  - `zoom_level` integer, nullable — Zoom level for the map, if drawn. This to set the box right. Unfortunately this is a proprietary value because each map provider has different zoom levels.

## Response `200`

New account stored, result in response.

## Other responses

- `400` — Bad request
- `401` — Unauthenticated
- `404` — Page not found
- `422` — Validation error. The body will have the exact details.
- `500` — Internal exception

---

[API](https://skmtc.dev/firefly-iii/apis/firefly-iii-api-develop.md) · [All operations](https://skmtc.dev/firefly-iii/apis/firefly-iii-api-develop/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/firefly-iii/firefly-iii-api-develop/revisions/8a1f6472e04b/schema)
