Skip to navigation

List Transactions

View as Markdown

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_id is 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 where created_at >= start_date
  • end_date (optional): End date for date range filter (ISO 8601 format, e.g., ‘2024-01-31T23:59:59Z’). Filters transactions where created_at <= end_date
  • detail (optional): full returns the legacy wide transaction objects (full qr_data, duplicate flat recipient columns). Default is slim (smaller payload per row).

Date Range Filtering:

  • Both start_date and end_date are 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_date must be before or equal to end_date
  • Date range filtering is based on the transaction’s created_at timestamp
  • Date range can be combined with status filtering

Response:

  • transactions: Array of transaction objects
  • total: Number of transactions returned
  • limit: Limit used
  • has_more: Whether there are more transactions available
  • next_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

AuthorizationBasic

Basic Auth: base64(client_id:client_secret)

Query parameters

statusstringOptional
customer_idstringOptional

Scope the list to one registered customer id, or up to 10 comma-separated ids (per-customer history). Cannot be combined with status.

limitintegerOptional1-100
start_afterstringOptional
start_datedatetimeOptional
end_datedatetimeOptional
dpintegerOptional0-10Defaults to 2

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.

Response

OK
transactionslist of objects
totalinteger
limitinteger
has_moreboolean
next_cursorstring or nullOptional

Errors

400
Bad Request Error
401
Unauthorized Error