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
Create a Journal Entry
Creates a new Journal Entry object. The debit and credit amounts of the Line Entries must match.
The access token received from the authorization server in the OAuth 2.0 flow.
The Teal instance ID
An optional identifier for audit logging.
Comma-separated list of expandable paths.
The datetime the Journal Entry was created in UTC time.
An arbitrary string on the object, useful for displaying to the user.
The Line Entry objects to be associated with the
Journal Entry. Must include at least two Line Entries, one debit and one
credit, and the sum of the amount
s of all debit entries must equal the
sum of the amount
s of the credit entries.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
The Teal instance ID
An optional identifier for audit logging.
Query Parameters
Comma-separated list of expandable paths.
line_entries
, line_entries.transaction
, line_entries.ledger
Body
The datetime the Journal Entry was created in UTC time.
An arbitrary string on the object, useful for displaying to the user.
The Line Entry objects to be associated with the
Journal Entry. Must include at least two Line Entries, one debit and one
credit, and the sum of the amount
s of all debit entries must equal the
sum of the amount
s of the credit entries.
The value of the line entry in decimal dollar cents.
Indicates if the amount is a credit or debit.
debit
, credit
An arbitrary string on the object, useful for displaying to the user or for categorization.
The ID of the Line Entry's Ledger. Can be null in some cases for Instances using QuickBooks as their accounting package.
A list of IDs of the Tag objects associated with the Line Entry.
Response
The unique ID of the object.
An arbitrary string on the object, useful for displaying to the user.
The datetime the Journal Entry was created in UTC time.
A list of files attached to the Journal Entry. Only available to Instances using Platform GL as their accounting package.
The ids of the Line Entries detailing the Journal
Entry's movement of value. Only null
if the Instance is using QuickBooks as
their accounting package.
List of Line Entries. platformGL instances only. Included in expanded responses.
The value of the line entry in decimal dollar cents.
Indicates if the amount is a credit or debit.
debit
, credit
An arbitrary string on the object, useful for displaying to the user or for categorization.
The ID of the Line Entry's Ledger. Can be null in some cases for Instances using QuickBooks as their accounting package.
If the Line Entry is identified as a transfer between accounts, the ID of the Line Entry in the opposing Ledger.
Related guide: Auto-categorization
The ID of the associated Transaction, if one exists.
The unique ID of the object. Can be null in some cases for Instances using QuickBooks as their accounting package.
The datetime the Line Entry was created in UTC time.
Indicates if the Line Entry can be manually added or
removed from a Ledger, as dictated by the editable
property on the Ledger.
Expandable. The associated Journal Entry object.
The unique ID of the object.
An arbitrary string on the object, useful for displaying to the user.
The datetime the Journal Entry was created in UTC time.
A list of files attached to the Journal Entry. Only available to Instances using Platform GL as their accounting package.
The ids of the Line Entries detailing the Journal
Entry's movement of value. Only null
if the Instance is using QuickBooks as
their accounting package.
The entity that is linked with this journal entry. Journal entries with linked entities may not be modified or deleted directly.
The ID of the associated Journal Entry. Can be null in some cases for Instances using QuickBooks as their accounting package.
An arbitrary string on the object, useful for displaying to users.
Expandable. The associated Ledger object.
The unique ID of the object.
Indicates if the ledger is a credit or debit ledger.
Required if financial_account_type
is not specified.
debit
, credit
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).
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.
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.
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.
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.
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
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
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
Expandable. If the ledger is a child ledger, the parent Ledger object.
The name of the Line Entry's Ledger.
Expandable. The associated Transaction object, if one exists.
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.
The value of the transaction in decimal dollar cents.
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.
An arbitrary string on the object, useful for displaying information to the user.
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
Indicates if the transaction has been reviewed. See the reviewing transactions for steps on how to use this.
unreviewed
, reviewed
The ID of the transaction source account where the transaction is stored.
Whether the transaction is a non-business personal transaction.
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.
How the Transaction was assigned its category.
See the categorization guide for more details.
ai
, rules
, similarity
, transfer_between_accounts
, uncategorized
, user
The ID of the Journal Entry that the Transaction's Line Entry is associated with.
Expandable. The associated Journal Entry object.
The ID of the financial account ledger associated with the Transaction.
Expandable. The Ledger object of the financial account associated with the Transaction.
The ID of the financial account ledger associated with the Transaction.
Expandable. The associated Line Entry.
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.
Expandable. A list of the Line Entry objects
with the opposite debit_credit
status.
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.