List bank transactions

Returns a paginated list of bank transactions for authorized accounts, with filtering,
sorting and pagination (_start / _end, default 25 items). Each transaction embeds its
related entities: recipient (with bank details), sender, bank_errors,
payables (if the Pay product is activated) and payroll (if applicable).

Authorization

  • Regular users can only view transactions from accounts they have access to through a bank key.
  • The company-id header also drives wallet-transaction visibility: wallet transactions inscribed by other users are hidden unless you hold wallet_transactions_view_all in the company set on the header. The scope applies this rule in SQL (with_wallet_visibility), so the same request under a different company-id can return a different set of wallet transactions.

Filtering

The per-field operators in Filters$gt, $gte,
$lt, $lte, $in, $nin, $ne, $regex — work on every column listed in
Query parameters, passed as the value of that column (?amount={"$gte":100000}).
A field name that is not a real column is rejected with 400
({"type": "invalid_query", "error": "Unknown field: …"}) — check the list below before
inventing one.

$or is not a per-field operator: it is a top-level query parameter of its own, taking an
array of filter objects (?$or=[{"status":"draft"},{"amount":{"$gt":100000}}]). Writing it
inside a field — ?amount={"$or":…} — does not do what you expect. See
Logical OR operations.

amount is an integer in the minor unit of the account's currency, which for CLP is
the whole peso — see Amounts and currency.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
integer
≥ 0

If all the transactions where in an array, this would represent the index of the first item returned in the response

integer
≥ 0

If all the transactions where in an array, this would represent the index of the last item returned in the response

string
enum

The order method, which can be ascending or descending

Allowed:
string

The field used to sort, the example illustrates a response that would be sorted by the creation date

string

Only as an example of filtering results that have an amount less than $11000.
For more detailed explanation, go to the How to filter results section.

uuid

Filter transactions by sender bank account ID. Optional: the result set is already
scoped to the accounts you can reach through a bank key, so omitting it returns all of
them. Pass it to narrow the list to one account.

string

Filter by transaction status. Supports JSON operators:

  • Single status: "approved"
  • Multiple statuses: {"$in": ["approved", "declined"]}
  • Exclude status: {"$ne": "draft"}

Available statuses:

  • draft: Initial state when transaction is created
  • enqueued: Transaction queued for processing
  • dequeued: Transaction removed from queue
  • preauthorized: Transaction preauthorized by bank
  • declined: Transaction declined by bank
  • approved: Transaction approved and processed
  • payroll_authorized: The payroll this transaction belongs to was authorized; the bank has not yet reported the per-line outcome
uuid

Filter transactions by recipient ID

uuid

Filter transactions belonging to a specific payroll

string

Filter by creation date using JSON operators:

  • After date: {"$gte": "2025-01-01T00:00:00Z"}
  • Before date: {"$lt": "2025-02-01T00:00:00Z"}
  • Date range: {"$gte": "2025-01-01T00:00:00Z", "$lt": "2025-02-01T00:00:00Z"}
string

Filter by last update date. Same operators as created_at.

string

Filter by the bank's external transaction ID

string

Filter by transaction description. Supports:

  • Exact match: "Pago gastos"
  • Partial, case-insensitive match: {"$regex": "gastos"} (POSIX ~*)

There is no $like / $ilike operator — use $regex. See
How to filter results for the full operator set.

string

Find transaction by idempotency key (useful for checking duplicate prevention)

uuid

Filter transactions by the company that owns them

string

Filter by current transition state:

  • enqueue: Being queued for processing
  • dequeue: Being removed from queue
  • authorize: Being authorized
  • preauthorize: Being preauthorized
  • remove: Being removed
  • null: No active transition
Headers
uuid
required

UUID of the company on whose behalf the request is made. Send it on banking
requests to identify the acting company. Note that user-scoped list endpoints
(e.g. the recipients/transactions indexes) resolve results across all companies
the authenticated user is a member of, rather than strictly from this header.
See The company-id header for details on how to obtain
a value for this header and the error responses to expect when it is missing or invalid.

Responses

401

Unauthorized — typically missing/invalid Authorization or missing company-id header.
The response body is empty for this guard. Branch your client logic on the status code,
not the body. See Errors for details.

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json