Skip to main content

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.

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 return 402 with PLAN_UPGRADE_REQUIRED. Upgrade your plan from the billing menu in the Bolta dashboard, then call again.
Connect bank accounts in the Bolta dashboard first.
None of the three paths needs issuer registration, a certificate, or Bolta-Client-Reference-Id. Send Basic {apiKey} in the Authorization header. See the authentication guide.

Key limits

Account list

Bank codes

bankCode is the three-digit standard bank code assigned by the Korea Financial Telecommunications & Clearings Institute (KFTC). Bolta supports connecting accounts at these banks: Local NongHyup cooperative accounts also use 011.

Transactions

Without a date range, the API returns every loaded transaction.
The item shape depends on status. 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. 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 same id, or add it if none exists.
  • REMOVED: Delete the item with the same id, or ignore it if none exists.

Collection steps

  1. Call without a cursor, then keep calling with nextCursor until hasMore is false.
  2. Save the last nextCursor. The API fills nextCursor even when hasMore is false. If you use several sets of filters, save a cursor for each.
  3. On your next collection, call with the saved cursor. You receive only the transactions that changed since then.
hasMore can be true even when items is empty. Decide whether to continue from hasMore, not from items.
Right after a sync finishes, wait about 5 minutes before you continue. Send the cursor exactly as received. A cursor is bound to the filters (from, to, bankAccountId, transactionType) and the API key it was issued for. After you change the filters or the API key, start over without a cursor. The API rejects an old cursor with 400 and INVALID_CURSOR. You can change limit on any page.

Sync request

Bolta fetches transactions periodically. Request a sync only when you need the latest transactions sooner.
The API only accepts the request with 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. See Key limits for the request limits. nextAvailableAt reflects only the 30-minute interval, not the 24-hour count. 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, and sync requests use no quota. Transaction 6 is archived, so only status and id come back. Call with limit=3 to see cursor paging across two pages. Test keys skip the 5-minute delay.

Errors

See Error codes for the full list.