Updates and improvements to Teal

Improvements & fixes

Added support for changing a transaction's description when Updating a Transaction.

Added support for specifying a start_date when Linking a Plaid Account. Only transactions after this date will be imported.

Improvements & fixes

  • Fixed bug that resulted in duplicate Journal Entries being created for some Transactions.

Improvements & fixes

Improvements & fixes

  • Added ledger_id field to the List Top Expenses endpoint response.
  • Fixed bug preventing Journal Entries from being deleted.
  • Fixed bug resulting in manually deleted Plaid transactions being recreated after a Plaid sync.
  • Added new logic to further clean up Plaid transactions descriptions to improve end-user readability.

Improvements & fixes

  • Updated parsing on Plaid transaction descriptions to further improve readability.
  • Improved error message for requests to update Plaid webhooks.
  • Fixed bug preventing transaction sources from being deleted when end-user revokes Plaid p-token.
  • Fixed bug preventing tier4 Instances from using Tags.

Improvements & fixes

  • Introduced the Get Quickbooks Sources endpoint to check if an instance has been linked to QuickBooks.
  • Added the ability to upload external files to Journal Entries.
  • Added the ability to define financial_account_type on ledger templates.
  • Added parsing on Plaid transaction descriptions to improve readability.
  • Improved error handling when a user attempts to create an Instance without a valid CoA Template.

Improvements & fixes

  • Added the ability to update an Instance’s name and it's entries_start date.
  • Fixed a bug that allowed required ledgers to be deleted.

Expanding responses

Developers can now use the expand parameter to request data of nested resources. For example, a Journal Entry object has several line entries; by using the expand parameter, you can request the full Line Entry objects using a single request. Expandable requests are noted in attribute descriptions throughout the API reference.

Read more about expanding responses here.

Instance-level categorization rules

We have added the ability to create instance-level categorization rules. This allows you to give end users the ability to set their own custom rules that are specific to their business.

Read more about our categorizer here.

Rate limiting

Every API response is now accompanied with standard rate limiting headers. Use these values to gauge how many requests can be made before reaching the limit.

  • All platform-level requests have a combined rate limit of 120 requests/minute.
  • All instance-level requests have a combined rate limit of 320 requests/minute.

In addition, the Refresh Ledger Transactions endpoint has an additional rate limit of 2 requests/minute. Read more in the docs.

Improvements & fixes

Tag Rules

You can now define Instance-level rules to apply Tags to Transactions automatically. This allows you to build advanced workflows and reduce the amount of time spent your customers spend tagging Transactions. You can create Tag Rules using the same expression language as categorization rules through the API. Read more about crafting categorization expressions and Tags or explore the Tag Rules Endpoints.

Improvements & fixes

  • Add ability to filter Get Transaction Categories by tag_id
  • Fix a bug where Uncategorized transactions were not posted if AI categorization was enabled
  • Add ability to bulk-untag a set of transactions
  • Implement tag rules API
  • Publish "unlink" Plaid account endpoint
  • Publish "delete" Plaid account endpoint
  • Add the ability to update the authentication for a linked Plaid account
  • Get COA template returning 503 when COA template has parent
  • Fix a bug where Plaid transactions with long descriptions caused an error when saving
  • Increase pagination max limit to 1000
  • Add start_date and end_date to transaction endpoints
  • Add duplicate checking when syncing Plaid transactions after updating auth token
  • Fix a bug where unposted transactions could not be returned from the transactions endpoint
  • Fix a bug where the time of all Plaid transactions was incorrectly set to midnight


A Supplier tag group with many tags below it

Tags give your users to the ability filter their accounting reports by customizable groups, offering a more detailed and granular view of their business. Whether tracking profitability by job, assessing performance by location, or managing fund tracking, Tags provide a flexible solution for various segment tracking use cases.

An instance needs a tier 3 subscription in order to filter their reports using tags.

Read more about Tags here.

Improvements & fixes

  • Fixed a bug where inclusive date ranges excluded the end date
  • Updated the status code from 503 to 404 when requesting the category for a transaction that does not exist
  • Added a categorization_method attribute to the Transaction object. This attribute can be used to enable more sophisticated Transaction Review workflows

Webhooks dashboard

A screenshot showing the webhooks dashboard

We have added a dashboard to the developer portal to configure and manage your Teal webhooks. We send currently webhooks events to inform you of changes to your Plaid-linked ledgers and will be adding webhooks for other data integrations and relevant endpoints in the future. Read more about our Plaid integration and configuring webhooks here.

Improvements & fixes

  • Updated Cash Flow report to display the signs for revenue and expense amounts following a "money in" / "money out" convention.
  • Updated several attributes on the Cash Flow Report to clarify definitions:
    • Top level keys:
      • starting_debit_balance was renamed to starting_cash_balance
      • ending_debit_balance was renamed to ending_cash_balance
    • starting_balance and ending_balance keys:
      • debit_balance was renamed to cash_balance
      • total_debit_amount was renamed to total_cash_balance
    • cash_flow_ledgers keys:
    • debit_amount was renamed to net_cash_flow
    • total_debit_amount was renamed to total_net_cash_flow
    • Line keys that were renamed:
      • debit_amount was renamed to amount
  • Add the option to automatically calculate the opening balance of a Plaid linked ledger
  • Add a balance checker for Plaid linked ledgers
  • Add the ability to refresh transactions from Plaid

Reviewing Transactions

A screenshot of the Teal demo app, showing an example of the reviewing transactions workflow

We have added a review_status field to the Transactions object. Transactions are now created with review_status = unreviewed, and you can update this status as you see fit. For example, you can use review_status to implement a workflow for your users to review and confirm Transaction categories that have been assigned by the Categorizer. Click here to view our guide on building this core accounting workflow.

Similar Transaction Categorizer

Detail illustration of the auto-categorizer pipeline. The new categorizer for similar transactions is highlighted.

We have added a new categorizer that selects a category based on similar transactions that have previously been categorized by either rules, AI, or the user. Over time, as more transactions are categorized within an instance, this categorizer becomes more effective.

Improvements & fixes

  • Updated the recategorize transaction endpoint to allow for categorizing of un-posted transactions.
  • Added pagination for list endpoints.
  • Improved speed of AI categorizer.