What you can retrieve
Retrieve the bank accounts and transactions connected to your own business in Bolta. The API returns the transactions Bolta fetched from the bank as is, and you can request a sync when you need one. Each API key covers the one business it belongs to. You cannot retrieve another business’s accounts.Requirements
These calls deduct no points. Instead, you need a Standard plan or higher. A free trial also qualifies when the trial plan is Standard or higher. When your plan does not qualify, all three paths return402 with PLAN_UPGRADE_REQUIRED. Upgrade your plan from the billing menu in the Bolta dashboard, then call again.
The API does not connect bank accounts. Connect them in the Bolta dashboard first.
Bolta-Client-Reference-Id. Send Basic {apiKey} in the Authorization header. See the authentication guide for details.
Account list
Treat
id as a string even if it looks numeric. The identifier format may change. New bank codes may appear in bank, so display bankName in your UI.
Transactions
Every filter is optional. Without a date range, the API returns every loaded transaction.
status.
amount and balanceAfterTransaction omit trailing decimal zeros. OTHER marks a transaction where the bank reported zero for both the deposit and withdrawal amounts, so amount is 0.
Order and cursor
The API returns transactions in the order they changed in Bolta, not in transaction time order. Newly loaded, visible-again, and hidden transactions all join the end of the feed at the time they change. Bolta re-fetches one day of overlap with the previous sync window, so a transaction with an earlier time can be loaded later. Reconnecting an account can also bring old transactions back with the sameid. Following the change order keeps you from missing these. To show the newest transactions first, sort by transactionAt after you receive them.
The same id can arrive more than once. Apply items by id in the order you receive them.
ACTIVE: Overwrite the item with the sameid, or add it if none exists.REMOVED: Delete the item with the sameid, or ignore it if none exists.
Collection steps
- Call without a cursor, then keep calling with
nextCursoruntilhasMoreisfalse. - Save the last
nextCursor. The API fillsnextCursoreven whenhasMoreisfalse. - On your next collection, call with the saved cursor. You receive only the transactions that changed since then.
400 and INVALID_CURSOR. If you change the filters (from, bankAccountId, and so on), start over without a cursor.
When a Bolta operator cleans up incorrectly loaded transactions directly, those transactions can disappear without a REMOVED item. This is rare, and Bolta notifies you separately when it happens.
Sync request
Bolta fetches transactions periodically. Request a sync only when you need the latest transactions sooner.202 Accepted, and the bank lookup runs asynchronously. Check progress with syncStatus in the account list. When IN_PROGRESS ends, continue fetching transactions with your saved cursor.
Each business can request a sync once every 30 minutes and up to 12 times in 24 hours. nextAvailableAt reflects only the 30-minute interval, not the 24-hour limit. Bolta processes bank lookups one account at a time, so frequent requests do not make the sync faster.
A request rejected because a sync is already running (
409) does not count toward the limit.
Testing with a test key
Test keys return fixed samples regardless of your subscription. They do not query real accounts. A sync request sends no bank lookup and uses no quota.
Transaction
6 is archived, so only status and id come back. Call with limit=3 to see cursor paging across two pages. Filters and cursors follow the same rules as live keys, and test keys skip the 5-minute delay.
Errors
See Error codes for the full list.
