@cfxlabsinc/b2b-services
    Preparing search index...

    Type Alias TransactionAdminSearchArgs

    Args for TransactionAdminService.search. Mirrors the customer TransactionService.search signature except customerId (required there) is the optional plural customerIds here — admin search spans all customers.

    type TransactionAdminSearchArgs = {
        amount?: { operator: "EQ" | "LTE" | "GTE"; value: BigNumber };
        bankIds?: Required<Transaction["bankId"]>[];
        bankTransactionIds?: Transaction["bankTransactionId"][];
        cardIds?: string[];
        createdAt?: DbTimestampCriteria;
        customerIds?: Customer["id"][];
        entityIds?: Transaction["entityId"][];
        entityTypes?: NonNullable<Transaction["entityType"]>[];
        ids?: Transaction["id"][];
        keys?: string[];
        methods?: Transaction["method"][];
        orderBy?: TransactionOrderBy[];
        page?: number;
        pageSize?: number;
        paymentInstrumentIds?: Transaction["paymentInstrumentId"][];
        query?: string;
        signatures?: string[];
        statuses?: Transaction["status"][];
        subtypes?: Transaction["subType"][] | null;
        types?: Transaction["type"][];
        updatedAt?: DbTimestampCriteria;
        walletAddresses?: Transaction["walletAddress"][];
        window?: { after?: number; before?: number; key: string };
    }
    Index
    amount?: { operator: "EQ" | "LTE" | "GTE"; value: BigNumber }
    bankTransactionIds?: Transaction["bankTransactionId"][]
    cardIds?: string[]
    createdAt?: DbTimestampCriteria
    customerIds?: Customer["id"][]
    entityIds?: Transaction["entityId"][]
    ids?: Transaction["id"][]
    keys?: string[]

    Filter by the computed unique-identity Transaction.key (id-type-subType). Matches raw_rows.key — the same column the window (cursor) path anchors on — so a keys lookup lands the exact read-model rows. Used by get({ key }).

    methods?: Transaction["method"][]
    orderBy?: TransactionOrderBy[]

    Defaults to createdAt DESC

    page?: number

    Defaults to 1

    pageSize?: number

    Defaults to 10

    paymentInstrumentIds?: Transaction["paymentInstrumentId"][]
    query?: string

    Unified 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.

    signatures?: string[]
    statuses?: Transaction["status"][]
    subtypes?: Transaction["subType"][] | null

    Pass values to include only those subtypes; pass null to exclude transactions with a subtype

    types?: Transaction["type"][]
    updatedAt?: DbTimestampCriteria
    walletAddresses?: Transaction["walletAddress"][]
    window?: { 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.