X Enterprises
fastify-xplaid

accounts.getBalance(accessToken, options?)

Get real-time account balances for a Plaid Item.

accounts.getBalance(accessToken, options?)

Fetches real-time balance data. Unlike accounts.get, this makes a live call to the financial institution and returns fresh available and current balance figures.

Signature

fastify.xplaid.accounts.getBalance(
  accessToken: string,
  options?: { accountIds?: string[] }
): Promise<{ accounts: Account[]; item: Item; requestId: string }>

Params

NameTypeRequiredDescription
accessTokenstringYesThe Item's access token
options.accountIdsstring[]NoFilter to specific account IDs

Returns

Same shape as accounts.get — each account.balances includes available, current, limit, and iso_currency_code.

Throws

  • Error: [xPlaid] accessToken is required and must be a non-empty string
  • Plaid API error with .plaidError and .statusCode
  • Note: may throw PRODUCTS_NOT_SUPPORTED if the balance product wasn't enabled

Examples

Show current balance in a dashboard

fastify.get("/balance", async (request) => {
  const item = await getPlaidItem(request.user.id);
  const { accounts } = await fastify.xplaid.accounts.getBalance(item.accessToken);

  return accounts.map((a) => ({
    name: a.name,
    available: a.balances.available,
    current: a.balances.current,
    currency: a.balances.iso_currency_code,
  }));
});

ACH transfer pre-check

async function hasSufficientFunds(accessToken, accountId, amount) {
  const { accounts } = await fastify.xplaid.accounts.getBalance(accessToken, {
    accountIds: [accountId],
  });
  return (accounts[0]?.balances.available ?? 0) >= amount;
}

See also

AI Context

package: "@xenterprises/fastify-xplaid"
method: fastify.xplaid.accounts.getBalance(accessToken, options?)
use-when: Get real-time account balances via a fresh Plaid API call (not cached) — use for payment verification
returns: { accounts: [ { account_id, balances: { available, current, limit } } ] }
Copyright © 2026