1. Getting Plaid items
Once you’ve sent your user’s Plaidaccess_token to Tight, Tight will then fetch and store the associated Plaid “Item”, which is a parent-level object for any given bank. You can obtain all of a given user’s Plaid Items (one per banking institution), by running the following GET request:
| Field | Description | Format |
|---|---|---|
| id | Id of the Plaid Item, for reference within the Tight API | Numeric |
| isInitialReady | Whether the INITIAL Plaid Item webhook has been sent by Plaid, indicating that recent transactions are available | Boolean |
| isHistoricalReady | Whether the HISTORICAL Plaid Item webhook has been sent by Plaid, indicating that historical transactions are available | Boolean |
| apiItemId | Id of the Plaid Item, for reference within Plaid’s API | String |
| apiAccessToken | access_token Plaid Item, for reference within Plaid’s API | String |
| apiInstitutionId | Id of the institution that the transaction originated from | String |
| apiErrorCode | error_code of the Plaid Item error | String |
| apiErrorMessage | error_message of the Plaid Item error | String |
apiErrorCode and apiErrorMessage fields critical to your successful implementation.
2. Getting Plaid accounts
To see the actual bank (and credit card) accounts that your user has linked, you will want to retrieve the user’s Plaid accounts:| Field | Description | Format |
|---|---|---|
| id | Id of the Plaid Item account, for reference within the Tight API | Numeric |
| plaidItemId | Id of the Plaid Item that this account belongs to, for reference within the Tight API | Numeric |
| lastExpenseSyncedDate | Last date that expense transactions were pulled for this account | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
| lastRevenueSyncedDate | Last date that income transactions were pulled for this account | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
| tranStartDate | Earliest transaction date that Tight pulled transactional data from | yyyy-MM-dd |
| tranMinStartDate | Earliest transaction date that Tight can pull transactional data from | yyyy-MM-dd'T'HH:mm:ss.SSSZ |
| apiInstitutionId | Id of the institution that the transaction originated from | String |
| apiAccountName | Name of the account, either assigned by the user or financial institution | String |
| apiAccountType | Type of the account | String |
| apiAccountSubType | Subtype of the account | String |
| apiOfficialName | Official name of the account, as given by the financial institution | String |
| apiMask | Mask of the user’s bank account, often the last 4 digits of the account number | 2-4 Alphanumeric characters |
| apiAvailableBalance | Amount of funds available to be withdrawn from the account | Numeric, with 2 decimal places |
| apiCurrentBalance | Amount of funds in or owed by the account | Numeric, with 2 decimal places |
| apiLimitBalance | Credit or overdraft limit | Numeric, with 2 decimal places |
| autoClassify | Type of auto-classification; for any bank or credit card account that is not a business-only account, use “OFF” | Must be one of the following: “OFF”, “BUSINESS”, “NOT_BUSINESS” |
| defaultBusinessId | Id of the business that transactions from this account should be auto-assigned to; required (and only used) if autoClassify is set to “BUSINESS” | Numeric |
3. Pulling historical transactions
When you link your user’s Plaid accounts to the Tight API, Tight pulls 30 days of transactions by default. Leveraging our experience iterating the Hurdlr app with over 700k+ users, we concluded that 30 days is the best balance between giving users enough information to provide value, but without providing too much information so as to overwhelm them. With that being said, there are many use cases where you or your users may want to pull transactions further back, and Tight makes that easy to do so. For any given Plaid account, you can simply update thetranStartDate field to the desired historical date, and POST that account to the /accounts endpoint:
🚧 ThetranStartDatemust be greater than or equal to thetranMinStartDateon the given account. ThetranMinStartDateis the earliest date that Plaid has transactional data for the given account. That date varies by banking institution as well as when the user first linked with Plaid (including in other applications).
4. Setting an account to business-only
If a user has a business account that they do not commingle personal transactions into, you can set their account up so that every transaction that comes in is automatically classified as a business transaction. For any given Plaid account, you can simply update theautoClassify and defaultBusinessId fields, and POST that account to the /accounts endpoint:
📘 The defaultBusinessId field is not required for users who only have one business; the Tight API will automatically default to the user’s sole business.
5. Removing a Plaid item
If your users wants to unlink a bank altogether, you can unlink the associated Plaid Item by making the following DELETE call, including the relevant Plaid Item’s ID from the Tight API:removeFromPlaid parameter to true will also unlink the account with Plaid, so that Plaid no longer bills you for this item.