POST
/
v0
/
platform-gl
/
coa-templates
/
{coa_template_id}
/
ledgers
curl --request POST \
  --url https://api.sandbox.teal.dev/v0/platform-gl/coa-templates/{coa_template_id}/ledgers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "editable": true,
  "debit_credit": "debit",
  "financial_account_type": "bank_account",
  "ledger_sub_type": "current_assets",
  "ledger_type": "asset",
  "name": "Pluto Checking 4242",
  "parent_id": "<string>",
  "report_cash_flow": true,
  "sort_code": "1400"
}'
{
  "id": "7JRNsKwy2Lw66caxVU7WGC",
  "children": [
    {
      "id": "7JRNsKwy2Lw66caxVU7WGC",
      "children": [
        {
          "id": "7JRNsKwy2Lw66caxVU7WGC",
          "children": [
            {
              "id": "7JRNsKwy2Lw66caxVU7WGC",
              "children": [
                {
                  "id": "7JRNsKwy2Lw66caxVU7WGC",
                  "children": [
                    {
                      "id": "7JRNsKwy2Lw66caxVU7WGC",
                      "children": [
                        "<any>"
                      ],
                      "debit_credit": "debit",
                      "editable": true,
                      "financial_account_type": "bank_account",
                      "is_required": true,
                      "name": "Pluto Checking 4242",
                      "parent_id": "<string>",
                      "report_cash_flow": true,
                      "sort_code": "1400",
                      "sub_type": "current_assets",
                      "type": "asset"
                    }
                  ],
                  "debit_credit": "debit",
                  "editable": true,
                  "financial_account_type": "bank_account",
                  "is_required": true,
                  "name": "Pluto Checking 4242",
                  "parent_id": "<string>",
                  "report_cash_flow": true,
                  "sort_code": "1400",
                  "sub_type": "current_assets",
                  "type": "asset"
                }
              ],
              "debit_credit": "debit",
              "editable": true,
              "financial_account_type": "bank_account",
              "is_required": true,
              "name": "Pluto Checking 4242",
              "parent_id": "<string>",
              "report_cash_flow": true,
              "sort_code": "1400",
              "sub_type": "current_assets",
              "type": "asset"
            }
          ],
          "debit_credit": "debit",
          "editable": true,
          "financial_account_type": "bank_account",
          "is_required": true,
          "name": "Pluto Checking 4242",
          "parent_id": "<string>",
          "report_cash_flow": true,
          "sort_code": "1400",
          "sub_type": "current_assets",
          "type": "asset"
        }
      ],
      "debit_credit": "debit",
      "editable": true,
      "financial_account_type": "bank_account",
      "is_required": true,
      "name": "Pluto Checking 4242",
      "parent_id": "<string>",
      "report_cash_flow": true,
      "sort_code": "1400",
      "sub_type": "current_assets",
      "type": "asset"
    }
  ],
  "debit_credit": "debit",
  "editable": true,
  "financial_account_type": "bank_account",
  "is_required": true,
  "name": "Pluto Checking 4242",
  "parent_id": "<string>",
  "report_cash_flow": true,
  "sort_code": "1400",
  "sub_type": "current_assets",
  "type": "asset"
}

Authorizations

Authorization
string
headerrequired

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

Path Parameters

coa_template_id
string
required

The ID of the Chart of Accounts Template.

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).

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
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
ledger_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
ledger_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
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

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.

Response

201 - application/json
id
string
required

The unique ID of the object.

children
object[] | null

If the Ledger has child ledgers, a list of the Ledger objects.

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).

financial_account_type
enum<string> | null
required

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
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