1. How it works
Through Tight’s Plaid or MX integration, your user’s transactions are pulled into Tight as soon as Plaid makes them available. All of those transactions are then run through Tight’s proprietary algorithms, which leverage the user’s business type, accountant best practices, and the behavior of similar businesses within the Tight API’s 1.3M+ users. The expense transactions are then categorized in three primary ways: a) Business Categories: Tight uses categories specific to the user’s business, which a non-accountant business owner can understand. For example, an Uber driver’s expense might be categorized as “Car Wash”. b) Tax Categories: All expenses are also mapped to a tax category, which an accountant can easily understand. Transactions are also mapped to specific line items on the 1040 Schedule C, 1065, 1120S, and 1120. c) Personal Categories: Tight also assigns a personal category (e.g. “Pets”, “Childcare”) to each expense, to handle scenarios where a business owner might accidentally charge a personal expense to a business account.2. Displaying the user’s expenses and allowing them to make edits
You can easily allow your users to view their expenses and make quick edits to categories, including the ability to split across multiple categories (e.g. for an Amazon order), by rendering Tight Embedded’s Expense Dashboard.3. Programmatically getting the user’s expenses
If you are building your own user experience or want to perform programmatic processing on a user’s expenses, you can retrieve those expenses from the Tight API. On each expense, you may find the following attributes to be of particular interest:| Field | Description | Format |
|---|---|---|
| id | Id of the expense record | Numeric |
| type | Type of expense | Must be one of the following: “PENDING”, “BUSINESS”, “NOT_BUSINESS” |
| date | Date that the expense was incurred | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
| amount | Total value of the expense | Numeric, with 2 decimal places |
| categoryId | Id of the associated business expense category | Numeric |
| personalCategoryId | Id of the associated personal expense category | Numeric |
| confidence | Deduction confidence of the expense transaction | Must be one of the following: “LIKELY”, “UNLIKELY”, “QUESTIONABLE” |
| vendorName | Name of the vendor that the expense was incurred with | Any string |
| vendorId | Id of the associated vendor | Numeric |
| businessId | Id of the business that this was assigned to; only populated if type == “BUSINESS | Numeric |
| clientId | Id of the client that this was assigned to; optional, only populated if type == “BUSINESS | Numeric |
| lastUpdatedDate | The last date/time that this record was modified | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
| Field | Description | Format |
|---|---|---|
| apiInstitutionId | Id of the institution that the transaction originated from | Any string |
| apiAccountName | Display name for the user’s bank account | Any string |
| apiAccountNo | Mask of the user’s bank account, often the last 4 digits of the account number | 2-4 Alphanumeric characters |
| plaidItemAccountId | Id of the bank account that this transaction originated from (within Tight’s API) | Numeric |
| apiName | Name of the API that this transaction originated from | Will always be “PLAID”, unless you are utilizing one of Tight’s other direct integrations |
| apiExpenseId | Id of the transaction record in Plaid’s API | Any string |
| bankDescription | Transaction description (similar to what will show on the user’s bank statement) | Any string |
4. Identifying a transaction’s business categorization
On each expense transaction, you will see acategoryId field, which maps to one of Tight’s business-specific expense categories. To pull a user’s business expense categories, you can make the following GET call. Be sure to include that user’s access_token in the headers.
| Field | Description | Format |
|---|---|---|
| id | Id of the expense category record | Numeric |
| name | Name of the business-specific expense category | Any string |
5. Taking advantage of Tight’s learning abilities
Tight’s algorithms get smarter over time, automating more and more of your users’ actions. Tight’s A.I. suggests expense rules for each specific user, which can be easily fetched:| Field | Description | Format |
|---|---|---|
| id | Id of the rule record | Numeric |
| transactionName | Name of the transaction to determine whether it matches the rule | Any string |
| matchType | Type of matching algorithm applied | Must be one of the following: “EXACT_NAME”, “NON_EXACT_NAME” |
| autoClassify | Type of auto-classification | Must be one of the following: “OFF”, “BUSINESS”, “NOT_BUSINESS” |
| suggestedStatus | Status of the A.I.-based rule suggestion | Must be one of the following: “PENDING”, “ACCEPTED”, “DECLINED”, “DELETED” |
suggestedStatus to “ACCEPTED”: