Teal API Endpoints
- Categorization
- Chart of Accounts Templates
- Instances
- Journal Entries
- Ledgers
- Line Entries
- Payables
- Platform
- Quickbooks
- Receivables
- Reports
- Tags
- Transaction Sources
- DELDelete Ledger Transaction Source
- PUTUpdate Ledger Transaction Source
- POSTLink Unit Account
- POSTLink Plaid Account
- GETGet Plaid Link Statuses
- POSTCreate a Business Transaction Source Account
- POSTCreate a Personal Transaction Source Account
- PUTUpdate a Transaction Source Account
- DELDelete a Transaction Source Account
- GETGet Transaction Source Accounts
- DEL
- Transactions
- Transfers
API Migration
- Migration Guides
- Deprecated Endpoints
Get Plaid Link Statuses
Returns the status of all Plaid connected financial account ledgers on the platform.
curl --request GET \
--url https://api.sandbox.teal.dev/v0/sources/plaid/links/status \
--header 'Authorization: Bearer <token>'
{
"next_page_token": "ikal0NEVfMhF8dJf4yQ6KQZmGD",
"prev_page_token": "vuA7JeKI5c6FLnPt5JfRcZcJxW",
"records": [
{
"token_handle": {
"id": "UjL3BQnEaJtecuC7CUeDk",
"type": "plaid",
"date": "2022-01-01T00:00:00Z",
"enabled": true
},
"ledger": {
"id": "7JRNsKwy2Lw66caxVU7WGC",
"name": "Pluto Checking 4242",
"debit_credit": "debit",
"editable": false,
"financial_account_type": "bank_account",
"is_required": false,
"parent": "<any>",
"parent_id": "<string>",
"report_cash_flow": false,
"sort_code": "1400",
"sub_type": "current_assets",
"type": "asset"
},
"instance": {
"id": "RKtPbubK5NcbBsUmU1ktSP",
"entries_start": "2024-01-01T00:00:00Z",
"name": "ACME Goods Inc",
"subscription": "tier3",
"accounting_package": "platformgl",
"parent_id": "Kv7sp6Y1gAH2vfNxAWemRy",
"child_ids": "['A5SswbYm7eZM2ec5q7Hm2t']",
"parent": "<any>",
"children": [
{}
]
},
"txn_processing_task": {
"id": "UjL3BQnEaJtecuC7CUeDk",
"status": "pending",
"created_datetime": "2024-01-01T00:00:00Z",
"updated_datetime": [
"2024-01-01T00:00:00Z"
],
"error": null,
"source_account_id": "<string>",
"ledger_id": "7JRNsKwy2Lw66caxVU7WGC",
"created_transaction_ids": [
"<string>"
],
"removed_transaction_ids": [
"<string>"
],
"modified_transaction_ids": [
"<string>"
],
"skipped_transaction_ids": [
"<string>"
]
}
}
]
}
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
The Instance ID
The number of records to return. Max limit is 100.
1 <= x < 101
Response
The token to use to request the next page
"ikal0NEVfMhF8dJf4yQ6KQZmGD"
The token to use to request the previous page
"vuA7JeKI5c6FLnPt5JfRcZcJxW"
List of source account statuses
"UjL3BQnEaJtecuC7CUeDk"
plaid
, unit
, quickbooks
, manual
"plaid"
The date the token was last updated.
"2022-01-01T00:00:00Z"
If the transaction source is active
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.
The unique ID of the object.
"RKtPbubK5NcbBsUmU1ktSP"
The datetime in UTC time from which the API will sync an Instance's accounting data. Transactions or journal entries cannot be entered before this date.
"2024-01-01T00:00:00Z"
The name of the business.
"ACME Goods Inc"
The Instance's subscription tier.
tier0
, tier1
, tier2
, tier3
, tier4
, tier5
"tier3"
The type of accounting package the Instance uses as the source of truth for their books.
platformgl
, quickbooks
"platformgl"
The ID of the Instance's parent.
"Kv7sp6Y1gAH2vfNxAWemRy"
The IDs of the Instance's children.
"['A5SswbYm7eZM2ec5q7Hm2t']"
The Instance's parent. Included in expanded responses.
The Instance's children. Included in expanded responses.
The unique ID of the object.
"RKtPbubK5NcbBsUmU1ktSP"
The datetime in UTC time from which the API will sync an Instance's accounting data. Transactions or journal entries cannot be entered before this date.
"2024-01-01T00:00:00Z"
The name of the business.
"ACME Goods Inc"
The Instance's subscription tier.
tier0
, tier1
, tier2
, tier3
, tier4
, tier5
"tier3"
The type of accounting package the Instance uses as the source of truth for their books.
platformgl
, quickbooks
"platformgl"
The ID of the Instance's parent.
"Kv7sp6Y1gAH2vfNxAWemRy"
The IDs of the Instance's children.
"['A5SswbYm7eZM2ec5q7Hm2t']"
The Instance's parent. Included in expanded responses.
The Instance's children. Included in expanded responses.
The unique ID of the object.
"RKtPbubK5NcbBsUmU1ktSP"
The datetime in UTC time from which the API will sync an Instance's accounting data. Transactions or journal entries cannot be entered before this date.
"2024-01-01T00:00:00Z"
The name of the business.
"ACME Goods Inc"
The Instance's subscription tier.
tier0
, tier1
, tier2
, tier3
, tier4
, tier5
"tier3"
The type of accounting package the Instance uses as the source of truth for their books.
platformgl
, quickbooks
"platformgl"
The ID of the Instance's parent.
"Kv7sp6Y1gAH2vfNxAWemRy"
The IDs of the Instance's children.
"['A5SswbYm7eZM2ec5q7Hm2t']"
The Instance's parent. Included in expanded responses.
The Instance's children. Included in expanded responses.
"UjL3BQnEaJtecuC7CUeDk"
Indicates the status of the task.
pending
, failed
, complete
"pending"
Indicates the datetime in UTC when the task was created.
"2024-01-01T00:00:00Z"
Indicates the datetime in UTC when the task was last updated.
["2024-01-01T00:00:00Z"]
The Error object if any errors were encountered in the processing. If the processing task was created by a Plaid import, the Plaid errors will be passed through there. See Plaid's documentation for more information on their error messages.
The Plaid error type.
"API_ERROR"
The Plaid error code.
"INTERNAL_SERVER_ERROR"
The Plaid error message.
"An unexpected error occurred."
A display message supplied by Plaid.
"Something went wrong."
The Plaid request identifier.
"KipL51BWnPIpOmi"
The Plaid error type.
"API_ERROR"
The Plaid error code.
"INTERNAL_SERVER_ERROR"
The Plaid error message.
"An unexpected error occurred."
A display message supplied by Plaid.
"Something went wrong."
The Plaid request identifier.
"KipL51BWnPIpOmi"
The status code returned from Plaid.
500
A url to Plaid's documentation about the error.
"https://plaid.com/docs/errors/api/#internal_server_error-or-plaid-internal-error"
Plaid's suggested action to resolve the error.
The status code returned from Plaid.
500
A url to Plaid's documentation about the error.
"https://plaid.com/docs/errors/api/#internal_server_error-or-plaid-internal-error"
Plaid's suggested action to resolve the error.
null
The source account containing the transactions
The ID of the ledger that the transactions are being created for.
"7JRNsKwy2Lw66caxVU7WGC"
The IDs of Transactions successfully processed by this task.
The IDs of Transactions that were removed by this task.
The IDs of Transactions that were modified by this task.
The IDs of Transactions that were skipped by this task.
curl --request GET \
--url https://api.sandbox.teal.dev/v0/sources/plaid/links/status \
--header 'Authorization: Bearer <token>'
{
"next_page_token": "ikal0NEVfMhF8dJf4yQ6KQZmGD",
"prev_page_token": "vuA7JeKI5c6FLnPt5JfRcZcJxW",
"records": [
{
"token_handle": {
"id": "UjL3BQnEaJtecuC7CUeDk",
"type": "plaid",
"date": "2022-01-01T00:00:00Z",
"enabled": true
},
"ledger": {
"id": "7JRNsKwy2Lw66caxVU7WGC",
"name": "Pluto Checking 4242",
"debit_credit": "debit",
"editable": false,
"financial_account_type": "bank_account",
"is_required": false,
"parent": "<any>",
"parent_id": "<string>",
"report_cash_flow": false,
"sort_code": "1400",
"sub_type": "current_assets",
"type": "asset"
},
"instance": {
"id": "RKtPbubK5NcbBsUmU1ktSP",
"entries_start": "2024-01-01T00:00:00Z",
"name": "ACME Goods Inc",
"subscription": "tier3",
"accounting_package": "platformgl",
"parent_id": "Kv7sp6Y1gAH2vfNxAWemRy",
"child_ids": "['A5SswbYm7eZM2ec5q7Hm2t']",
"parent": "<any>",
"children": [
{}
]
},
"txn_processing_task": {
"id": "UjL3BQnEaJtecuC7CUeDk",
"status": "pending",
"created_datetime": "2024-01-01T00:00:00Z",
"updated_datetime": [
"2024-01-01T00:00:00Z"
],
"error": null,
"source_account_id": "<string>",
"ledger_id": "7JRNsKwy2Lw66caxVU7WGC",
"created_transaction_ids": [
"<string>"
],
"removed_transaction_ids": [
"<string>"
],
"modified_transaction_ids": [
"<string>"
],
"skipped_transaction_ids": [
"<string>"
]
}
}
]
}