POST
/
v0
/
ledgers

Authorizations

Authorization
string
headerrequired

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

teal-instance-id
string
required

The Teal instance ID

Query Parameters

expand
enum<string>[] | null

Comma-separated list of Ledger expand paths.

Available options:
parent,
parent.parent

Body

application/json
editable
boolean
required

Whether line entries can be manually added or removed from the Ledger. Set to false if you control the source of truth for the Ledger and want to restrict user changes, for example, if the Ledger is for a bank account or a payments account you control (i.e. you are a neobank or using a Banking as a Service platform).

name
string
required

The name of the ledger. Teal does not enforce any other conventions or patterns on naming schemes; however, we recommend you use concise, descriptive names, especially for financial account ledgers.

sort_code
string
required

Determines the display order in reports, ordered digit by digit, starting from the leftmost position. For example, 20010 will come before 3050.

Teal does not enforce any other conventions or patterns on sort codes. However, it is recommended to adopt a common convention such as starting all ledgers of the same type with the same number (assets start with 1, liabilities start with 2, etc.). The default CoA templates provided by Teal follow best practices for sort code numbering.

Maximum length: 20
debit_credit
enum<string>

Indicates if the ledger is a credit or debit ledger.

Required if financial_account_type is not specified.

Available options:
debit,
credit
financial_account_type
enum<string> | null

If specified, indicates that the ledger represents a real-world financial account.

If provided when creating a new Ledger object, you do not need to provide debit_credit, type, sub_type, or report_cash_flow values as we will provide default values.

Available options:
bank_account,
credit_card,
payments,
payroll,
loan,
prepaid_card,
accounts_receivable,
accounts_payable
parent_id
string | null

If the Ledger is a child Ledger, the ID of the parent Ledger object.

report_cash_flow
boolean

Whether Teal includes this ledger in the cash flow report.

Required if financial_account_type is not specified.

sub_type
enum<string>

Indicates similar characteristics and accounting treatment for a group of ledgers within a type.

Required if financial_account_type is not specified.

Available options:
current_assets,
non-current_assets,
transfers_between_accounts,
uncategorized_assets,
current_liabilities,
non-current_liabilities,
equity,
operating_revenues,
other_income,
cost_of_goods_sold,
operating_expenses,
other_expenses
type
enum<string>

Indicates the purpose and location of the funds and value recorded in the Ledger and which report it is included in: asset, liability and equity ledgers are displayed on the balance sheet; revenue and expenses are displayed on the income statement.

    Required if `financial_account_type` is not specified.
Available options:
asset,
liability,
equity,
revenue,
expense

Response

201 - application/json
id
string
required

The unique ID of the object.

debit_credit
enum<string>
required

Indicates if the ledger is a credit or debit ledger.

Required if financial_account_type is not specified.

Available options:
debit,
credit
editable
boolean
required

Whether line entries can be manually added or removed from the Ledger. Set to false if you control the source of truth for the Ledger and want to restrict user changes, for example, if the Ledger is for a bank account or a payments account you control (i.e. you are a neobank or using a Banking as a Service platform).

is_required
boolean
required

Indicates that the ledger is one of the four system ledgers required for teal to work. In the default chart of accounts, these are named one of: Transfers Between Accounts, Opening Balance Retained Earnings, Uncategorized Cash Inflow, Uncategorized Cash Outflow. You can update the names of these to fit your needs.

name
string
required

The name of the ledger. Teal does not enforce any other conventions or patterns on naming schemes; however, we recommend you use concise, descriptive names, especially for financial account ledgers.

parent_id
string | null
required

If the Ledger is a child Ledger, the ID of the parent Ledger object.

report_cash_flow
boolean
required

Whether Teal includes this ledger in the cash flow report.

Required if financial_account_type is not specified.

sort_code
string
required

Determines the display order in reports, ordered digit by digit, starting from the leftmost position. For example, 20010 will come before 3050.

Teal does not enforce any other conventions or patterns on sort codes. However, it is recommended to adopt a common convention such as starting all ledgers of the same type with the same number (assets start with 1, liabilities start with 2, etc.). The default CoA templates provided by Teal follow best practices for sort code numbering.

sub_type
enum<string>
required

Indicates similar characteristics and accounting treatment for a group of ledgers within a type.

Required if financial_account_type is not specified.

Available options:
current_assets,
non-current_assets,
transfers_between_accounts,
uncategorized_assets,
current_liabilities,
non-current_liabilities,
equity,
operating_revenues,
other_income,
cost_of_goods_sold,
operating_expenses,
other_expenses
type
enum<string>
required

Indicates the purpose and location of the funds and value recorded in the Ledger and which report it is included in: asset, liability and equity ledgers are displayed on the balance sheet; revenue and expenses are displayed on the income statement.

    Required if `financial_account_type` is not specified.
Available options:
asset,
liability,
equity,
revenue,
expense
financial_account_type
enum<string> | null

If specified, indicates that the ledger represents a real-world financial account.

If provided when creating a new Ledger object, you do not need to provide debit_credit, type, sub_type, or report_cash_flow values as we will provide default values.

Available options:
bank_account,
credit_card,
payments,
payroll,
loan,
prepaid_card,
accounts_receivable,
accounts_payable
parent
any | null

Expandable. If the ledger is a child ledger, the parent Ledger object.