List Transactions
Lists transactions for the authenticated exchange app with optional filtering and pagination.
Authentication:
-
REQUIRED: Provide client_id and client_secret via:
-
Basic Auth:
Authorization: Basic base64(client_id:client_secret) -
The
exchange_app_idis automatically derived from authenticated credentials (not accepted as query parameter)
Query Parameters:
status(optional): Filter by transaction status (PENDING, PROCESSING, SUCCESS, FAILED)limit(optional): Number of transactions to return (1-100, default: 50)start_after(optional): Transaction ID to start after for pagination (cursor-based pagination)start_date(optional): Start date for date range filter (ISO 8601 format, e.g., ‘2024-01-01T00:00:00Z’). Filters transactions wherecreated_at >= start_dateend_date(optional): End date for date range filter (ISO 8601 format, e.g., ‘2024-01-31T23:59:59Z’). Filters transactions wherecreated_at <= end_datedetail(optional):fullreturns the legacy wide transaction objects (fullqr_data, duplicate flat recipient columns). Default is slim (smaller payload per row).
Date Range Filtering:
- Both
start_dateandend_dateare optional and can be used independently or together - Dates must be in ISO 8601 format (e.g., ‘2024-01-01T00:00:00Z’)
- If both dates are provided,
start_datemust be before or equal toend_date - Date range filtering is based on the transaction’s
created_attimestamp - Date range can be combined with status filtering
Response:
transactions: Array of transaction objectstotal: Number of transactions returnedlimit: Limit usedhas_more: Whether there are more transactions availablenext_cursor: Transaction ID to use as start_after for next page (if has_more is true)
Note: Transactions are ordered by created_at in descending order (most recent first). When filtering by status, a composite index is required in Firestore. When filtering by date range with status, a composite index is required.
Authentication
Basic Auth: base64(client_id:client_secret)
Query parameters
Scope the list to one registered customer id, or up to 10 comma-separated ids (per-customer history). Cannot be combined with status.
Decimal places for monetary fields in the response (USD amounts, fees, exchange rates). Default 2, which rounds sub-cent fees to 0. Use dp=4 or higher to reconcile against exact deducted totals: at full precision amount_usd + percentage_fee + fixed_fee equals the amount deducted from your balance. Rounding is applied to the response only; all stored values and balance deductions always use full precision.
