Aggregate transaction totals grouped by (method, type, status).
Single GROUP BY query against the same UNION used by search, but skips
the outer entity / ledger / solana enrichment — aggregation only needs
(method, type, status, amount). Use this instead of paging through
search when you only need bucketed sums (e.g. the home-page money-
movement widget).
OptionalcreatedAt?: DbTimestampCriteriaOptionalmethods?: (Optionalstatuses?: ("PROCESSING" | "COMPLETED" | "FAILED" | "RETURNED")[]Optionalsubtypes?: ("RETURN" | "FEE" | "CLEARING" | undefined)[] | nullPass values to include only those subtypes; pass null to exclude transactions with a subtype
Returns the base UNION query (all selects enabled, scoped to the given customer) as an inlined SQL string. Useful for debugging prod issues against a specific customer.
Bust both transaction caches for a customer. Public seam for in-process
readers/writers (e.g. the dashboard's transfer server action) and the
cross-service TransactionCacheBuster. Tags are the external string
customerId — the same value search / aggregateTotalsByMethod write.
Optionalamount?: { operator: "EQ" | "LTE" | "GTE"; value: BigNumber }OptionalbankIds?: (string | undefined)[]OptionalbankTransactionIds?: (string | undefined)[]OptionalcardIds?: string[]OptionalcreatedAt?: DbTimestampCriteriaOptionalentityIds?: string[]OptionalentityTypes?: NonNullable<"IDENTITY" | "ORGANIZATION" | null>[]Optionalids?: string[]Optionalkeys?: string[]Filter by the computed unique-identity Transaction.key
(id-type-subType). Matches raw_rows.key. Kept in lockstep with
TransactionAdminSearchArgs.keys.
Optionalmethods?: (OptionalorderBy?: TransactionOrderBy[]Defaults to createdAt DESC
Optionalpage?: numberDefaults to 1
OptionalpageSize?: numberDefaults to 10
OptionalpaymentInstrumentIds?: (string | undefined)[]Optionalquery?: stringUnified free-text search: case-insensitive substring match across transaction id, signature, bank transaction id, payment instrument id, card id, customer id/name, entity id/name/email, organization id, wallet address, account name/id, counterparty name, description, and other-wallet fields. Whitespace-only values are a no-op.
Optionalsignatures?: string[]Optionalstatuses?: ("PROCESSING" | "COMPLETED" | "FAILED" | "RETURNED")[]Optionalsubtypes?: ("RETURN" | "FEE" | "CLEARING" | undefined)[] | nullPass values to include only those subtypes; pass null to exclude transactions with a subtype
Optionaltypes?: ("CREDIT" | "DEBIT")[]OptionalupdatedAt?: DbTimestampCriteriaOptionalwalletAddresses?: (Address | null)[]Optionalwindow?: { after?: number; before?: number; key: string }Cursor window around a specific row. When set, SUPERSEDES page/
pageSize and returns the contiguous slice of THIS query's result set
(same filters/conditions AND same orderBy): before rows preceding
the anchor + the anchor row + after rows following it. The anchor is
the row whose computed Transaction.key equals window.key. Works
for any orderBy (a key DESC tiebreak makes the order total). Unknown
key → empty result. hasNext is always false on the window path.
before/after default to 10.
Entity external ids the customer has transacted with, ordered by recency
(most recently transacted first). Mirrors the uncached
TransactionAdminService.searchEntities but scopes to a single
customerId, optionally filters by entityType, and ranks distinct
entities by MAX(created_at) instead of returning an unordered DISTINCT
set.
No caching (mirrors the admin method).
Payment-instrument external ids the customer has transacted with, ranked by
usage (most-used first). Mirrors the uncached
TransactionAdminService.searchPaymentInstrumentIds but scopes to a
single customerId and ranks by COUNT(*) instead of returning a flat
DISTINCT set. Skips the outer entity / ledger / solana enrichment —
ranking only needs (payment_instrument_id, method, created_at).
No caching (mirrors the admin method).
Read-only query services to fetch normalized transactions across all products
If you need more info about a transaction, fetch it using its specific service. Transaction Service will remain generic and high-level.