Skip to main content
GET
/
v1
/
accounts
/
{account_id}
/
portfolio
/
transactions
curl
curl -X GET "https://api.services.payward.com/v1/accounts/ABCD1234EFGH5678/portfolio/transactions" \
  -H "API-Key: $PWS_API_KEY" \
  -H "API-Nonce: $PWS_API_NONCE" \
  -H "API-Sign: $PWS_API_SIGN"
{
  "data": [
    {
      "id": "tx_01J0M7C0Z9F8YX3GQH8E",
      "timestamp": "2026-04-15T13:42:18.000Z",
      "type": "simple_order",
      "status": "successful",
      "spend": {
        "timestamp": "2026-04-15T13:42:18.500Z",
        "sub_total": {
          "symbol": "USD",
          "name": "US Dollar",
          "type": "fiat",
          "amount": "1000.00",
          "amount_in_quote": "1000.00"
        },
        "fee": {
          "symbol": "USD",
          "name": "US Dollar",
          "type": "fiat",
          "amount": "5.00",
          "amount_in_quote": "5.00"
        },
        "total": {
          "symbol": "USD",
          "name": "US Dollar",
          "type": "fiat",
          "amount": "1005.00",
          "amount_in_quote": "1005.00"
        },
        "balance": {
          "symbol": "USD",
          "name": "US Dollar",
          "type": "fiat",
          "amount": "4995.00",
          "amount_in_quote": "4995.00"
        }
      },
      "receive": {
        "timestamp": "2026-04-15T13:42:18.500Z",
        "sub_total": {
          "symbol": "BTC",
          "name": "Bitcoin",
          "type": "crypto",
          "amount": "0.01587302",
          "amount_in_quote": "1000.00"
        },
        "fee": {
          "symbol": "BTC",
          "name": "Bitcoin",
          "type": "crypto",
          "amount": "0",
          "amount_in_quote": "0"
        },
        "total": {
          "symbol": "BTC",
          "name": "Bitcoin",
          "type": "crypto",
          "amount": "0.01587302",
          "amount_in_quote": "1000.00"
        },
        "balance": {
          "symbol": "BTC",
          "name": "Bitcoin",
          "type": "crypto",
          "amount": "0.51587302",
          "amount_in_quote": "32500.00"
        }
      }
    },
    {
      "id": "tx_01J0M7C0Z9F8YX3GQH8F",
      "timestamp": "2026-04-14T09:15:02.000Z",
      "type": "simple_order_failed",
      "status": "failed"
    },
    {
      "id": "tx_01J0M7C0Z9F8YX3GQH8G",
      "timestamp": "2026-04-13T00:00:00.000Z",
      "type": "earn_reward",
      "status": "successful",
      "receive": {
        "timestamp": "2026-04-13T00:00:00.000Z",
        "sub_total": {
          "symbol": "ETH",
          "name": "Ethereum",
          "type": "crypto",
          "amount": "0.00125",
          "amount_in_quote": "4.50"
        },
        "fee": {
          "symbol": "ETH",
          "name": "Ethereum",
          "type": "crypto",
          "amount": "0",
          "amount_in_quote": "0"
        },
        "total": {
          "symbol": "ETH",
          "name": "Ethereum",
          "type": "crypto",
          "amount": "0.00125",
          "amount_in_quote": "4.50"
        },
        "balance": {
          "symbol": "ETH",
          "name": "Ethereum",
          "type": "crypto",
          "amount": "2.50125",
          "amount_in_quote": "9004.50"
        }
      }
    }
  ],
  "next_page_token": "cursor_eyJrIjoxfQ",
  "quote_symbol": "USD",
  "quote_type": "fiat"
}

Authorizations

API-Key
string
header
required

Your public API key. Identifies the partner making the request.

API-Nonce
string
header
required

Monotonically increasing nonce included in the request signature.

API-Sign
string
header
required

HMAC signature over the request, computed with your private key.

Path Parameters

account_id
string
required

ID of the account the request applies to. This refers to one of the accounts held by the user the request is acting on behalf of (typically the user's main account, but any of the user's accounts is accepted). Routes the request to that specific account container. Canonical identifier for an account in the Payward public API.

Required string length: 14 - 42

Query Parameters

page_token
string | null

Opaque page token returned by a previous response's next_page_token. Omit to start from the beginning.

Required string length: 1 - 256
types
enum<string>[] | null

Filter for transaction types

Available options:
simple_order,
simple_order_failed,
price_trigger_swap,
price_trigger_swap_failed,
earn_reward,
deposit
page_size
integer<uint64> | null
default:20

Number of transactions to return per page. Defaults to 20 if not specified. Maximum 25.

Required range: 1 <= x <= 25
assets
object[] | null

Filter transactions by specific assets. Each entry is an asset reference with symbol and type. Encode using indexed deep-object syntax, e.g. ?assets[0][symbol]=BTC&assets[0][type]=crypto&assets[1][symbol]=USDT&assets[1][type]=stablecoin.

start_timestamp
string<date-time> | null

Start of the time window (inclusive). Only results whose timestamp is greater than or equal to start_timestamp are returned.

end_timestamp
string<date-time> | null

End of the time window (inclusive). Only results whose timestamp is less than or equal to end_timestamp are returned.

statuses
enum<string>[] | null

Filter transactions by their status

Filter criteria for transaction status in query results.

Available options:
in_progress,
successful,
failed,
no_status,
uncategorized
ids
string[] | null

Filter transactions by specific transaction IDs

A unique identifier for a portfolio transaction.

sort_direction
enum<string> | null
default:asc

Direction of the sort. Use asc for ascending order (oldest first); desc for the inverse.

Available options:
asc,
desc
quote_symbol
string | null
default:USD

Fiat asset to use for quoting amounts and fees in the response. Defaults to USD. Quoting is best-effort based on rates at transaction time. If quoting is unavailable, quoted fields will be null.

Maximum string length: 16
quote_type
enum<string> | null
default:fiat

Classification of the quote asset. Currently only fiat is supported.

Available options:
fiat

Response

Response

data
object[]
required

List of portfolio transactions matching the query parameters

quote_symbol
string
required

The asset used as the quote currency for all amount_in_quote fields. Echoes the quote_symbol query parameter (or its default).

Maximum string length: 16
quote_type
enum<string>
required

Classification of the quote asset. Echoes the quote_type query parameter (or its default).

Available options:
fiat
next_page_token
string

Opaque token for the next page of results. Absent when there are no more pages.

Required string length: 1 - 256