Plaid Accounts Expert
Purpose
Provide expert guidance on Plaid account data structures, balance retrieval, account types, and account management.
When to Use
Auto-invoke when users mention:
- Plaid accounts or account data
- Account balances
- Account types (checking, savings, credit)
- Multiple accounts
- Account metadata
- Balance webhooks
- Account updates
Knowledge Base
Plaid accounts documentation in .claude/skills/api/plaid/docs/
Search patterns:
Grep "account|/accounts/get|/accounts/balance" .claude/skills/api/plaid/docs/ -i
Grep "balance|account.*type|account.*subtype" .claude/skills/api/plaid/docs/ -i
Grep "available.*balance|current.*balance" .claude/skills/api/plaid/docs/ -i
Coverage Areas
Account Data
- Account IDs
- Account names
- Account masks (last 4 digits)
- Account types
- Account subtypes
- Official names
Account Types
- Depository (checking, savings, money market)
- Credit (credit card, line of credit)
- Loan (mortgage, student, auto)
- Investment (401k, IRA, brokerage)
- Other (prepaid, cash management)
Balance Information
- Available balance
- Current balance
- Limit (credit accounts)
- ISO currency codes
- Unofficial currency codes
- Real-time balance updates
Account Management
- Multiple account handling
- Account selection UI
- Account persistence
- Account refresh
- Item rotation
Webhooks
- DEFAULT_UPDATE
- NEW_ACCOUNTS_AVAILABLE
- BALANCE updates
- Error notifications
Response Format
## [Accounts Topic]
[Overview of accounts feature]
### API Request
```javascript
const response = await client.accountsBalanceGet({
access_token: accessToken,
});
const { accounts } = response.data;
Response Structure
{
"accounts": [{
"account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",
"balances": {
"available": 100.50,
"current": 110.25,
"limit": null,
"iso_currency_code": "USD"
},
"mask": "0000",
"name": "Plaid Checking",
"official_name": "Plaid Gold Standard 0% Interest Checking",
"type": "depository",
"subtype": "checking"
}]
}
Account Types & Subtypes
Depository:
- checking, savings, hsa, cd, money market, paypal, prepaid
Credit:
Loan:
- auto, business, commercial, construction, consumer, home equity, loan, mortgage, overdraft, line of credit, student
Investment:
- 401k, 403b, 457b, 529, brokerage, cash isa, education savings account, gic, health reimbursement arrangement, ira, isa, keogh, lif, life insurance, lira, lrif, lrsp, non-taxable brokerage account, other, other annuity, other insurance, prif, rdsp, resp, retirement, rlif, rrif, rrsp, sarsep, sep ira, simple ira, sipp, stock plan, tfsa, trust, ugma, utma, variable annuity
Integration Patterns
Balance Checking:
async function checkSufficientFunds(
accessToken,
accountId,
amount
) {
const response = await client.accountsBalanceGet({
access_token: accessToken,
options: { account_ids: [accountId] }
});
const account = response.data.accounts[0];
return account.balances.available >= amount;
}
Multi-Account Selection:
// Let user select from multiple accounts
const accounts = response.data.accounts
.filter(a => a.type === 'depository')
.map(a => ({
id: a.account_id,
name: a.name,
mask: a.mask,
balance: a.balances.available
}));
Best Practices
- Cache account_id, not full account data
- Use /accounts/balance/get for real-time balances
- Handle multiple accounts per Item
- Display mask for user recognition
- Filter by type for specific use cases
- Implement webhook handlers
- Respect balance update frequency
Common Issues
Issue: Stale balance data
Solution: Call /accounts/balance/get for real-time
Issue: Missing available balance
Solution: Use current balance as fallback
Source: .claude/skills/api/plaid/docs/[filename].md
## Key Endpoints
- `/accounts/get` - Get account metadata
- `/accounts/balance/get` - Get real-time balances
- `/item/get` - Get Item (institution connection) info
## Balance Types
**Available Balance:**
- Amount available for withdrawal/spending
- Accounts for pending transactions
- Use for payment authorization
**Current Balance:**
- Total account balance
- May include pending holds
- Use for display purposes
**Limit:**
- Credit limit (credit accounts only)
- null for non-credit accounts
## Always
- Reference Plaid documentation
- Explain balance types clearly
- Handle multiple accounts
- Show type/subtype usage
- Include webhook integration
- Consider real-time requirements
- Provide account selection patterns
---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/raintree-technology) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->
1---2name: plaid-accounts-expert3description: Expert on Plaid accounts and account management. Covers account data retrieval, balance checking, account types, multi-account handling, and account webhooks. Invoke when user mentions Plaid accounts, account balance, account types, or account management. Use when this capability is needed.4---56# Plaid Accounts Expert78## Purpose910Provide expert guidance on Plaid account data structures, balance retrieval, account types, and account management.1112## When to Use1314Auto-invoke when users mention:15- Plaid accounts or account data16- Account balances17- Account types (checking, savings, credit)18- Multiple accounts19- Account metadata20- Balance webhooks21- Account updates2223## Knowledge Base2425Plaid accounts documentation in `.claude/skills/api/plaid/docs/`2627Search patterns:28- `Grep "account|/accounts/get|/accounts/balance" .claude/skills/api/plaid/docs/ -i`29- `Grep "balance|account.*type|account.*subtype" .claude/skills/api/plaid/docs/ -i`30- `Grep "available.*balance|current.*balance" .claude/skills/api/plaid/docs/ -i`3132## Coverage Areas3334**Account Data**35- Account IDs36- Account names37- Account masks (last 4 digits)38- Account types39- Account subtypes40- Official names4142**Account Types**43- Depository (checking, savings, money market)44- Credit (credit card, line of credit)45- Loan (mortgage, student, auto)46- Investment (401k, IRA, brokerage)47- Other (prepaid, cash management)4849**Balance Information**50- Available balance51- Current balance52- Limit (credit accounts)53- ISO currency codes54- Unofficial currency codes55- Real-time balance updates5657**Account Management**58- Multiple account handling59- Account selection UI60- Account persistence61- Account refresh62- Item rotation6364**Webhooks**65- DEFAULT_UPDATE66- NEW_ACCOUNTS_AVAILABLE67- BALANCE updates68- Error notifications6970## Response Format7172```markdown73## [Accounts Topic]7475[Overview of accounts feature]7677### API Request7879```javascript80const response = await client.accountsBalanceGet({81 access_token: accessToken,82});8384const { accounts } = response.data;85```8687### Response Structure8889```json90{91 "accounts": [{92 "account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",93 "balances": {94 "available": 100.50,95 "current": 110.25,96 "limit": null,97 "iso_currency_code": "USD"98 },99 "mask": "0000",100 "name": "Plaid Checking",101 "official_name": "Plaid Gold Standard 0% Interest Checking",102 "type": "depository",103 "subtype": "checking"104 }]105}106```107108### Account Types & Subtypes109110**Depository:**111- checking, savings, hsa, cd, money market, paypal, prepaid112113**Credit:**114- credit card, paypal115116**Loan:**117- auto, business, commercial, construction, consumer, home equity, loan, mortgage, overdraft, line of credit, student118119**Investment:**120- 401k, 403b, 457b, 529, brokerage, cash isa, education savings account, gic, health reimbursement arrangement, ira, isa, keogh, lif, life insurance, lira, lrif, lrsp, non-taxable brokerage account, other, other annuity, other insurance, prif, rdsp, resp, retirement, rlif, rrif, rrsp, sarsep, sep ira, simple ira, sipp, stock plan, tfsa, trust, ugma, utma, variable annuity121122### Integration Patterns123124**Balance Checking:**125```javascript126async function checkSufficientFunds(127 accessToken,128 accountId,129 amount130) {131 const response = await client.accountsBalanceGet({132 access_token: accessToken,133 options: { account_ids: [accountId] }134 });135136 const account = response.data.accounts[0];137 return account.balances.available >= amount;138}139```140141**Multi-Account Selection:**142```javascript143// Let user select from multiple accounts144const accounts = response.data.accounts145 .filter(a => a.type === 'depository')146 .map(a => ({147 id: a.account_id,148 name: a.name,149 mask: a.mask,150 balance: a.balances.available151 }));152```153154### Best Practices155156- Cache account_id, not full account data157- Use /accounts/balance/get for real-time balances158- Handle multiple accounts per Item159- Display mask for user recognition160- Filter by type for specific use cases161- Implement webhook handlers162- Respect balance update frequency163164### Common Issues165166- Issue: Stale balance data167- Solution: Call /accounts/balance/get for real-time168169- Issue: Missing available balance170- Solution: Use current balance as fallback171172**Source:** `.claude/skills/api/plaid/docs/[filename].md`173```174175## Key Endpoints176177- `/accounts/get` - Get account metadata178- `/accounts/balance/get` - Get real-time balances179- `/item/get` - Get Item (institution connection) info180181## Balance Types182183**Available Balance:**184- Amount available for withdrawal/spending185- Accounts for pending transactions186- Use for payment authorization187188**Current Balance:**189- Total account balance190- May include pending holds191- Use for display purposes192193**Limit:**194- Credit limit (credit accounts only)195- null for non-credit accounts196197## Always198199- Reference Plaid documentation200- Explain balance types clearly201- Handle multiple accounts202- Show type/subtype usage203- Include webhook integration204- Consider real-time requirements205- Provide account selection patterns206207---208> Converted and distributed by [TomeVault](https://tomevault.io/claim/raintree-technology) — claim your Tome and manage your conversions.209<!-- tomevault:4.0:skill_md:2026-04-11 -->