Account types today
The public API uses the canonical account type enum:checking · savings · moneyMarket · creditCard · loan · investment · wallet · other · unknown
Current balance fields
Balance values are signed decimal strings (e.g.
"1234.56"). They may be null if the institution does not expose them.
Daily balance history
UseGET /v1/balances when you need date-indexed balance rows for reconciliation, reporting, or cash position views. The endpoint returns projected balances visible to your API key, ordered by date desc, accountId asc.
Each balance row belongs to an account, connection, and entity, and includes:
Balance rows are mutable projections. After a connection sync or transaction backfill, call
GET /v1/balances again for the date ranges you care about instead of treating previously fetched rows as immutable ledger snapshots.entityId, connectionId, accountId, dateGte, dateLt, and updatedAtGte. Use cursor and limit to page through larger ranges; cursors are valid only with the same query filters.
For incremental restatement ingestion, bootstrap normally, then poll with updatedAtGte. When updatedAtGte is supplied, rows are ordered by updatedAt asc, accountId asc, date asc. Follow every page, upsert by (accountId, date), and expect duplicate rows at the saved watermark because the lower bound is inclusive.
Payment identifiers
Accounts expose canonical routing details throughpaymentIdentifiers. Each identifier is typed by scheme, and all bank account values are strings so leading zeros are preserved.
Current schemes include:
Example:
accountNumber is the best available account identifier when known. It may be a domestic account number or another provider-supplied identifier such as an IBAN. Use paymentIdentifiers for canonical payment-ready details.
The legacy flat fields routingNumber and swiftBic are deprecated and always return null. Use paymentIdentifiers for routing and BIC details when available.
Filtering
GET /v1/accounts supports filtering by connectionId, entityId, type, currency, and status. The type filter uses the same canonical account type enum shown above. Use fields= to request a sparse fieldset and reduce payload size.