Skip to main content

List Transactions

Every transaction — trades, crypto transfers, bank transfers and ACH pulls, platform fees — newest first, whichever API version created it.

The v3 counterpart of GET /api/v2/transactions, which keeps working. The ids are the same transactions under a txn_ prefix, and each row carries its kind's own detail in snake_case.

A workspace-scoped key lists the whole workspace's transactions, or one account's with account_id; an account-scoped key lists its own account's.

Authorization:

Every request is signed with your API key: a short-lived JWT, signed with your private key, sent in one header on /v3/* and /api/v2/* alike.

Headers:
Authorization: APIKey {SIGNED_JWT}

How to build and sign the JWT: Authentication.

Endpoint

GET

/v3/transactions

Query parameters​

ParameterTypeDescription
account_idstring (cst_…)Only this account's transactions. An account-scoped key lists its own and may omit it.
transaction_typestringComma-separated kinds: crypto, bank, trade, platform_fee. Absent lists every kind.
statusstringComma-separated statuses, each the word the transaction's rail uses (for example pending,processing).
sidestringbuy or sell: only trades on that side.
instrument_typestringComma-separated bank rails: ach, wire, swift, clabe, debitcard, phonenum, pix, cvu, transfer.
wire_typestringdomestic or international: only wires of that kind.
directionstringdeposit or withdraw: only bank and crypto transfers that way. Trades have no direction and drop out.
coinstringOnly transactions that touched this currency (any casing). A trade matches on either leg.
created_at_gtestring (date-time)Only transactions created at or after this instant.
created_at_ltstring (date-time)Only transactions created before this instant.
qstringFree text, at least 3 characters once trimmed, over the reference, the ids, the account's email, the coins, the kind, the status and the side, rail or direction. An id the API returned — txn_…, wtx_…, ach_… — finds the transaction it names.
pageintegerPage number, from 1. Default 1.
limitintegerRows per page. Default 25, at most 100: a larger value is capped at 100 (see Lists).

Response Sample​

{
"data": [
{
"id": "txn_01m5d6g7cceefv3dc12dc9jb3y",
"reference": "ach_01m5d6g7cceefv3dc12dc9jb3y",
"account_id": "cst_01h455vb4pex5vsknk084sn02q",
"account_email": "eric.brown@acme.com",
"account_name": "Eric Brown",
"type": "bank",
"status": "completed",
"status_reason": "Hold over, credit available",
"status_history": [
{ "status": "pending", "at": "2026-10-20T17:42:00Z" },
{ "status": "processing", "at": "2026-10-20T17:47:00Z" },
{ "status": "completed", "reason": "Hold over, credit available", "at": "2026-10-21T04:18:26Z" }
],
"coins": ["USD"],
"bank": {
"direction": "deposit",
"instrument_type": "ach",
"currency": "USD",
"amount": "100",
"total": "100",
"reserved": "10",
"sender": { "name": "Eric Brown", "bank_name": "Wells Fargo", "account_number": "••••3168" },
"ach_pull_id": "ach_01m5d6g7cceefv3dc12dc9jb3y"
},
"created_at": "2026-10-20T17:42:00Z",
"updated_at": "2026-10-21T04:18:26Z"
}
],
"page": 1,
"limit": 25,
"total_items": 1,
"total_pages": 1
}

Response Schema​

FieldTypeDescription
dataarrayThe transactions on this page, each with the fields of a Get a Transaction response.
page, limit, total_items, total_pagesintegerPagination, as described in the API v3 overview.

Errors​

StatusmessageWhen
400failed to parse requestpage or limit is not an integer, account_id is not a cst_… id, or a created_at_* bound is not a date-time.
400invalid_transaction_typetransaction_type names a kind that does not exist.
400invalid_instrument_typeinstrument_type names a rail that does not exist.
400window_invertedcreated_at_lt is not after created_at_gte.
401unauthorizedMissing or invalid signature.
403forbiddenAn account-scoped key named another account in account_id.
422validation messageside, wire_type or direction is not one of its values, or q is shorter than 3 characters once trimmed.

Support and Resources​

If you need assistance or have any questions, our support team is here to help. You can contact our support team at support@blockwyre.com.

Stay Updated​

Stay up-to-date with the latest news, updates, and features from BlockWyre by following us on social media:

We are excited to have you on board and look forward to seeing how you leverage BlockWyre's powerful tools to enhance your financial operations. Happy integrating!