Teal API Endpoints
- Categorization
- Chart of Accounts Templates
- Instances
- Journal Entries
- Ledgers
- Line Entries
- Payables
- Platform
- Quickbooks
- Receivables
- Reports
- Tags
- Transaction Sources
- Transactions
- Transfers
API Migration
- Migration Guides
- Deprecated Endpoints
- Transactions
- Quickbooks
Retrieve a Ledger Transaction's categories
Retrieves the categories of a Transaction. Deprecated, use source account endpoints.
curl --request GET \
--url https://api.sandbox.teal.dev/v0/ledgers/{ledger_id}/transactions/{transaction_id}/categories \
--header 'Authorization: Bearer <token>' \
--header 'teal-instance-id: <teal-instance-id>'
{
"transaction": {
"amount": 132629.38,
"categorization_method": "similarity",
"datetime": "2024-03-15T15:28:53Z",
"description": "Payroll March 15 2024",
"id": "t_9237232",
"journal_entry_id": "C4ocnUQze8kDwQ3EczkZXn",
"ledger_id": "7JRNsKwy2Lw66caxVU7WGC",
"line_entry_id": "XMDsKVuW4Wmi3LTW31Qw6E",
"opposing_line_entry_ids": [
"NULcvXTkLczde32qs1rqgB"
],
"personal": false,
"posted_status": "posted",
"review_status": "unreviewed",
"source_account_id": "L7RR1Yz85FJoASPvPLs441"
},
"categories": [
{
"editable": true,
"ledger_id": "HLn8oy2eqMUCwjp1Cwdgco",
"ledger_name": "Payroll Expense"
}
],
"ledger": {
"debit_credit": "debit",
"editable": false,
"financial_account_type": "bank_account",
"id": "7JRNsKwy2Lw66caxVU7WGC",
"is_required": false,
"name": "Pluto Checking 4242",
"report_cash_flow": true,
"sort_code": "1140",
"sub_type": "current_assets",
"type": "asset"
},
"journal_entry_id": "C4ocnUQze8kDwQ3EczkZXn"
}
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
The Teal instance ID
Path Parameters
The Transaction ID.
The Ledger ID.
Response
The Transaction object.
The unique ID of the object. This is used as an idempotency
key to prevent duplicates. This is manually set as part of the create
transactions request. If the transaction is created via a data integration,
Plaid for example, it will be set to the transaction_id
to enforce
idempotency with the data source.
"t_9237232"
The value of the transaction in decimal dollar cents.
132629.38
The UTC datetime that the Transaction was created. This
will never be before an Instance's entries_start
date. When importing
transactions, transactions whose datetime is before the Instance’s
entries_start
date will be skipped. Other transactions will be processed
as normal.
"2024-03-15T15:28:53Z"
An arbitrary string on the object, useful for displaying information to the user.
"Payroll March 15 2024"
Indicates if the corresponding journal entry and
line entries for the transaction have been have been created. deleted
indicates that the transaction is posted
but the corresponding journal entry
and line entries have been deleted.
not_posted
, posted
, deleted
"posted"
Indicates if the transaction has been reviewed. See the reviewing transactions for steps on how to use this.
unreviewed
, reviewed
"reviewed"
The ID of the transaction source account where the transaction is stored.
Whether the transaction is a non-business personal transaction.
false
Arbitrary structured information about the transaction. This could be location of the transaction to display to the user or vendor information to use as part of a Platform or Instance categorization rule. Teal does not use metadata for any accounting purposes.
null
How the Transaction was assigned its category.
See the categorization guide for more details.
ai
, rules
, similarity
, transfer_between_accounts
, uncategorized
, user
"similarity"
The ID of the Journal Entry that the Transaction's Line Entry is associated with.
"C4ocnUQze8kDwQ3EczkZXn"
Expandable. The associated Journal Entry object.
null
The ID of the financial account ledger associated with the Transaction.
"7JRNsKwy2Lw66caxVU7WGC"
Expandable. The Ledger object of the financial account associated with the Transaction.
null
The ID of the financial account ledger associated with the Transaction.
"XMDsKVuW4Wmi3LTW31Qw6E"
Expandable. The associated Line Entry.
null
A list of IDs of all the Line Entries
objects in the journal entry with the opposite debit_credit
status. For
example if the Transaction's line entry is a debit this opposing line entries
will be credit line entries.
["NULcvXTkLczde32qs1rqgB"]
Expandable. A list of the Line Entry objects
with the opposite debit_credit
status.
null
A list of all the Tags associated with the Transaction, if any. Note that Tags are not transitive and the tags on a Transaction can be different than those on its line entry or entires.
The unique ID of the object.
"UjL3BQnEaJtecuC7CUeDk"
An arbitrary string, useful for identifying the tag to the user.
"Sprinter - 1ab-c23"
The ID of the tag group.
"NCB2xo5S1yQbNgyWskXpwG"
null
{
"amount": 132629.38,
"categorization_method": "similarity",
"datetime": "2024-03-15T15:28:53Z",
"description": "Payroll March 15 2024",
"id": "t_9237232",
"journal_entry_id": "C4ocnUQze8kDwQ3EczkZXn",
"ledger_id": "7JRNsKwy2Lw66caxVU7WGC",
"line_entry_id": "XMDsKVuW4Wmi3LTW31Qw6E",
"opposing_line_entry_ids": ["NULcvXTkLczde32qs1rqgB"],
"personal": false,
"posted_status": "posted",
"review_status": "unreviewed",
"source_account_id": "L7RR1Yz85FJoASPvPLs441"
}
A list of the categories of the Transaction.
The ID of the category ledger.
"7JRNsKwy2Lw66caxVU7WGC"
The name of the category ledger.
"Payroll Expense"
Whether line entries can be manually added or removed from the Ledger.
true
[
{
"editable": true,
"ledger_id": "HLn8oy2eqMUCwjp1Cwdgco",
"ledger_name": "Payroll Expense"
}
]
The Ledger object of the financial account associated with the Transaction.
The unique ID of the object.
"7JRNsKwy2Lw66caxVU7WGC"
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.
"Pluto Checking 4242"
Indicates if the ledger is a credit or debit ledger.
Required if financial_account_type
is not specified.
debit
, credit
"debit"
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).
false
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.
false
If the Ledger is a child Ledger, the ID of the parent Ledger object.
Whether Teal includes this ledger in the cash flow report.
Required if financial_account_type
is not specified.
false
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.
"1400"
Indicates similar characteristics and accounting
treatment for a group of ledgers within a type
.
Required if
financial_account_type
is not specified.
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
"current_assets"
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.
asset
, liability
, equity
, revenue
, expense
"asset"
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.
bank_account
, credit_card
, payments
, payroll
, loan
, prepaid_card
, accounts_receivable
, accounts_payable
"bank_account"
Expandable. If the ledger is a child ledger, the parent Ledger object.
{
"debit_credit": "debit",
"editable": false,
"financial_account_type": "bank_account",
"id": "7JRNsKwy2Lw66caxVU7WGC",
"is_required": false,
"name": "Pluto Checking 4242",
"report_cash_flow": true,
"sort_code": "1140",
"sub_type": "current_assets",
"type": "asset"
}
The ID of the Journal Entry that the Transaction's Line Entry is associated with.
"C4ocnUQze8kDwQ3EczkZXn"
curl --request GET \
--url https://api.sandbox.teal.dev/v0/ledgers/{ledger_id}/transactions/{transaction_id}/categories \
--header 'Authorization: Bearer <token>' \
--header 'teal-instance-id: <teal-instance-id>'
{
"transaction": {
"amount": 132629.38,
"categorization_method": "similarity",
"datetime": "2024-03-15T15:28:53Z",
"description": "Payroll March 15 2024",
"id": "t_9237232",
"journal_entry_id": "C4ocnUQze8kDwQ3EczkZXn",
"ledger_id": "7JRNsKwy2Lw66caxVU7WGC",
"line_entry_id": "XMDsKVuW4Wmi3LTW31Qw6E",
"opposing_line_entry_ids": [
"NULcvXTkLczde32qs1rqgB"
],
"personal": false,
"posted_status": "posted",
"review_status": "unreviewed",
"source_account_id": "L7RR1Yz85FJoASPvPLs441"
},
"categories": [
{
"editable": true,
"ledger_id": "HLn8oy2eqMUCwjp1Cwdgco",
"ledger_name": "Payroll Expense"
}
],
"ledger": {
"debit_credit": "debit",
"editable": false,
"financial_account_type": "bank_account",
"id": "7JRNsKwy2Lw66caxVU7WGC",
"is_required": false,
"name": "Pluto Checking 4242",
"report_cash_flow": true,
"sort_code": "1140",
"sub_type": "current_assets",
"type": "asset"
},
"journal_entry_id": "C4ocnUQze8kDwQ3EczkZXn"
}