Skip to main content
GET
List Transactions Across Accounts
Every transaction across all the accounts you manage — your own and each account you have onboarded — newest first, in one call. This is the endpoint to reconcile against. List Wallet Transactions returns one account at a time, so reconciling a book of accounts through it means one request per account and then working out yourself which rows came from where. Here, each row names the account it belongs to.
Available to partner API keys — a key that manages onboarded accounts. An ordinary key receives 403.

What it includes

Everything that happened, so a reconciliation balances:
  • Failed movements. A payout that failed still debited and returned the money. The per-account endpoints leave these out of their default view — this one reports them, because a ledger that never sees the reversal cannot be balanced against ours.
  • Deposits still awaiting confirmation, reported with status: "pending". Funds have been detected but are not yet final, so treat them as expected rather than settled.
Pass status to narrow it yourself — status=completed for settled activity only.

Amounts

Amounts on this endpoint are in major units12.50 means $12.50 — and may carry decimals.
Webhook payloads report the same amount in minor units. One fee, two surfaces:Both are $2.00. If you join a webhook to a row here — following fee_transaction_id to its FEE-* row, for instance — convert before you compare, or the two will differ by a factor of 100.We intend to make this consistent. Changing it would silently alter every amount for integrations already reading this endpoint, so it will come as a versioned change with notice rather than in place.

Paging

page and pageSize, the same as every other transaction listing on this API. pageSize defaults to 20 and caps at 100.
totalPages tells you how many pages to collect; hasMore is false on the last one.
Reconcile over a closed date range. Ask for a day that has finished — startDate=2026-08-19&endDate=2026-08-19 — and then page through it. Paging an open-ended list while transactions are still arriving means new rows land at the top and shift everything down, so a row can move past a page boundary between two calls and never be returned. A range that is already closed cannot take new rows, so the pages are stable while you read them.

Filtering

currency, transactionType, status, startDate, endDate and search all apply across every account, not just your own. A daily run typically filters by date:
To pull only the fees charged to you, filter on the type:

CSV

Add format=csv for the same rows as a file, for a finance team that works in a spreadsheet:
Paging comes back in the X-Total-Count and X-Total-Pages response headers, since a CSV body has nowhere to carry it.

Reconciling fees

When a fee is charged to your account rather than to the account that incurred it, it is a transaction on your account in its own right — transaction_type: "fee", reference FEE-XXXXXXXX — and it appears in this feed alongside the movement that caused it. The two are linked in both directions: So a fee never has to be matched by amount or timing. A fee appears here as soon as it is held, with status: "pending" — that is when your available balance moves, not when the fee posts. It reaches completed when the money is actually taken, or failed if the transaction that incurred it was unwound and the hold released. To be told at each of those points rather than discovering them on the next run, subscribe to fee.pending, fee.charged and fee.released.
transaction_id is the stable identifier. external_reference is yours to recognise a transaction by, but id is what we guarantee for the life of the transaction — key your records on it.

Query Parameters

page
integer
default:1

Page number, starting at 1.

Required range: x >= 1
pageSize
integer
default:20

Rows per page. Caps at 100, matching the per-account listing.

Required range: 1 <= x <= 100
currency
string

Filter by source currency, e.g. USD.

transactionType
enum<string>

Filter by type. Use fee to list only fees charged to you.

Available options:
deposit,
withdrawal,
fx_withdrawal,
swap,
transfer,
fee
status
string

Filter by status, e.g. completed.

startDate
string

Inclusive start, YYYY-MM-DD or ISO-8601.

endDate
string

Inclusive end, YYYY-MM-DD or ISO-8601.

Match on external reference.

format
enum<string>

csv returns the same rows as a file; paging comes back in the X-Total-Count and X-Total-Pages headers.

Available options:
json,
csv

Response

A page of transactions

success
boolean
message
string
data
object