Repository: stabacco/stake-python (language: python)

Issue:
Support for ASX
First of all thank you for this amazing project.

As I understand it, the project currently only supports the US market? The API endpoints don't seem to match the ASX one's I can see in the Developer Console. Are there any plans for implementing the ASX endpoints?


Discussion / hints:
I should have some free time in the next coming weeks, so I am planning to add ASX  support.
Keep an eye on this issue for updates.


Fix patch:
diff --git a/README.md b/README.md
index 97a64c9..14dfcae 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 
 **Stake** is an unofficial Python client for the [Stake](https://www.stake.com.au) trading platform.
 
-This library wraps the current Stake RPC api and allows common trade operations, such as submitting buy/sell requests, checking your portfolio etc...
+This library wraps the current Stake api and allows common trade operations, such as submitting buy/sell requests, checking your portfolio etc...
 
 Please note that, at the current stage, the Stake client is asynchronous.
 
@@ -79,6 +79,40 @@ In this case you need to have your phone around, get the current code from the a
 
 Obviously, this can become a bit inconvenient, since you will need to provide the otp code every time you instantiate a new `StakeClient` instance. Therefore, you could probably authenticate once with your credentials, retrieve the session token from the headers(`stake_session.headers.stake_session_token`), and store it in the `STAKE_TOKEN` env-var for subsequent usages.
 
+## Choose your trading exchange
+
+Stake can currently trade on the NY stock exchange (default for this library) as well as the Australian ASX. In order to choose which trading market to use you can initialize the client by specifying the `exchange` argument:
+
+```python
+import asyncio
+from typing import Union
+
+import stake
+
+
+async def show_current_orders(
+    current_exchange: Union[stake.constant.ASXUrl, stake.constant.NYSEUrl]
+):
+    async with stake.StakeClient(exchange=current_exchange) as stake_session:
+        my_equities = await stake_session.orders.list()
+        return my_equities
+
+# ASX
+print(asyncio.run(show_current_orders(stake.ASX)))
+
+# NYSE
+print(asyncio.run(show_current_orders(stake.NYSE)))
+
+```
+
+Alternatively you can call the `set_exchange` method on the `StakeClient` object.
+
+One thing to note, is that the apis for the two exchanges are currently wildly different, and this reflects in some parts of this library as well.
+You might find that the way you need to perform a trade (as well as the resulting response) is somewhat different when switching between exchanges.
+
+As a rule of thumb the code for the ASX stake api resides in the `stake.asx` python package
+while the one for the USA one is under the main `stake` namespace (for backwards compatibitity mostly, it might get moved to `stake.nyse` in the future).
+
 ## Examples
 
 With `stake-python` you can do most of the operations that are available through the web app.
@@ -90,11 +124,11 @@ Here are some examples:
 ```python
 import stake
 import asyncio
-
+from stake.constant import NYSE
 
 async def show_portfolio():
     # here the client will use the STAKE_TOKEN env var for authenticating
-    async with stake.StakeClient() as stake_session:
+    async with stake.StakeClient(exchange=NYSE) as stake_session:
         my_equities = await stake_session.equities.list()
         for my_equity in my_equities.equity_positions:
             print(my_equity.symbol, my_equity.yearly_return_value)
@@ -136,7 +170,7 @@ import asyncio
 import stake
 
 async def example_limit_buy():
-    symbol = "UNKN" # should be the equity symbol, for ex: AAPL, TSLA, GOOGL
+    symbol = "TSLA"
     async with stake.StakeClient() as stake_session:
         return await stake_session.trades.buy(
             stake.LimitBuyRequest(symbol=symbol, limitPrice=10, quantity=1000)
@@ -229,6 +263,8 @@ asyncio.run(delete_watchlist(id=WATCHLIST_ID))
 
 ```
 
+For more examples, you can have a look at the unittests.
+
 ## Contributors
 
 ### Contributors on GitHub
diff --git a/coverage.svg b/coverage.svg
index 0fa9649..6bfc8fa 100644
--- a/coverage.svg
+++ b/coverage.svg
@@ -15,7 +15,7 @@
     <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
         <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text>
         <text x="31.5" y="14">coverage</text>
-        <text x="80" y="15" fill="#010101" fill-opacity=".3">98%</text>
-        <text x="80" y="14">98%</text>
+        <text x="80" y="15" fill="#010101" fill-opacity=".3">99%</text>
+        <text x="80" y="14">99%</text>
     </g>
 </svg>
diff --git a/poetry.lock b/poetry.lock
index 965e180..aaca595 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -147,7 +147,7 @@ python-versions = ">=3.6, <3.7"
 
 [[package]]
 name = "distlib"
-version = "0.3.4"
+version = "0.3.5"
 description = "Distribution utilities"
 category = "dev"
 optional = false
@@ -802,10 +802,7 @@ dataclasses = [
     {file = "dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf"},
     {file = "dataclasses-0.8.tar.gz", hash = "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97"},
 ]
-distlib = [
-    {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"},
-    {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"},
-]
+distlib = []
 faker = [
     {file = "Faker-4.18.0-py3-none-any.whl", hash = "sha256:2ba20a4438429cb08d729175d7bb0435ef3c2c4cedc7b1ceb703ee6da8dad906"},
     {file = "Faker-4.18.0.tar.gz", hash = "sha256:6279746aed175a693108238e6d1ab8d7e26d0ec7ff8474f61025b9fdaae15d65"},
diff --git a/stake/__init__.py b/stake/__init__.py
index 62af613..e232c46 100644
--- a/stake/__init__.py
+++ b/stake/__init__.py
@@ -3,16 +3,17 @@
 
 from single_version import get_version
 
-from .client import *
-from .common import *
-from .funding import *
-from .fx import *
-from .market import *
-from .order import *
-from .product import *
-from .ratings import *
-from .trade import *
-from .transaction import *
-from .watchlist import *
+from .client import *  # noqa: F401, F403
+from .common import *  # noqa: F401, F403
+from .constant import *  # noqa: F401, F403
+from .funding import *  # noqa: F401, F403
+from .fx import *  # noqa: F401, F403
+from .market import *  # noqa: F401, F403
+from .order import *  # noqa: F401, F403
+from .product import *  # noqa: F401, F403
+from .ratings import *  # noqa: F401, F403
+from .trade import *  # noqa: F401, F403
+from .transaction import *  # noqa: F401, F403
+from .watchlist import *  # noqa: F401, F403
 
 __version__ = get_version("stake", Path(__file__).parent.parent)
diff --git a/stake/asx/__init__.py b/stake/asx/__init__.py
new file mode 100644
index 0000000..d021a66
--- /dev/null
+++ b/stake/asx/__init__.py
@@ -0,0 +1,9 @@
+from . import equity, funding, market, order, product, trade, transaction  # noqa
+from .common import *  # noqa: F401, F403
+from .equity import *  # noqa: F401, F403
+from .funding import *  # noqa: F401, F403
+from .market import *  # noqa: F401, F403
+from .order import *  # noqa: F401, F403
+from .product import *  # noqa: F401, F403
+from .trade import *  # noqa: F401, F403
+from .transaction import *  # noqa: F401, F403
diff --git a/stake/asx/common.py b/stake/asx/common.py
new file mode 100644
index 0000000..e23ac70
--- /dev/null
+++ b/stake/asx/common.py
@@ -0,0 +1,13 @@
+from enum import Enum
+
+
+class Side(str, Enum):
+    BUY = "BUY"
+    SELL = "SELL"
+
+
+class TradeType(str, Enum):
+    """The type of trade the user is requesting."""
+
+    MARKET: str = "MARKET_TO_LIMIT"
+    LIMIT: str = "LIMIT"
diff --git a/stake/asx/equity.py b/stake/asx/equity.py
new file mode 100644
index 0000000..6584339
--- /dev/null
+++ b/stake/asx/equity.py
@@ -0,0 +1,53 @@
+from typing import List, Optional
+
+from pydantic import BaseModel, Field
+
+from stake.common import BaseClient, camelcase
+
+__all__ = ["EquityPositions"]
+
+
+class EquityPosition(BaseModel):
+    available_for_trading_qty: Optional[int] = None
+    average_price: Optional[str] = None
+    instrument_id: Optional[str] = None
+    market_value: Optional[str] = None
+    mkt_price: Optional[str] = None
+    name: Optional[str] = None
+    open_qty: Optional[int] = None
+    prior_close: Optional[str] = None
+    recent_announcement: Optional[bool] = None
+    sensitive: Optional[bool] = None
+    symbol: Optional[str] = None
+    unrealized_day_pl_percent: Optional[str] = Field(
+        None, alias="unrealizedDayPLPercent"
+    )
+    unrealized_day_pl: Optional[str] = Field(None, alias="unrealizedDayPL")
+    unrealized_pl_percent: Optional[str] = Field(None, alias="unrealizedPLPercent")
+    unrealized_pl: Optional[str] = Field(None, alias="unrealizedPL")
+
+    class Config:
+        alias_generator = camelcase
+
+
+class EquityPositions(BaseModel):
+    """Represents the user's portforlio, with the list of the currently
+    available equities."""
+
+    page_num: Optional[int] = None
+    has_next: Optional[bool] = None
+    equity_positions: Optional[List[EquityPosition]] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class EquitiesClient(BaseClient):
+    async def list(self) -> EquityPositions:
+        """Displays the contents of your portfolio.
+
+        Returns:
+            EquityPositions: The list of your equities.
+        """
+        data = await self._client.get(self._client.exchange.equity_positions)
+        return EquityPositions(**data)
diff --git a/stake/asx/funding.py b/stake/asx/funding.py
new file mode 100644
index 0000000..fe90955
--- /dev/null
+++ b/stake/asx/funding.py
@@ -0,0 +1,152 @@
+import json
+from datetime import datetime
+from enum import Enum
+from typing import List, Optional
+from urllib.parse import urlencode
+
+from pydantic import BaseModel, Field
+from pydantic.types import UUID
+
+from stake.asx.transaction import Sort
+from stake.common import BaseClient, camelcase
+
+__all__ = ["FundingRequest", "FundingStatus"]
+
+
+class Action(str, Enum):
+    DEPOSIT = "DEPOSIT"
+    DIVIDEND_DEPOSIT = "DIVIDEND_DEPOSIT"
+    SETTLEMENT = "SETTLEMENT"
+    TRANSFER = "TRANSFER"
+    WITHDRAWAL = "WITHDRAWAL"
+
+
+class Currency(str, Enum):
+    AUD = "AUD"
+
+
+class FundingSide(str, Enum):
+    CREDIT = "CREDIT"
+    DEBIT = "DEBIT"
+
+
+class FundingStatus(str, Enum):
+    AWAITING_APPROVAL = "AWAITING_APPROVAL"
+    PENDING = "PENDING"
+    RECONCILED = "RECONCILED"
+
+
+class FundingRequest(BaseModel):
+    """Example call:
+
+    t = FundingRequest(
+        statuses=[FundingStatus.RECONCILED, FundingStatus.PENDING],
+        actions=[Action.DIVIDEND_DEPOSIT],
+        sort=[Sort(attribute='insertedAt', direction='asc')])
+    """
+
+    statuses: Optional[List[FundingStatus]] = Field(
+        [FundingStatus.RECONCILED], description="Used to filter the results."
+    )
+    sort: Optional[List[Sort]] = Field(
+        None, description="Use this to sort the results."
+    )
+    actions: Optional[List[Action]] = Field(
+        None, description="Used to filter the results. Only works for funding"
+    )
+    limit: int = 100
+    offset: int = 0
+
+    def as_url_params(self) -> str:
+        """Returns the parameters for the GET request."""
+        data = json.loads(
+            self.json(
+                exclude_none=True,
+            )
+        )
+        if data.get("sort"):
+            data["sort"] = [f"{d['attribute']},{d['direction']}" for d in data["sort"]]
+
+        return (
+            urlencode(data, doseq=True)
+            .replace("statuses", "status")
+            .replace("actions", "action")
+            .replace("limit", "size")
+            .replace("offset", "page")
+        )
+
+
+class FundingRecord(BaseModel):
+    action: Optional[Action] = None
+    amount: Optional[float] = None
+    approved_by: None
+    currency: Optional[Currency] = None
+    customer_fee: Optional[int] = None
+    id: Optional[UUID] = None
+    inserted_at: Optional[datetime] = None
+    reference: Optional[str] = None
+    side: Optional[FundingSide] = None
+    status: Optional[FundingStatus] = None
+    updated_at: Optional[datetime] = None
+    user_id: Optional[UUID] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class Fundings(BaseModel):
+    fundings: Optional[List[FundingRecord]] = Field(None, alias="items")
+    has_next: Optional[bool] = None
+    page: Optional[int] = None
+    total_items: Optional[int] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class CashAvailable(BaseModel):
+    """Holds information about the cash available in your account."""
+
+    buying_power: Optional[float] = None
+    cash_available_for_transfer: Optional[float] = None
+    cash_available_for_withdrawal_hold: Optional[float] = None
+    cash_available_for_withdrawal: Optional[float] = None
+    clearing_cash: Optional[float] = None
+    pending_buys: Optional[int] = None
+    pending_withdrawals: Optional[int] = None
+    settled_cash: Optional[float] = None
+    settlement_hold: Optional[int] = None
+    trade_settlement: Optional[int] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class FundingsClient(BaseClient):
+    async def list(self, request: FundingRequest) -> Fundings:
+        """Returns the funding transactions executed by the user.
+
+        Args:
+
+            request (FundingRequest): the funding request.
+
+        Returns:
+            Fundings: the list of the fundings retrieved.
+        """
+
+        data: dict = await self._client.get(
+            f"{self._client.exchange.transactions}?{request.as_url_params()}"
+        )
+
+        return Fundings(**data)
+
+    async def in_flight(self) -> Fundings:
+        """Returns the funds currently in flight."""
+        request = FundingRequest(
+            statuses=[FundingStatus.PENDING, FundingStatus.AWAITING_APPROVAL]
+        )
+        return await self.list(request=request)
+
+    async def cash_available(self) -> CashAvailable:
+        data = await self._client.get(self._client.exchange.cash_available)
+        return CashAvailable(**data)
diff --git a/stake/asx/market.py b/stake/asx/market.py
new file mode 100644
index 0000000..61822f1
--- /dev/null
+++ b/stake/asx/market.py
@@ -0,0 +1,32 @@
+from datetime import date
+from typing import Optional
+
+import pydantic
+
+from stake.common import BaseClient, camelcase
+
+__all__ = ["MarketStatus"]
+
+
+class Status(pydantic.BaseModel):
+    current: Optional[str] = None
+
+
+class MarketStatus(pydantic.BaseModel):
+    last_trading_date: Optional[date] = None
+    status: Status
+
+    class Config:
+        alias_generator = camelcase
+
+
+class MarketClient(BaseClient):
+    """Retrieves informations about the current status of the market."""
+
+    async def get(self) -> MarketStatus:
+        data = await self._client.get(self._client.exchange.market_status)
+        return MarketStatus(**data)
+
+    async def is_open(self) -> bool:
+        status = await self.get()
+        return status.status.current == "open"
diff --git a/stake/asx/order.py b/stake/asx/order.py
new file mode 100644
index 0000000..e4e6ac6
--- /dev/null
+++ b/stake/asx/order.py
@@ -0,0 +1,71 @@
+from datetime import datetime
+from typing import List, Optional, Union
+from uuid import UUID
+
+from pydantic import BaseModel, Field
+
+from stake.asx.common import TradeType
+from stake.asx.transaction import Side
+from stake.common import BaseClient, camelcase
+
+__all__ = ["CancelOrderRequest"]
+
+
+class Order(BaseModel):
+    average_price: Optional[float] = None
+    broker: Optional[str] = None
+    completed_timestamp: Optional[datetime] = None
+    estimated_brokerage: Optional[float] = None
+    estimated_exchange_fees: Optional[float] = None
+    expires_at: Optional[datetime] = None
+    filled_units: Optional[float] = None
+    instrument_code: str
+    instrument_id: Optional[str] = None
+    limit_price: Optional[float] = None
+    order_completion_type: Optional[str] = None
+    order_id: UUID = Field(alias="id")
+    order_status: Optional[str] = None
+    placed_timestamp: datetime
+    side: Side
+    type: TradeType
+    units_remaining: Optional[int] = None
+    validity_date: Optional[datetime] = None
+    validity: Optional[str] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class CancelOrderRequest(BaseModel):
+    order_id: str
+
+
+class OrdersClient(BaseClient):
+    """This client is in charge of dealing with your pending orders.
+
+    These are the orders limit/stop etc.. that have not been traded yet.
+    """
+
+    async def list(self) -> List[Order]:
+        """Lists all your pending orders.
+
+        Returns:
+            List[Order]: The list of pending orders.
+        """
+        data = await self._client.get(self._client.exchange.orders)
+        return [Order(**d) for d in data]
+
+    async def cancel(self, order: Union[Order, CancelOrderRequest]) -> bool:
+        """Cancels a pending order.
+
+        Args:
+            order (Union[Order, CancelOrderRequest])): an existing order or its ID.
+
+        Returns:
+            bool: True if the deletion was succesful.
+        """
+        await self._client.post(
+            self._client.exchange.cancel_order.format(orderId=order.order_id),
+            payload={},
+        )
+        return True
diff --git a/stake/asx/product.py b/stake/asx/product.py
new file mode 100644
index 0000000..b5cb010
--- /dev/null
+++ b/stake/asx/product.py
@@ -0,0 +1,73 @@
+from typing import List, Optional
+
+from pydantic import BaseModel
+
+from stake.common import BaseClient, camelcase
+
+__all__ = ["ProductSearchByName"]
+
+
+class ProductSearchByName(BaseModel):
+    """Request used to search for Products by their name or description."""
+
+    keyword: str
+
+
+class Instrument(BaseModel):
+
+    instrument_id: str
+    symbol: str
+    name: Optional[str] = None
+    type: str
+    recent_announcement: Optional[bool] = None
+    sensitive: Optional[bool] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class Product(BaseModel):
+    symbol: Optional[str] = None
+    out_of_market_quantity: Optional[int] = None
+    out_of_market_surplus: Optional[int] = None
+    market_status: Optional[str] = None
+    last_traded_exchange: Optional[str] = None
+    last_traded_timestamp: Optional[int] = None
+    last_trade: Optional[str] = None
+    bid: Optional[float] = None
+    ask: Optional[float] = None
+    prior_close: Optional[float] = None
+    open: Optional[float] = None
+    high: Optional[float] = None
+    low: Optional[float] = None
+    points_change: Optional[float] = None
+    percentage_change: Optional[float] = None
+    out_of_market_price: Optional[float] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class ProductsClient(BaseClient):
+    async def get(self, symbol: str) -> Optional[Product]:
+        """Given a symbol it will return the matching product.
+
+        Examples:
+            coles_product = self.get("COL")
+        """
+        data = await self._client.get(
+            self._client.exchange.symbol.format(symbol=symbol)
+        )
+
+        return Product(**data)
+
+    async def search(self, request: ProductSearchByName) -> List[Instrument]:
+        products = await self._client.get(
+            self._client.exchange.products_suggestions.format(keyword=request.keyword)
+        )
+        return [Instrument(**product) for product in products["instruments"]]
+
+    async def product_from_instrument(
+        self, instrument: Instrument
+    ) -> Optional[Product]:
+        return await self.get(instrument.symbol)
diff --git a/stake/asx/trade.py b/stake/asx/trade.py
new file mode 100644
index 0000000..d654c8d
--- /dev/null
+++ b/stake/asx/trade.py
@@ -0,0 +1,152 @@
+from datetime import datetime
+from enum import Enum
+from typing import Optional, Union
+
+from pydantic import BaseModel, Field, root_validator, validate_arguments
+
+from stake.asx.common import TradeType
+from stake.asx.order import Order
+from stake.common import BaseClient, camelcase
+
+__all__ = [
+    "LimitBuyRequest",
+    "LimitSellRequest",
+    "MarketBuyRequest",
+    "MarketSellRequest",
+]
+
+
+class ExpiryDate(str, Enum):
+    """The expiry date for the trade."""
+
+    IN_ONE_DAY: str = "GFD"
+    IN_THIRTY_DAYS: str = "GTC"
+
+
+class GenericTradeRequest(BaseModel):
+    """Issues a limit buy request."""
+
+    symbol: Optional[str] = Field(
+        None,
+        alias="instrumentCode",
+        description="The symbol for the ",
+    )
+    instrument_code: Optional[str] = None
+
+    units: int
+    validity: ExpiryDate = ExpiryDate.IN_THIRTY_DAYS
+    validity_date: Optional[datetime] = None
+
+    class Config:
+        alias_generator = camelcase
+        allow_population_by_field_name = True
+
+    @root_validator(pre=True)
+    def symbol_or_instrument_type(cls, value: dict) -> dict:
+
+        if not any((value.get("symbol", None), value.get("instrument_code", None))):
+            raise ValueError("Either specify symbol or instrument_code")
+
+        return value
+
+
+class LimitBuyRequest(GenericTradeRequest):
+    side: str = "BUY"
+    type: TradeType = TradeType.LIMIT
+    price: float
+
+
+class LimitSellRequest(GenericTradeRequest):
+    side: str = "SELL"
+    type: TradeType = TradeType.LIMIT
+    price: float
+
+
+class MarketBuyRequest(GenericTradeRequest):
+    side: str = "BUY"
+    type: TradeType = TradeType.MARKET
+    price: Optional[float] = None
+
+
+class MarketSellRequest(GenericTradeRequest):
+    side: str = "SELL"
+    type: TradeType = TradeType.MARKET
+    price: Optional[float] = None
+
+
+class TradesClient(BaseClient):
+    """This client is used to buy/sell equities."""
+
+    @validate_arguments
+    async def _trade(
+        self,
+        url: str,
+        request: Union[
+            MarketBuyRequest,
+            LimitBuyRequest,
+            LimitSellRequest,
+            MarketSellRequest,
+        ],
+    ) -> Order:
+        """A generic function used to submit a trade, either buy or sell.
+
+        Args:
+            url: the url for buy/sell
+            request:the trade request
+        Returns:
+            the Order
+        """
+        if not request.instrument_code and request.symbol:
+            # in this case we need to get the instrument name from the symbol
+            instrument_id = await self._instrument_id_from_symbol(request.symbol)
+            request.instrument_code = instrument_id
+
+        data = await self._client.post(
+            url, payload=request.dict(by_alias=True, exclude={"symbol"})
+        )
+
+        return Order(**data["order"])
+
+    async def _instrument_id_from_symbol(self, symbol: str) -> str:
+        """Returns the instrument_id from an associated product."""
+        url = self._client.exchange.instrument_from_symbol.format(symbol=symbol)
+        data = await self._client.post(url, payload={})
+        return data["instrumentId"]
+
+    async def buy(self, request: Union[MarketBuyRequest, LimitBuyRequest]) -> Order:
+        """Creates an order to buy equities.
+
+        Args:
+            request: the buy request
+
+        Returns:
+            the Order object
+        """
+        # if the price has not been set(in the case of a market order),
+        # we get the current ask price for that symbol. This seems to
+        # be what the app is doing, the price value cannot be left null.
+        if request.price is None:
+            product = await self._client.products.get(request.symbol)
+            assert product
+            assert product.ask
+            request.price = product.ask
+
+        return await self._trade(self._client.exchange.orders, request)
+
+    async def sell(self, request: Union[MarketSellRequest, LimitSellRequest]) -> Order:
+        """Creates an order to sell equities.
+
+        Args:
+            request: the sell request
+
+        Returns:
+            the Order object
+        """
+        # if the price has not been set, we get the current bid price for that symbol.
+        if request.price is None:
+            product = await self._client.products.get(request.symbol)
+            assert product
+            assert product.bid
+            request.price = product.bid
+
+        return await self._trade(self._client.exchange.orders, request)
diff --git a/stake/asx/transaction.py b/stake/asx/transaction.py
new file mode 100644
index 0000000..d609a52
--- /dev/null
+++ b/stake/asx/transaction.py
@@ -0,0 +1,105 @@
+import json
+from datetime import date, datetime
+from enum import Enum
+from typing import List, Optional
+from urllib.parse import urlencode
+
+from pydantic import BaseModel, Field
+
+from stake.asx.common import Side
+from stake.common import BaseClient, camelcase
+
+__all__ = ["TransactionRecordRequest", "SortDirection", "Sort"]
+
+
+class SortDirection(str, Enum):
+    ASC: str = "asc"
+    DESC: str = "desc"
+
+
+class Sort(BaseModel):
+    attribute: str
+    direction: SortDirection
+
+
+class TransactionRecordRequest(BaseModel):
+    """Example call:
+
+    t = TransactionRecordRequest(sort=[Sort(attribute='insertedAt', direction='asc')])
+    """
+
+    sort: Optional[List[Sort]] = Field(
+        None, description="Use this to sort the results."
+    )
+
+    limit: int = 100
+    offset: int = 0
+
+    def as_url_params(self) -> str:
+        """Returns the parameters for the GET request."""
+        data = json.loads(
+            self.json(
+                exclude_none=True,
+            )
+        )
+        if data.get("sort", None):
+            data["sort"] = [f"{d['attribute']},{d['direction']}" for d in data["sort"]]
+
+        return (
+            urlencode(data, doseq=True)
+            .replace("limit", "size")
+            .replace("offset", "page")
+        )
+
+
+class Transaction(BaseModel):
+    average_price: Optional[float] = None
+    broker_order_id: Optional[int] = None
+    completed_timestamp: Optional[datetime] = None
+    consideration: Optional[float] = None
+    contract_note_number: Optional[int] = None
+    contract_note_numbers: Optional[List[int]] = None
+    contract_note_received: Optional[bool] = None
+    effective_price: Optional[float] = None
+    execution_date: Optional[date] = None
+    instrument_id: Optional[str] = Field(None, alias="instrumentCode")
+    limit_price: Optional[float] = None
+    order_completion_type: Optional[str] = None
+    order_status: Optional[str] = None
+    placed_timestamp: Optional[datetime] = None
+    side: Optional[Side] = None
+    type: Optional[str] = None
+    units: Optional[float] = None
+    user_brokerage_fees: Optional[float] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class Transactions(BaseModel):
+    transactions: Optional[List[Transaction]] = Field(None, alias="items")
+    has_next: Optional[bool] = None
+    page: Optional[int] = None
+    total_items: Optional[int] = None
+
+    class Config:
+        alias_generator = camelcase
+
+
+class TransactionsClient(BaseClient):
+    async def list(self, request: TransactionRecordRequest) -> Transactions:
+        """Returns the transactions executed by the user.
+
+        Args:
+            request (TransactionRecordRequest):
+                used to filter the transactions we want to retrieve
+
+        Returns:
+            Transactions: The matching transactions
+        """
+
+        data: dict = await self._client.get(
+            f"{self._client.exchange.trade_activity}?{request.as_url_params()}"
+        )
+
+        return Transactions(**data)
diff --git a/stake/client.py b/stake/client.py
index a09c293..3121c05 100644
--- a/stake/client.py
+++ b/stake/client.py
@@ -7,6 +7,7 @@
 from pydantic import BaseModel, Field
 
 from stake import (
+    asx,
     constant,
     equity,
     funding,
@@ -87,6 +88,7 @@ async def post(url: str, payload: dict, headers: dict = None) -> dict:
         async with aiohttp.ClientSession(
             headers=headers, raise_for_status=True
         ) as session:
+            logger.debug("POST %s %s", url, payload)
             response = await session.post(
                 HttpClient.url(url), headers=headers, json=payload
             )
@@ -113,7 +115,7 @@ class StakeClient:
     def __init__(
         self,
         request: Union[CredentialsLoginRequest, SessionTokenLoginRequest] = None,
-        exchange: constant.BaseUrl = constant.NYSE,
+        exchange: Union[constant.NYSEUrl, constant.ASXUrl] = constant.NYSE,
     ):
         """
 
@@ -127,24 +129,50 @@ def __init__(
                 Defaults to constant.NYSE.
         """
         self.user: Optional[user.User] = None
-        self.exchange: constant.BaseUrl = exchange
+        self.set_exchange(exchange=exchange)
         self.headers = Headers()
         self.http_client = HttpClient
-
-        # register all the clients
-        self.equities = equity.EquitiesClient(self)
-        self.fx = fx.FxClient(self)
-        self.fundings = funding.FundingsClient(self)
-        self.market = market.MarketClient(self)
-        self.orders = order.OrdersClient(self)
-        self.products = product.ProductsClient(self)
-        self.trades = trade.TradesClient(self)
-        self.transactions = transaction.TransactionsClient(self)
-        self.watchlist = watchlist.WatchlistClient(self)
-        self.ratings = ratings.RatingsClient(self)
-
         self._login_request = request or SessionTokenLoginRequest()
 
+    def set_exchange(self, exchange: Union[constant.NYSEUrl, constant.ASXUrl]) -> None:
+        self.exchange = exchange
+
+        self.watchlist: watchlist.WatchlistClient = watchlist.WatchlistClient(self)
+
+        if exchange == constant.ASX:
+            self.equities: Union[
+                asx.equity.EquitiesClient, equity.EquitiesClient
+            ] = asx.equity.EquitiesClient(self)
+            self.fundings: Union[
+                asx.funding.FundingsClient, funding.FundingsClient
+            ] = asx.funding.FundingsClient(self)
+            self.market: Union[
+                asx.market.MarketClient, market.MarketClient
+            ] = asx.market.MarketClient(self)
+            self.orders: Union[
+                asx.order.OrdersClient, order.OrdersClient
+            ] = asx.order.OrdersClient(self)
+            self.products: Union[
+                asx.product.ProductsClient, product.ProductsClient
+            ] = asx.product.ProductsClient(self)
+            self.trades: Union[
+                asx.trade.TradesClient, trade.TradesClient
+            ] = asx.trade.TradesClient(self)
+            self.transactions: Union[
+                asx.transaction.TransactionsClient, transaction.TransactionsClient
+            ] = asx.transaction.TransactionsClient(self)
+            # ratings is unsupported.
+        else:
+            self.equities = equity.EquitiesClient(self)
+            self.fundings = funding.FundingsClient(self)
+            self.fx = fx.FxClient(self)
+            self.market = market.MarketClient(self)
+            self.orders = order.OrdersClient(self)
+            self.products = product.ProductsClient(self)
+            self.ratings = ratings.RatingsClient(self)
+            self.trades = trade.TradesClient(self)
+            self.transactions = transaction.TransactionsClient(self)
+
     async def get(self, url: str, payload: dict = None) -> dict:
         """Performs an HTTP get operation.
 
diff --git a/stake/common.py b/stake/common.py
index 592aa20..5470d88 100644
--- a/stake/common.py
+++ b/stake/common.py
@@ -5,7 +5,7 @@
 
 import inflection
 
-if TYPE_CHECKING:
+if TYPE_CHECKING:  # pragma: no cover
     from stake.client import StakeClient
 
 camelcase = partial(inflection.camelize, uppercase_first_letter=False)
diff --git a/stake/constant.py b/stake/constant.py
index 98361d7..b4dd9ae 100644
--- a/stake/constant.py
+++ b/stake/constant.py
@@ -3,8 +3,10 @@
 
 from pydantic import BaseModel
 
+__all__ = ["ASX", "NYSE"]
 
-class BaseUrl(BaseModel):
+
+class NYSEUrl(BaseModel):
     """Contains all the visited stake urls for the NYSE."""
 
     STAKE_URL: str = "https://global-prd-api.hellostake.com/api/"
@@ -83,5 +85,59 @@ class BaseUrl(BaseModel):
     update_watchlist: str = read_watchlist + "/items"
 
 
-# The New York Stock Exchange
-NYSE = BaseUrl()
+NYSE = NYSEUrl()
+
+
+class ASXUrl(BaseModel):
+    """Contains all the visited stake urls for the ASX."""
+
+    ASX_STAKE_URL: str = "https://global-prd-api.hellostake.com/api/asx/"
+
+    cash_available: str = urljoin(ASX_STAKE_URL, "cash", allow_fragments=True)
+    cancel_order: str = urljoin(
+        ASX_STAKE_URL, "orders/{orderId}/cancel", allow_fragments=True
+    )
+    equity_positions: str = urljoin(
+        ASX_STAKE_URL, "instrument/equityPositions", allow_fragments=True
+    )
+    market_status: str = "https://early-bird-promo.hellostake.com/marketStatus"
+
+    orders: str = urljoin(ASX_STAKE_URL, "orders", allow_fragments=True)
+
+    products_suggestions: str = urljoin(
+        ASX_STAKE_URL,
+        "instrument/search?searchKey={keyword}",
+        allow_fragments=True,
+    )
+
+    symbol: str = urljoin(
+        ASX_STAKE_URL,
+        "instrument/singleQuote/{symbol}",
+        allow_fragments=True,
+    )
+
+    trade_activity: str = urljoin(
+        ASX_STAKE_URL, "orders/tradeActivity", allow_fragments=True
+    )
+    watchlists = urljoin(
+        ASX_STAKE_URL, "instrument/v2/watchlists", allow_fragments=True
+    )
+    create_watchlist = urljoin(
+        ASX_STAKE_URL, "instrument/v2/watchlist", allow_fragments=True
+    )
+    read_watchlist: str = urljoin(
+        ASX_STAKE_URL, "instrument/v2/watchlist/{watchlist_id}", allow_fragments=True
+    )
+    update_watchlist: str = urljoin(
+        ASX_STAKE_URL,
+        "instrument/v2/watchlist/{watchlist_id}/items",
+        allow_fragments=True,
+    )
+    instrument_from_symbol: str = urljoin(
+        ASX_STAKE_URL, "instrument/view/{symbol}", allow_fragments=True
+    )
+    transactions: str = urljoin(ASX_STAKE_URL, "transactions", allow_fragments=True)
+    users: str = "https://global-prd-api.hellostake.com/api/user"
+
+
+ASX = ASXUrl()
diff --git a/stake/equity.py b/stake/equity.py
index 0631e01..ab4d233 100644
--- a/stake/equity.py
+++ b/stake/equity.py
@@ -6,6 +6,8 @@
 
 from stake.common import BaseClient, SideEnum, camelcase
 
+__all__ = ["EquityCategory"]
+
 
 class EquityCategory(str, Enum):
     ETF = "ETF"
@@ -13,31 +15,31 @@ class EquityCategory(str, Enum):
 
 
 class EquityPosition(BaseModel):
+    ask_price: Optional[float] = None
     available_for_trading_qty: float
     average_price: float = Field(alias="avgPrice")
+    bid_price: Optional[float] = None
     category: Optional[EquityCategory] = None
     cost_basis: float
     daily_return_value: float
     encoded_name: str
     instrument_id: UUID = Field(alias="instrumentID")
     last_trade: float
-    market_value: float
     market_price: float = Field(alias="mktPrice")
+    market_value: float
     name: str
     open_qty: float
     period: str
     prior_close: float
+    return_on_stock: Optional[float] = None
     side: SideEnum
     symbol: str
-    unrealized_day_pl: float = Field(alias="unrealizedDayPL")
     unrealized_day_pl_percent: float = Field(alias="unrealizedDayPLPercent")
+    unrealized_day_pl: float = Field(alias="unrealizedDayPL")
     unrealized_pl: float = Field(alias="unrealizedPL")
     url_image: str
     yearly_return_percentage: Optional[float] = None
     yearly_return_value: Optional[float] = None
-    ask_price: Optional[float] = None
-    bid_price: Optional[float] = None
-    return_on_stock: Optional[float] = None
 
     class Config:
         alias_generator = camelcase
diff --git a/stake/funding.py b/stake/funding.py
index 6fe6681..70484c8 100644
--- a/stake/funding.py
+++ b/stake/funding.py
@@ -43,16 +43,16 @@ class Config:
 
 
 class CashAvailable(BaseModel):
-    cash_available_for_withdrawal: float
-    cash_available_for_trade: float
-    cash_balance: float
-    reserved_cash: float
-    dw_cash_available_for_withdrawal: float
-    pending_orders_amount: float
-    pending_withdrawals: float
-    card_hold_amount: float
-    pending_poli_amount: float
-    cash_settlement: List[Optional[CashSettlement]]
+    buying_power: Optional[float] = None
+    cash_available_for_transfer: Optional[float] = None
+    cash_available_for_withdrawal_hold: Optional[float] = None
+    cash_available_for_withdrawal: Optional[float] = None
+    clearing_cash: Optional[float] = None
+    pending_buys: Optional[int] = None
+    pending_withdrawals: Optional[int] = None
+    settled_cash: Optional[float] = None
+    settlement_hold: Optional[float] = None
+    trade_settlement: Optional[float] = None
 
     class Config:
         alias_generator = camelcase
diff --git a/stake/transaction.py b/stake/transaction.py
index 809d106..4a237c4 100644
--- a/stake/transaction.py
+++ b/stake/transaction.py
@@ -23,7 +23,7 @@ class TransactionRecordRequest(BaseModel):
         default_factory=lambda *_: datetime.utcnow() - timedelta(days=365), alias="from"
     )
     limit: int = 1000
-    offset: Optional[int]
+    offset: Optional[datetime]
     direction: TransactionRecordEnumDirection = TransactionRecordEnumDirection.prev
 
 
@@ -78,31 +78,6 @@ class TransactionHistoryType(str, enum.Enum):
     SELL = "Sell"
 
 
-class TransactionHistorySide(str, enum.Enum):
-    CREDIT = "CREDIT"
-    DEBIT = "DEBIT"
-
-
-class TransactionHistoryElement(BaseModel):
-    transaction_type: TransactionHistoryType
-    fin_tran_type_id: Optional[str] = None
-    timestamp: datetime
-    tran_amount: Optional[float] = None
-    fee_amount: Optional[float] = None
-    side: TransactionHistorySide
-    text: str
-    comment: str
-    amount_per_share: float
-    tax_rate: float
-    order_id: Optional[str] = None
-    symbol: Optional[str] = None
-    reference: Optional[str] = None
-    reference_type: Optional[TransactionHistoryType] = None
-
-    class Config:
-        alias_generator = camelcase
-
-
 class TransactionsClient(BaseClient):
     async def list(self, request: TransactionRecordRequest) -> List[Transaction]:
         """Returns the transactions executed by the user.
diff --git a/stake/watchlist.py b/stake/watchlist.py
index aba591a..2702eb6 100644
--- a/stake/watchlist.py
+++ b/stake/watchlist.py
@@ -18,12 +18,6 @@
 ]
 
 
-class ListWatchlistRequest(BaseModel):
-    """The request to list all the available watchlists."""
-
-    pass
-
-
 class AddToWatchlistRequest(BaseModel):
     symbol: str
 
@@ -208,13 +202,12 @@ async def create_watchlist(
         )
 
     async def add_to_watchlist(self, request: UpdateWatchlistRequest) -> Watchlist:
-        """Updates a watchlist by adding tickers to it."""
+        """Updates a watchlist by adding symbols to it."""
 
         existing_watchlist = await self.watchlist(request=request)
         existing_tickers = [
             instrument.symbol for instrument in existing_watchlist.instruments or []
         ]
-
         # filter out the ones that are already there, otherwise an exception will happen.
         request.tickers = [
             ticker for ticker in request.tickers if ticker not in existing_tickers
@@ -250,7 +243,9 @@ async def remove_from_watchlist(self, request: UpdateWatchlistRequest) -> Watchl
 
         return Watchlist(**response)
 
-    async def delete_watchlist(self, request: DeleteWatchlistRequest) -> bool:
+    async def delete_watchlist(
+        self, request: Union[Watchlist, DeleteWatchlistRequest]
+    ) -> bool:
         response = await self._client.delete(
             self._client.exchange.read_watchlist.format(watchlist_id=request.id)
         )


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index fc5d67f..e3ca6ec 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -12,7 +12,7 @@ jobs:
       matrix:
         python-version: [3.7, 3.8, 3.9]
         poetry-version: [1.1.12]
-        os: [ubuntu-18.04, macos-latest, windows-latest]
+        os: [ubuntu-latest, macos-latest, windows-latest]
     runs-on: ${{ matrix.os }}
     steps:
       - uses: actions/checkout@v2
@@ -29,18 +29,18 @@ jobs:
         run: poetry install && poetry run pytest --cov=stake --cov-report=xml && poetry run coverage-badge -f -o coverage.svg
       - name: Upload coverage
         uses: actions/upload-artifact@v2
-        if: ${{ matrix.os == 'ubuntu-18.04' && matrix.python-version == 3.7 }}
+        if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == 3.7 }}
         with:
           name: coverage
           path: coverage.svg
       - name: Auto commit coverage badge
-        if: ${{ matrix.os == 'ubuntu-18.04' && matrix.python-version == 3.7 }}
+        if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == 3.7 }}
         uses: EndBug/add-and-commit@v4.4.0
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       - name: Run codacy-coverage-reporter
         uses: codacy/codacy-coverage-reporter-action@master
-        if: ${{ matrix.os == 'ubuntu-18.04' && matrix.python-version == 3.7 }}
+        if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == 3.7 }}
         with:
           project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
           coverage-reports: coverage.xml
diff --git a/tests/cassettes/test_equity/test_list_equities[exchange0].yaml b/tests/cassettes/test_equity/test_list_equities[exchange0].yaml
new file mode 100644
index 0000000..e825991
--- /dev/null
+++ b/tests/cassettes/test_equity/test_list_equities[exchange0].yaml
@@ -0,0 +1,116 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/v2/equityPositions
+    response:
+      body:
+        string:
+          '{"equityPositions": [{"unrealizedDayPLPercent": 1.0, "symbol": "AAPL",
+          "encodedName": "apple-inc-aapl", "unrealizedDayPL": "11.92", "instrumentID":
+          "a67422af-8504-43df-9e63-7361eb0bd99e", "openQty": "100", "priorClose":
+          "151", "avgPrice": "171.19", "side": "B", "costBasis": "1E+3", "mktPrice":
+          "153.04", "marketValue": "893.99", "unrealizedPL": 1.0, "availableForTradingQty":
+          "5.84152111", "name": "Apple, Inc.", "category": "Stock", "urlImage": "https://drivewealth.imgix.net/symbols/aapl.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 153.04,
+          "dailyReturnValue": 2.04, "yearlyReturnValue": 50.3, "yearlyReturnPercentage":
+          71.05, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
+          1.0, "symbol": "COP", "encodedName": "conocophillips-cop", "unrealizedDayPL":
+          "11.15", "instrumentID": "6b4f77d9-5617-4885-8377-ebc211d32bf7", "openQty":
+          "100", "priorClose": "88.48", "avgPrice": "116", "side": "B", "costBasis": "5.8E+2",
+          "mktPrice": "90.71", "marketValue": "453.55", "unrealizedPL": 1.0, "availableForTradingQty":
+          "5", "name": "ConocoPhillips", "category": "Stock", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/cop.png",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 90.71,
+          "dailyReturnValue": 2.23, "yearlyReturnValue": 26.11, "yearlyReturnPercentage":
+          79.93, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
+          1.0, "symbol": "DVN", "encodedName": "devon-energy-corporation-dvn", "unrealizedDayPL":
+          "3.80", "instrumentID": "3962d255-47d5-4d7a-aeff-4fd1e2a324ed", "openQty":
+          "100", "priorClose": "57.21", "avgPrice": "61.77", "side": "B", "costBasis":
+          "5E+2", "mktPrice": "57.68", "marketValue": "466.91", "unrealizedPL": 1.0,
+          "availableForTradingQty": "8.09486805", "name": "Devon Energy Corporation",
+          "category": "Stock", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/dvn.png",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 57.68,
+          "dailyReturnValue": 0.47, "yearlyReturnValue": 15.36, "yearlyReturnPercentage":
+          181.23, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
+          1.0, "symbol": "LIT", "encodedName": "global-x-lithium-battery-tech-etf-lit",
+          "unrealizedDayPL": "0.90", "instrumentID": "52b17dd1-07cf-494f-9487-e4a7a2e67c6a",
+          "openQty": "100", "priorClose": "72.01", "avgPrice": "78", "side": "B", "costBasis":
+          "7.8E+2", "mktPrice": "72.1", "marketValue": "721", "unrealizedPL": 1.0, "availableForTradingQty":
+          "10", "name": "Global X Lithium & Battery Tech ETF", "category": "ETF", "urlImage":
+          "https://drivewealth.imgix.net/symbols/lit.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 72.1,
+          "dailyReturnValue": 0.09, "yearlyReturnValue": 29.94, "yearlyReturnPercentage":
+          116.84, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
+          1.0, "symbol": "MSFT", "encodedName": "microsoft-corporation-msft", "unrealizedDayPL":
+          "8.95", "instrumentID": "e234cc98-cd08-4b04-a388-fe5c822beea6", "openQty":
+          "100", "priorClose": "259.53", "avgPrice": "306.15", "side": "B", "costBasis":
+          "1E+3", "mktPrice": "262.27", "marketValue": "856.67", "unrealizedPL": 1.0,
+          "availableForTradingQty": "3.26637269", "name": "Microsoft Corporation", "category":
+          "Stock", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/msft.png",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 262.27,
+          "dailyReturnValue": 2.74, "yearlyReturnValue": 74.48, "yearlyReturnPercentage":
+          46.75, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
+          1.0, "symbol": "MU", "encodedName": "micron-technology-inc-mu", "unrealizedDayPL":
+          "9.00", "instrumentID": "0baafbff-dcc6-4645-8d27-4b4baf8a37ac", "openQty":
+          "100", "priorClose": "62.4", "avgPrice": "89", "side": "B", "costBasis":
+          "8.9E+2", "mktPrice": "63.3", "marketValue": "633", "unrealizedPL": 1.0, "availableForTradingQty":
+          "10", "name": "Micron Technology Inc.", "category": "Stock", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/mu.png",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 63.3,
+          "dailyReturnValue": 0.9, "yearlyReturnValue": 41.44, "yearlyReturnPercentage":
+          86.59, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
+          1.0, "symbol": "VPU", "encodedName": "utilities-vanguard-vpu", "unrealizedDayPL":
+          "-3.93", "instrumentID": "102ed336-3edf-414e-87fa-b004da9d5e73", "openQty":
+          "100", "priorClose": "151.01", "avgPrice": "154.56", "side": "B", "costBasis":
+          "3.1E+2", "mktPrice": "149.05", "marketValue": "298.95", "unrealizedPL": 1.0,
+          "availableForTradingQty": "2.00569358", "name": "Utilities Vanguard ", "category":
+          "ETF", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/vpu.png",
+          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 149.05,
+          "dailyReturnValue": -1.96, "yearlyReturnValue": -0.97, "yearlyReturnPercentage":
+          -0.71, "period": "YEAR RETURN", "exchange": null}], "equityValue": 4324.07,
+          "pricesOnly": false, "pageNum": 0, "hasNext": false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/v2/equityPositions
+version: 1
diff --git a/tests/cassettes/test_equity/test_list_equities[exchange1].yaml b/tests/cassettes/test_equity/test_list_equities[exchange1].yaml
new file mode 100644
index 0000000..5db4e04
--- /dev/null
+++ b/tests/cassettes/test_equity/test_list_equities[exchange1].yaml
@@ -0,0 +1,85 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/equityPositions
+    response:
+      body:
+        string:
+          '{"pageNum": 0, "hasNext": false, "equityPositions": [{"instrumentId":
+          "FUEL.XAU", "symbol": "FUEL", "name": "BETA GLOBAL ENERGY ETF UNITS", "openQty":
+          "100", "availableForTradingQty": "170", "averagePrice": "5.9400", "marketValue":
+          "953.7000", "mktPrice": "5.6100", "priorClose": "5.5900", "unrealizedDayPL":
+          "3.4000", "unrealizedDayPLPercent": 1.0, "unrealizedPL": 1.0, "unrealizedPLPercent":
+          "-5.56", "recentAnnouncement": false, "sensitive": false}, {"instrumentId":
+          "WDS.XAU", "symbol": "WDS", "name": "WOODSIDE ENERGY FPO", "openQty": "100",
+          "availableForTradingQty": "3", "averagePrice": "0", "marketValue": "93.4200",
+          "mktPrice": "31.1400", "priorClose": "32.5700", "unrealizedDayPL": "-4.2900",
+          "unrealizedDayPLPercent": 1.0, "unrealizedPL": 1.0, "unrealizedPLPercent":
+          "0", "recentAnnouncement": true, "sensitive": true}, {"instrumentId": "WTC.XAU",
+          "symbol": "WTC", "name": "WISETECH GLOBAL LTD FPO", "openQty": "100", "availableForTradingQty":
+          "10", "averagePrice": "51.5000", "marketValue": "491.8000", "mktPrice": "49.1800",
+          "priorClose": "47.4900", "unrealizedDayPL": "16.9000", "unrealizedDayPLPercent":
+          1.0, "unrealizedPL": 1.0, "unrealizedPLPercent": "-4.50", "recentAnnouncement":
+          false, "sensitive": false}, {"instrumentId": "ALU.XAU", "symbol": "ALU", "name":
+          "ALTIUM LIMITED FPO", "openQty": "100", "availableForTradingQty": "20", "averagePrice":
+          "35.0000", "marketValue": "615.0000", "mktPrice": "30.7500", "priorClose":
+          "29.6800", "unrealizedDayPL": "21.4000", "unrealizedDayPLPercent": 1.0, "unrealizedPL":
+          1.0, "unrealizedPLPercent": "-12.14", "recentAnnouncement": false, "sensitive":
+          false}, {"instrumentId": "BHP.XAU", "symbol": "BHP", "name": "BHP GROUP LIMITED
+          FPO", "openQty": "100", "availableForTradingQty": "20", "averagePrice": "50.8000",
+          "marketValue": "735.8000", "mktPrice": "36.7900", "priorClose": "37.1100",
+          "unrealizedDayPL": "-6.4000", "unrealizedDayPLPercent": 1.0, "unrealizedPL":
+          1.0, "unrealizedPLPercent": "-27.58", "recentAnnouncement": false, "sensitive":
+          false}, {"instrumentId": "FOOD.XAU", "symbol": "FOOD", "name": "BETA GLOBAL
+          AGRI ETF UNITS", "openQty": "100", "availableForTradingQty": "100", "averagePrice":
+          "8.4700", "marketValue": "704.0000", "mktPrice": "7.0400", "priorClose": "7.0000",
+          "unrealizedDayPL": "4.0000", "unrealizedDayPLPercent": 1.0, "unrealizedPL":
+          1.0, "unrealizedPLPercent": "-16.88", "recentAnnouncement": false, "sensitive":
+          false}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/equityPositions
+version: 1
diff --git a/tests/cassettes/test_funding/test_cash_available.yaml b/tests/cassettes/test_funding/test_cash_available.yaml
deleted file mode 100644
index 80632ff..0000000
--- a/tests/cassettes/test_funding/test_cash_available.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-interactions:
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/user
-    response:
-      body:
-        string:
-          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
-          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
-          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
-          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
-          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
-          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
-          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
-          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/user
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/users/accounts/cashAvailableForWithdrawal
-    response:
-      body:
-        string:
-          '{"cashAvailableForWithdrawal": 1000, "cashAvailableForTrade": 800,
-          "cashBalance": 16228.22, "reservedCash": 0.0, "liquidCash": 16228.22, "dwCashAvailableForWithdrawal":
-          1000, "pendingOrdersAmount": 0.0, "pendingWithdrawals": 0.0, "cardHoldAmount":
-          0.0, "pendingPoliAmount": 0.0, "cashSettlement": [{"utcTime": "2022-01-20T14:30:00.001Z",
-          "cash": 0.0}, {"utcTime": "2022-01-21T14:30:00.001Z", "cash": 12622.53}, null]}'
-      headers:
-        Access-Control-Allow-Headers:
-          - Content-type, Accept, Stake-Session-Token, stake_tid
-        Access-Control-Allow-Methods:
-          - GET, POST, DELETE, PUT
-        Access-Control-Allow-Origin:
-          - "*"
-        Connection:
-          - keep-alive
-        Content-Length:
-          - "399"
-        Content-Type:
-          - application/json
-        Date:
-          - Thu, 20 Jan 2022 00:18:38 GMT
-        Via:
-          - 1.1 6f4ca7db93883fe5e25a91018517d110.cloudfront.net (CloudFront)
-        X-Amz-Cf-Id:
-          - lDiTUKNyAXZca65miOZL6TZGQXxToWMlWfjEajvhXvHfPkqIWMJMeQ==
-        X-Amz-Cf-Pop:
-          - SYD62-P2
-        X-Cache:
-          - Miss from cloudfront
-        stake_tid:
-          - 782cefb9-9dd3-43a2-b438-601b31e68eed
-        x-amz-apigw-id:
-          - MN-OtESVywMFcPg=
-        x-amzn-Remapped-Content-Length:
-          - "399"
-        x-amzn-Remapped-Date:
-          - Thu, 20 Jan 2022 00:18:37 GMT
-        x-amzn-Remapped-Server:
-          - Jetty(9.4.44.v20210927)
-        x-amzn-RequestId:
-          - 0ff79119-e818-40af-89aa-54b0f878a7de
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/users/accounts/cashAvailableForWithdrawal
-version: 1
diff --git a/tests/cassettes/test_funding/test_cash_available[exchange0].yaml b/tests/cassettes/test_funding/test_cash_available[exchange0].yaml
new file mode 100644
index 0000000..a8e31ae
--- /dev/null
+++ b/tests/cassettes/test_funding/test_cash_available[exchange0].yaml
@@ -0,0 +1,59 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/cashAvailableForWithdrawal
+    response:
+      body:
+        string:
+          '{"cashAvailableForWithdrawal": 1000, "cashAvailableForTrade": 800,
+          "cashBalance": 1000.0, "reservedCash": 0.0, "liquidCash": 1000.0, "dwCashAvailableForWithdrawal":
+          1000, "pendingOrdersAmount": 0.0, "pendingWithdrawals": 0.0, "cardHoldAmount":
+          0.0, "pendingPoliAmount": 0.0, "cashSettlement": [{"utcTime": "2022-07-27T13:30:00.001Z",
+          "cash": 0.0}, {"utcTime": "2022-07-28T13:30:00.001Z", "cash": 0.0}, null]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/cashAvailableForWithdrawal
+version: 1
diff --git a/tests/cassettes/test_funding/test_cash_available[exchange1].yaml b/tests/cassettes/test_funding/test_cash_available[exchange1].yaml
new file mode 100644
index 0000000..2cd1262
--- /dev/null
+++ b/tests/cassettes/test_funding/test_cash_available[exchange1].yaml
@@ -0,0 +1,58 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/cash
+    response:
+      body:
+        string:
+          '{"settledCash": 10000.0, "tradeSettlement": 0.0, "buyingPower": 1000.0,
+          "pendingBuys": 0.0, "settlementHold": 0.0, "pendingWithdrawals": 0.0, "cashAvailableForWithdrawal":
+          1000, "cashAvailableForTransfer": 1000, "cashAvailableForWithdrawalHold":
+          0.0, "clearingCash": 0.0}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/cash
+version: 1
diff --git a/tests/cassettes/test_funding/test_funds_in_flight.yaml b/tests/cassettes/test_funding/test_funds_in_flight[exchange0].yaml
similarity index 60%
rename from tests/cassettes/test_funding/test_funds_in_flight.yaml
rename to tests/cassettes/test_funding/test_funds_in_flight[exchange0].yaml
index 7a38bd9..8965539 100644
--- a/tests/cassettes/test_funding/test_funds_in_flight.yaml
+++ b/tests/cassettes/test_funding/test_funds_in_flight[exchange0].yaml
@@ -13,21 +13,22 @@ interactions:
         string:
           '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
           true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
           "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
           null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
           null, "userProfile": {"residentialAddress": null, "postalAddress": null},
           "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
           "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
           "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
       headers: {}
       status:
         code: 200
@@ -44,7 +45,7 @@ interactions:
       uri: https://global-prd-api.hellostake.com/api/fund/details
     response:
       body:
-        string: '{"fundsInFlight": [{"type": "Funding","insertDateTime": "17 Sep 2020 05:21AM","estimatedArrivalTime": "19 Sep 2020 05:00AM","estimatedArrivalTimeUS": "Fri 1:00pm NY time","transactionType": "Poli", "toAmount": 1512.0,"fromAmount": 2100.0}]}'
+        string: '{"fundsInFlight": []}'
       headers: {}
       status:
         code: 200
diff --git a/tests/cassettes/test_funding/test_funds_in_flight[exchange1].yaml b/tests/cassettes/test_funding/test_funds_in_flight[exchange1].yaml
new file mode 100644
index 0000000..81a0ba7
--- /dev/null
+++ b/tests/cassettes/test_funding/test_funds_in_flight[exchange1].yaml
@@ -0,0 +1,54 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/transactions?status=PENDING&status=AWAITING_APPROVAL&size=100&page=0
+    response:
+      body:
+        string: '{"items": [], "hasNext": false, "page": 0, "totalItems": 0}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/transactions?status=PENDING&status=AWAITING_APPROVAL&size=100&page=0
+version: 1
diff --git a/tests/cassettes/test_funding/test_list_fundings.yaml b/tests/cassettes/test_funding/test_list_fundings.yaml
deleted file mode 100644
index 45eb9a5..0000000
--- a/tests/cassettes/test_funding/test_list_fundings.yaml
+++ /dev/null
@@ -1,1245 +0,0 @@
-interactions:
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/user
-    response:
-      body:
-        string:
-          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
-          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
-          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
-          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
-          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
-          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
-          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
-          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
-          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
-          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
-          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
-          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
-          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
-          false}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/user
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: POST
-      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactionHistory
-    response:
-      body:
-        string:
-          '[{"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2022-07-11T04:18:43.146Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "LIT", "side": "CREDIT",
-          "text": "LIT Dividend", "comment": "A1-6376984m", "amountPerShare": 0.0622,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2022-07-11T04:18:41.566Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "LIT", "side": "DEBIT", "text": "LIT Dividend Tax", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2022-07-01T05:02:24.499Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "DVN", "side": "DEBIT",
-          "text": "DVN Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2022-07-01T05:02:24.440Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DVN", "side": "CREDIT", "text": "DVN Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 1.27, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2022-06-29T05:23:39.735Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VPU", "side": "DEBIT",
-          "text": "VPU Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2022-06-29T05:23:39.524Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VPU", "side": "CREDIT", "text": "VPU Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 1.0871, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2022-06-29T05:23:19.817Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2022-06-29T05:23:13.568Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "CREDIT", "text": "VGT Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.5955, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2022-06-24T19:59:05.849Z", "tranAmount": 1000, "feeAmount": -0.2, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "CREDIT",
-          "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-06-10T18:04:23.380Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "COP", "side": "DEBIT", "text": "COP Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2022-06-10T04:17:57.976Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "DEBIT",
-          "text": "MSFT Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2022-06-10T04:17:55.921Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MSFT", "side": "CREDIT", "text": "MSFT Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.62, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2022-05-16T04:24:07.547Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AAPL", "side": "CREDIT",
-          "text": "AAPL Dividend", "comment": "A1-6376984m", "amountPerShare": 0.23,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2022-05-16T04:23:59.589Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AAPL", "side": "DEBIT", "text": "AAPL Dividend Tax", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Dividend Tax", "finTranTypeID":
-          "DIVTAX", "timestamp": "2022-04-27T05:01:49.689Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MU",
-          "side": "DEBIT", "text": "MU Dividend Tax", "comment": "A1-6376984m", "amountPerShare":
-          0.0, "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null},
-          {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp": "2022-04-27T05:01:49.389Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MU", "side": "CREDIT", "text": "MU Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.1, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2022-04-20T18:06:49.129Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "CF", "side": "CREDIT",
-          "text": "CF Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2022-04-08T19:52:59.427Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "LAC", "side": "CREDIT", "text": "LAC Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-04-05T13:32:24.848Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "LAC", "side": "DEBIT",
-          "text": "LAC Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-03-31T13:30:25.399Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2022-03-30T05:06:59.840Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VPU", "side": "DEBIT",
-          "text": "VPU Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2022-03-30T05:06:59.685Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VPU", "side": "CREDIT", "text": "VPU Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 1.012, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-03-23T19:49:40.429Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AAPL", "side": "DEBIT",
-          "text": "AAPL Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-03-23T19:45:04.628Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DVN", "side": "DEBIT", "text": "DVN Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-03-23T19:44:17.487Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "CF", "side": "DEBIT", "text": "CF Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-03-22T13:48:03.194Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "CF", "side": "DEBIT", "text": "CF Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2022-03-16T19:44:03.451Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "USO", "side": "CREDIT",
-          "text": "USO Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2022-03-11T05:30:05.575Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MSFT", "side": "DEBIT", "text": "MSFT Dividend Tax", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Dividend", "finTranTypeID": "DIV",
-          "timestamp": "2022-03-11T05:29:02.009Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT",
-          "side": "CREDIT", "text": "MSFT Dividend", "comment": "A1-6376984m", "amountPerShare":
-          0.62, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null},
-          {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-03-09T20:51:29.433Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "USO", "side": "DEBIT", "text": "USO Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-03-07T14:30:37.492Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VPU", "side": "DEBIT",
-          "text": "VPU Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-03-03T15:52:41.512Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MU", "side": "DEBIT", "text": "MU Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2022-02-23T20:08:06.716Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "META", "side": "CREDIT",
-          "text": "META Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2022-02-23T20:07:39.177Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HCP", "side": "CREDIT", "text": "HCP Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2022-02-23T20:07:21.630Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "CREDIT",
-          "text": "TQQQ Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2022-02-14T19:00:05.096Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "BGFV", "side": "CREDIT", "text": "BGFV Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-02-09T20:53:41.892Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "HCP", "side": "DEBIT",
-          "text": "HCP Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-02-07T15:14:07.113Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "LIT", "side": "DEBIT", "text": "LIT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-02-07T14:30:17.065Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "LAC", "side": "DEBIT", "text": "LAC Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2022-02-04T14:30:21.496Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "META", "side": "DEBIT", "text": "META Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-02-03T20:59:21.326Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "DEBIT",
-          "text": "TQQQ Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-02-01T19:05:08.572Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MSFT", "side": "DEBIT", "text": "MSFT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-02-01T19:02:46.923Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "USO", "side": "DEBIT",
-          "text": "USO Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-01-26T14:30:26.163Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "BGFV", "side": "DEBIT", "text": "BGFV Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2022-01-20T20:56:55.374Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2022-01-20T20:56:35.024Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "COP", "side": "CREDIT", "text": "COP Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2022-01-20T20:54:03.870Z", "tranAmount": 1000, "feeAmount": -0.03, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VXUS", "side": "CREDIT",
-          "text": "VXUS Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2022-01-20T20:53:49.069Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VOOG", "side": "CREDIT", "text": "VOOG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2022-01-20T20:53:24.924Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "CREDIT",
-          "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2022-01-20T20:52:49.516Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "COP", "side": "CREDIT", "text": "COP Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2022-01-20T20:52:16.495Z", "tranAmount": 1000, "feeAmount": -0.05, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "CREDIT",
-          "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2022-01-20T20:36:44.144Z",
-          "tranAmount": 1000, "feeAmount": -0.04, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "CREDIT", "text": "TQQQ Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2022-01-19T20:09:00.997Z", "tranAmount": 1000, "feeAmount": -0.07, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "CREDIT",
-          "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-01-13T19:46:38.123Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "COP", "side": "DEBIT", "text": "COP Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Corporate Action", "finTranTypeID": "STOCK_SPLIT",
-          "timestamp": "2022-01-13T09:04:30.465Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ",
-          "side": "CREDIT", "text": "TQQQ Corporate Action", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Corporate Action", "finTranTypeID": "STOCK_SPLIT",
-          "timestamp": "2022-01-13T09:04:27.922Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ",
-          "side": "CREDIT", "text": "TQQQ Corporate Action", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2022-01-04T20:10:31.171Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "DEBIT",
-          "text": "TQQQ Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2022-01-04T20:09:59.572Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-31T20:44:04.419Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "DEBIT",
-          "text": "TQQQ Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-12-30T06:37:51.435Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VXUS", "side": "DEBIT", "text": "VXUS Dividend Tax", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Dividend", "finTranTypeID": "DIV",
-          "timestamp": "2021-12-30T06:37:51.262Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VXUS",
-          "side": "CREDIT", "text": "VXUS Dividend", "comment": "A1-6376984m", "amountPerShare":
-          0.9412, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null},
-          {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-12-28T20:05:30.839Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-12-28T05:27:57.153Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VOOG", "side": "DEBIT",
-          "text": "VOOG Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-12-28T05:27:55.881Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VOOG", "side": "CREDIT", "text": "VOOG Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.4662, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-12-27T05:27:22.441Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "NVDA", "side": "DEBIT",
-          "text": "NVDA Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-12-27T05:27:07.772Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "NVDA", "side": "CREDIT", "text": "NVDA Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.04, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-22T16:43:51.034Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "DEBIT",
-          "text": "TQQQ Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-12-22T07:03:30.393Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Dividend Tax", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-12-22T07:03:29.874Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "CREDIT",
-          "text": "VGT Dividend", "comment": "A1-6376984m", "amountPerShare": 0.8212,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-12-21T08:25:41.825Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HD", "side": "DEBIT", "text": "HD Dividend Tax", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-12-21T08:25:39.433Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "HD", "side": "CREDIT",
-          "text": "HD Dividend", "comment": "A1-6376984m", "amountPerShare": 1.65, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,SSAL,COMM", "timestamp": "2021-12-20T19:49:31.373Z",
-          "tranAmount": 1000, "feeAmount": -0.18, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "CREDIT", "text": "VGT Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-12-20T19:48:57.656Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "GOOGL", "side": "CREDIT",
-          "text": "GOOGL Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-12-20T19:47:10.385Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DOCN", "side": "CREDIT", "text": "DOCN Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-12-20T14:33:58.551Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TSLA", "side": "CREDIT",
-          "text": "TSLA Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-12-16T20:45:30.153Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VXUS", "side": "DEBIT", "text": "VXUS Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-16T20:44:31.666Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VOOG", "side": "DEBIT",
-          "text": "VOOG Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-12-14T17:48:22.585Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HD", "side": "CREDIT", "text": "HD Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-12-14T15:39:28.180Z", "tranAmount": 1000, "feeAmount": -0.03, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "CREDIT",
-          "text": "MSFT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-12-13T20:41:29.349Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOGL", "side": "DEBIT", "text": "GOOGL Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-13T20:40:06.335Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-12-13T16:14:46.592Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DELL", "side": "CREDIT", "text": "DELL Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-12-13T05:26:52.103Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "IBM", "side": "DEBIT",
-          "text": "IBM Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-12-13T05:26:51.570Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "IBM", "side": "CREDIT", "text": "IBM Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 1.64, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-12-13T05:26:51.272Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MRO", "side": "DEBIT",
-          "text": "MRO Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-12-13T05:26:51.236Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MRO", "side": "CREDIT", "text": "MRO Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.06, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-12-10T07:46:10.476Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "DEBIT",
-          "text": "MSFT Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-12-10T07:46:08.583Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MSFT", "side": "CREDIT", "text": "MSFT Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.62, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-12-09T20:47:38.066Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DOCN", "side": "DEBIT", "text": "DOCN Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-09T20:37:57.292Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "DEBIT",
-          "text": "MSFT Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-12-06T14:31:53.544Z",
-          "tranAmount": 1000, "feeAmount": -0.03, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "NVDA", "side": "CREDIT", "text": "NVDA Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-03T19:52:08.842Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-12-03T16:06:36.069Z",
-          "tranAmount": 1000, "feeAmount": -0.03, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TSLA", "side": "CREDIT", "text": "TSLA Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-12-03T15:08:52.753Z", "tranAmount": 1000, "feeAmount": -0.05, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "CREDIT",
-          "text": "MSFT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-12-02T17:37:47.239Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-12-02T15:38:39.431Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "U", "side": "CREDIT",
-          "text": "U Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-12-02T14:30:31.773Z",
-          "tranAmount": 1000, "feeAmount": -0.03, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AAPL", "side": "CREDIT", "text": "AAPL Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-12-01T20:55:25.798Z", "tranAmount": 1000, "feeAmount": -0.06, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "CREDIT",
-          "text": "TQQQ Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-12-01T20:20:07.034Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TSLA", "side": "DEBIT", "text": "TSLA Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-12-01T20:20:06.996Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "NVDA", "side": "DEBIT",
-          "text": "NVDA Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-12-01T18:17:24.929Z",
-          "tranAmount": 1000, "feeAmount": -0.05, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "SHOP", "side": "CREDIT", "text": "SHOP Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-12-01T16:20:48.473Z", "tranAmount": 1000, "feeAmount": -0.03, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TEAM", "side": "CREDIT",
-          "text": "TEAM Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-11-29T20:24:26.223Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HTZWW", "side": "DEBIT", "text": "HTZWW Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR,SPUR", "timestamp":
-          "2021-11-29T14:31:35.486Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "NVDA", "side": "DEBIT",
-          "text": "NVDA Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-11-29T14:31:28.055Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MSFT", "side": "DEBIT", "text": "MSFT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-29T14:31:26.874Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TSLA", "side": "DEBIT",
-          "text": "TSLA Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-26T14:48:19.616Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MGC", "side": "CREDIT", "text": "MGC Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,SSAL,COMM",
-          "timestamp": "2021-11-26T14:31:34.404Z", "tranAmount": 1000, "feeAmount":
-          -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MRO",
-          "side": "CREDIT", "text": "MRO Sell", "comment": "A1-6376984m", "amountPerShare":
-          0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-26T14:31:12.120Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VIG", "side": "CREDIT", "text": "VIG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-11-26T14:31:12.091Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "DVN", "side": "CREDIT",
-          "text": "DVN Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-11-26T14:31:04.420Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "FANG", "side": "CREDIT", "text": "FANG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-23T20:20:07.409Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TSLA", "side": "DEBIT",
-          "text": "TSLA Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-11-23T20:06:05.494Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "DEBIT", "text": "TQQQ Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-11-23T15:34:56.312Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "FTNT", "side": "CREDIT",
-          "text": "FTNT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-23T15:27:16.663Z",
-          "tranAmount": 1000, "feeAmount": -0.04, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "CREDIT", "text": "GOOG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,SSAL,COMM",
-          "timestamp": "2021-11-23T14:32:13.187Z", "tranAmount": 1000, "feeAmount":
-          -0.05, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT",
-          "side": "CREDIT", "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare":
-          0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-22T20:41:52.220Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "NVO", "side": "CREDIT", "text": "NVO Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-22T20:20:06.874Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "SHOP", "side": "DEBIT",
-          "text": "SHOP Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-22T18:04:58.248Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AVGO", "side": "CREDIT", "text": "AVGO Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-19T20:58:00.976Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "U", "side": "DEBIT",
-          "text": "U Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-19T20:54:12.634Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGK", "side": "CREDIT", "text": "VGK Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-19T20:22:00.898Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TEAM", "side": "DEBIT",
-          "text": "TEAM Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-19T20:17:43.256Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "FANG", "side": "CREDIT", "text": "FANG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-11-19T19:29:30.921Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "IBM", "side": "CREDIT",
-          "text": "IBM Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-11-19T18:39:20.690Z",
-          "tranAmount": 1000, "feeAmount": -0.03, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VXUS", "side": "CREDIT", "text": "VXUS Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-11-19T14:46:25.811Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "OXY", "side": "CREDIT",
-          "text": "OXY Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-11-19T14:30:50.937Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "PNC", "side": "CREDIT", "text": "PNC Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-11-19T14:30:18.781Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "KD", "side": "CREDIT",
-          "text": "KD Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-11-19T05:43:01.367Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "FANG", "side": "DEBIT", "text": "FANG Dividend Tax", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Dividend", "finTranTypeID": "DIV",
-          "timestamp": "2021-11-19T05:43:01.341Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "FANG",
-          "side": "CREDIT", "text": "FANG Dividend", "comment": "A1-6376984m", "amountPerShare":
-          0.5, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-11-18T20:07:46.275Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "U", "side": "DEBIT", "text": "U Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-11-18T15:10:48.825Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "EOG", "side": "CREDIT",
-          "text": "EOG Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-18T14:50:21.778Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "APA", "side": "CREDIT", "text": "APA Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-11-17T06:06:24.766Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AAPL", "side": "DEBIT",
-          "text": "AAPL Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-11-17T06:05:27.978Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AAPL", "side": "CREDIT", "text": "AAPL Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.22, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-11-15T05:26:57.521Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "INFO", "side": "CREDIT",
-          "text": "INFO Dividend", "comment": "A1-6376984m", "amountPerShare": 0.2,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-12T16:08:21.237Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "PATH", "side": "CREDIT", "text": "PATH Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-11-11T20:51:03.679Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "COP", "side": "CREDIT",
-          "text": "COP Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-11-10T20:27:35.598Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-10T20:26:59.981Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "DEBIT",
-          "text": "MSFT Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-11-10T20:20:07.019Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "SHOP", "side": "DEBIT", "text": "SHOP Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-11-10T19:23:39.679Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "CRM", "side": "CREDIT",
-          "text": "CRM Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-10T19:01:57.946Z",
-          "tranAmount": 1000, "feeAmount": -0.05, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "CREDIT", "text": "TQQQ Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-09T20:43:00.009Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-09T20:01:33.865Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HTZWW", "side": "CREDIT", "text": "HTZWW Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-08T19:36:41.248Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AAPL", "side": "DEBIT",
-          "text": "AAPL Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Corporate Action", "finTranTypeID": "SPINOFF", "timestamp": "2021-11-08T05:27:15.811Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "KD", "side": "CREDIT", "text": "KD Corporate Action", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Corporate Action", "finTranTypeID":
-          "SPINOFF", "timestamp": "2021-11-08T05:27:14.954Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "IBM",
-          "side": "CREDIT", "text": "IBM Corporate Action", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Corporate Action", "finTranTypeID": "SPINOFF",
-          "timestamp": "2021-11-08T05:27:14.721Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "IBM",
-          "side": "CREDIT", "text": "IBM Corporate Action", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-05T19:20:08.004Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "SHOP", "side": "DEBIT",
-          "text": "SHOP Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-05T15:33:21.438Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DOCU", "side": "CREDIT", "text": "DOCU Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-05T13:30:30.527Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "PATH", "side": "DEBIT",
-          "text": "PATH Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-11-03T14:05:19.917Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "INFO", "side": "CREDIT", "text": "INFO Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-02T19:20:07.534Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "SHOP", "side": "DEBIT",
-          "text": "SHOP Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-11-02T14:14:05.879Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "DEBIT", "text": "TQQQ Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-11-02T13:46:13.275Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "DELL", "side": "DEBIT",
-          "text": "DELL Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-11-01T19:20:06.593Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "DEBIT", "text": "GOOG Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-11-01T14:05:04.192Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "ESS", "side": "CREDIT",
-          "text": "ESS Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-29T18:14:00.282Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AAPL", "side": "DEBIT", "text": "AAPL Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-29T18:13:00.319Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VXUS", "side": "DEBIT", "text": "VXUS Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-10-29T13:30:58.875Z", "tranAmount": 1000, "feeAmount": -0.03, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AAPL", "side": "CREDIT",
-          "text": "AAPL Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-28T19:44:11.062Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "DEBIT", "text": "GOOG Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-28T16:38:26.424Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "COP", "side": "DEBIT", "text": "COP Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,SSAL,COMM",
-          "timestamp": "2021-10-28T16:33:37.743Z", "tranAmount": 1000, "feeAmount":
-          -0.1, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TEAM",
-          "side": "CREDIT", "text": "TEAM Sell", "comment": "A1-6376984m", "amountPerShare":
-          0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-28T16:27:57.097Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "IBM", "side": "DEBIT", "text": "IBM Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-27T19:20:06.378Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TEAM", "side": "DEBIT",
-          "text": "TEAM Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-10-27T13:30:17.473Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "OXY", "side": "DEBIT", "text": "OXY Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-10-26T16:45:50.841Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "ASAN", "side": "CREDIT",
-          "text": "ASAN Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-26T13:30:04.644Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "CRM", "side": "DEBIT", "text": "CRM Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-25T13:31:17.215Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "FANG", "side": "DEBIT",
-          "text": "FANG Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-10-25T13:30:27.623Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "APA", "side": "DEBIT", "text": "APA Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-25T13:30:16.903Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "EOG", "side": "DEBIT",
-          "text": "EOG Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-10-25T13:30:02.993Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DVN", "side": "DEBIT", "text": "DVN Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-22T19:20:06.755Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "DEBIT", "text": "GOOG Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-22T18:51:49.416Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "DEBIT",
-          "text": "TQQQ Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-10-22T15:24:58.048Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "CREDIT", "text": "GOOG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-10-22T15:21:56.804Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "SHOP", "side": "CREDIT",
-          "text": "SHOP Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-10-22T13:30:35.194Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "META", "side": "CREDIT", "text": "META Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-22T13:30:06.743Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HD", "side": "DEBIT", "text": "HD Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-21T18:41:24.734Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "DOCU", "side": "DEBIT",
-          "text": "DOCU Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-21T18:39:59.053Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "FTNT", "side": "DEBIT", "text": "FTNT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-21T18:39:11.942Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "PNC", "side": "DEBIT", "text": "PNC Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-19T18:51:11.901Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MRO", "side": "DEBIT",
-          "text": "MRO Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-18T18:55:56.928Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "SHOP", "side": "DEBIT", "text": "SHOP Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-18T17:12:04.390Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TEAM", "side": "DEBIT",
-          "text": "TEAM Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-10-18T04:26:17.710Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "ESS", "side": "DEBIT", "text": "ESS Dividend Tax", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-10-18T04:26:17.700Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "ESS", "side": "CREDIT",
-          "text": "ESS Dividend", "comment": "A1-6376984m", "amountPerShare": 2.09,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-10-14T16:44:09.474Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "ASAN", "side": "DEBIT", "text": "ASAN Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-10-05T05:28:44.557Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-10-05T05:28:42.768Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "CREDIT", "text": "VGT Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.8869, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-10-05T05:28:40.135Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MGC", "side": "DEBIT",
-          "text": "MGC Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-10-05T05:28:40.134Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MGC", "side": "CREDIT", "text": "MGC Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.5115, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-10-04T19:20:08.070Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "META", "side": "DEBIT",
-          "text": "META Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR,SPUR", "timestamp": "2021-10-04T19:20:07.600Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGT", "side": "DEBIT", "text": "VGT Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-10-04T19:20:07.484Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "DEBIT", "text": "GOOG Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-10-04T17:03:28.034Z", "tranAmount": 1000, "feeAmount": -0.05, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "CREDIT",
-          "text": "VGT Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-10-04T15:02:50.845Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TTD", "side": "CREDIT", "text": "TTD Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-10-04T14:54:59.806Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "META", "side": "CREDIT",
-          "text": "META Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-10-04T14:54:15.587Z",
-          "tranAmount": 1000, "feeAmount": -0.04, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GOOG", "side": "CREDIT", "text": "GOOG Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-10-04T14:35:37.302Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "ZBRA", "side": "CREDIT",
-          "text": "ZBRA Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-10-04T14:27:57.630Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MA", "side": "CREDIT", "text": "MA Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-10-04T14:19:40.562Z", "tranAmount": 1000, "feeAmount": -0.06, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "CREDIT",
-          "text": "TQQQ Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-10-01T13:33:36.720Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MTD", "side": "CREDIT", "text": "MTD Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-10-01T13:30:19.833Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MRNA", "side": "CREDIT",
-          "text": "MRNA Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-10-01T05:28:39.894Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AVGO", "side": "DEBIT", "text": "AVGO Dividend Tax", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Dividend", "finTranTypeID": "DIV",
-          "timestamp": "2021-10-01T05:28:26.400Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AVGO",
-          "side": "CREDIT", "text": "AVGO Dividend", "comment": "A1-6376984m", "amountPerShare":
-          3.6, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Funding", "finTranTypeID": "JNLC", "timestamp": "2021-09-30T15:45:50.425Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": null, "side": "CREDIT", "text": "Deposit", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          "Funding"}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM",
-          "timestamp": "2021-09-29T16:06:35.661Z", "tranAmount": 1000, "feeAmount":
-          -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "APLS",
-          "side": "CREDIT", "text": "APLS Sell", "comment": "A1-6376984m", "amountPerShare":
-          0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-09-28T19:20:08.154Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "DEBIT", "text": "TQQQ Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-09-27T13:30:07.195Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "OTIS", "side": "CREDIT",
-          "text": "OTIS Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-09-24T05:12:11.562Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VGK", "side": "CREDIT", "text": "VGK Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.392, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-09-24T05:12:11.561Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VIG", "side": "CREDIT",
-          "text": "VIG Dividend", "comment": "A1-6376984m", "amountPerShare": 0.6995,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-09-24T05:12:08.897Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "VIG", "side": "DEBIT", "text": "VIG Dividend Tax", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-09-24T05:12:08.257Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGK", "side": "DEBIT",
-          "text": "VGK Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-09-20T19:20:07.321Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "DEBIT", "text": "TQQQ Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-09-17T19:20:08.704Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TQQQ", "side": "DEBIT",
-          "text": "TQQQ Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-09-15T13:32:35.551Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "ZM", "side": "CREDIT", "text": "ZM Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-09-14T04:29:15.074Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "OTIS", "side": "DEBIT",
-          "text": "OTIS Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-09-14T04:29:15.070Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "OTIS", "side": "CREDIT", "text": "OTIS Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.24, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-09-13T13:30:54.273Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "APLS", "side": "DEBIT",
-          "text": "APLS Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-09-10T04:31:29.333Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MSFT", "side": "CREDIT", "text": "MSFT Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 0.56, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-09-10T04:29:13.376Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MSFT", "side": "DEBIT",
-          "text": "MSFT Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-09-07T13:31:43.204Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AVGO", "side": "DEBIT", "text": "AVGO Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-09-02T18:24:58.818Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "META", "side": "DEBIT",
-          "text": "META Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-08-26T04:44:20.322Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "NVO", "side": "DEBIT", "text": "NVO Dividend Tax", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.27, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-08-26T04:44:20.307Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "NVO", "side": "CREDIT",
-          "text": "NVO Dividend", "comment": "A1-6376984m", "amountPerShare": 0.5297,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-08-19T19:11:36.554Z",
-          "tranAmount": 1000, "feeAmount": -0.02, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AMZN", "side": "CREDIT", "text": "AMZN Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-08-17T19:30:36.221Z", "tranAmount": 1000, "feeAmount": -0.02, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "DOCU", "side": "CREDIT",
-          "text": "DOCU Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-08-16T19:20:06.719Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DOCU", "side": "DEBIT", "text": "DOCU Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend", "finTranTypeID": "DIV", "timestamp":
-          "2021-08-16T04:25:20.737Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "INFO", "side": "CREDIT",
-          "text": "INFO Dividend", "comment": "A1-6376984m", "amountPerShare": 0.2,
-          "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp": "2021-08-13T04:32:04.390Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AAPL", "side": "DEBIT", "text": "AAPL Dividend Tax", "comment":
-          "A1-6376984m", "amountPerShare": 0.0, "taxRate": 0.15, "reference": "S7-1945193t",
-          "referenceType": null}, {"transactionType": "Dividend", "finTranTypeID": "DIV",
-          "timestamp": "2021-08-13T04:27:26.991Z", "tranAmount": 1000, "feeAmount":
-          0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "AAPL",
-          "side": "CREDIT", "text": "AAPL Dividend", "comment": "A1-6376984m", "amountPerShare":
-          0.22, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType": null},
-          {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-08-11T19:20:07.255Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DOCU", "side": "DEBIT", "text": "DOCU Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Funding", "finTranTypeID": "JNLC", "timestamp":
-          "2021-08-10T15:45:02.683Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": null, "side": "CREDIT",
-          "text": "Deposit", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": "Funding"}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR", "timestamp": "2021-08-09T13:30:42.908Z", "tranAmount":
-          1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "ZBRA", "side": "DEBIT", "text": "ZBRA Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-08-05T19:47:51.824Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "MRNA", "side": "DEBIT",
-          "text": "MRNA Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-07-29T13:30:36.451Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "PYPL", "side": "CREDIT", "text": "PYPL Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-07-27T19:43:42.554Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "VGT", "side": "DEBIT",
-          "text": "VGT Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-07-27T19:20:07.447Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "DEBIT", "text": "TQQQ Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-07-26T14:36:47.846Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "DORM", "side": "CREDIT",
-          "text": "DORM Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-07-19T19:20:08.096Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "TQQQ", "side": "DEBIT", "text": "TQQQ Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-07-19T13:59:56.084Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "CLH", "side": "CREDIT",
-          "text": "CLH Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-07-19T13:31:15.296Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "AVGO", "side": "CREDIT", "text": "AVGO Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-07-19T13:31:09.356Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TDG", "side": "CREDIT",
-          "text": "TDG Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-07-19T13:31:09.336Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "GNRC", "side": "CREDIT", "text": "GNRC Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp":
-          "2021-07-16T19:56:12.186Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "BBWI", "side": "CREDIT",
-          "text": "BBWI Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-07-16T19:09:09.794Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "DECK", "side": "CREDIT", "text": "DECK Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Dividend Tax", "finTranTypeID": "DIVTAX", "timestamp":
-          "2021-07-16T04:23:40.569Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "ESS", "side": "DEBIT",
-          "text": "ESS Dividend Tax", "comment": "A1-6376984m", "amountPerShare": 0.0,
-          "taxRate": 0.15, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Dividend", "finTranTypeID": "DIV", "timestamp": "2021-07-16T04:23:40.564Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "ESS", "side": "CREDIT", "text": "ESS Dividend", "comment": "A1-6376984m",
-          "amountPerShare": 2.09, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-07-15T14:00:27.200Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "TTD", "side": "DEBIT",
-          "text": "TTD Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,COMM", "timestamp": "2021-07-15T13:37:57.687Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "NVDA", "side": "CREDIT", "text": "NVDA Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Sell", "finTranTypeID": "SSAL,COMM", "timestamp":
-          "2021-07-14T19:40:34.895Z", "tranAmount": 1000, "feeAmount": -0.01, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "LNW", "side": "CREDIT",
-          "text": "LNW Sell", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Sell", "finTranTypeID": "SSAL,SSAL,COMM", "timestamp": "2021-07-13T14:40:55.748Z",
-          "tranAmount": 1000, "feeAmount": -0.01, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "HTZ", "side": "CREDIT", "text": "HTZ Sell", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}, {"transactionType": "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp":
-          "2021-07-13T13:30:11.657Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
-          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": "ZM", "side": "DEBIT",
-          "text": "ZM Buy", "comment": "A1-6376984m", "amountPerShare": 0.0, "taxRate":
-          0.0, "reference": "S7-1945193t", "referenceType": null}, {"transactionType":
-          "Buy", "finTranTypeID": "SPUR,SPUR", "timestamp": "2021-07-13T13:30:07.825Z",
-          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "symbol": "MA", "side": "DEBIT", "text": "MA Buy", "comment": "A1-6376984m",
-          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "S7-1945193t", "referenceType":
-          null}]'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/users/accounts/transactionHistory
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=S7-1945193t&referenceType=Funding
-    response:
-      body:
-        string:
-          '{"insertDate": 1628229668979, "channel": "Poli", "amountTo": 2196.01,
-          "amountFrom": 3000.0, "status": "RECONCILED", "speed": "Regular", "fxFee":
-          20.39, "expressFee": 0.0, "channelFee": null, "totalFee": 20.39, "feesDisplayCurrency":
-          "USD", "spotRate": 0.7388, "reference": "S7-1945193t", "w8fee": 0.0, "currencyFrom":
-          "AUD", "currencyTo": "USD", "iof": null, "vet": null, "bsb": null, "accountNumber":
-          null, "transactionDetails": null}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=S7-1945193t&referenceType=Funding
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=S7-1945193t&referenceType=Funding
-    response:
-      body:
-        string:
-          '{"insertDate": 1632879790963, "channel": "Poli", "amountTo": 3796.79,
-          "amountFrom": 5300.0, "status": "RECONCILED", "speed": "Regular", "fxFee":
-          35.64, "expressFee": 0.0, "channelFee": null, "totalFee": 35.64, "feesDisplayCurrency":
-          "USD", "spotRate": 0.7231, "reference": "S7-1945193t", "w8fee": 0.0, "currencyFrom":
-          "AUD", "currencyTo": "USD", "iof": null, "vet": null, "bsb": null, "accountNumber":
-          null, "transactionDetails": null}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=S7-1945193t&referenceType=Funding
-version: 1
diff --git a/tests/cassettes/test_funding/test_list_fundings[exchange0-request_0].yaml b/tests/cassettes/test_funding/test_list_fundings[exchange0-request_0].yaml
new file mode 100644
index 0000000..0a797ad
--- /dev/null
+++ b/tests/cassettes/test_funding/test_list_fundings[exchange0-request_0].yaml
@@ -0,0 +1,109 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactionHistory
+    response:
+      body:
+        string: '[{"transactionType":
+          "Funding", "finTranTypeID": "JNLC", "timestamp": "2021-09-30T15:45:50.425Z",
+          "tranAmount": 1000, "feeAmount": 0.0, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "symbol": null, "side": "CREDIT", "text": "Deposit", "comment": "f1-9011914a",
+          "amountPerShare": 0.0, "taxRate": 0.0, "reference": "O9-7708124v", "referenceType":
+          "Funding"},{"transactionType": "Funding", "finTranTypeID": "JNLC", "timestamp":
+          "2021-08-10T15:45:02.683Z", "tranAmount": 1000, "feeAmount": 0.0, "orderID":
+          "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "symbol": null, "side": "CREDIT",
+          "text": "Deposit", "comment": "f1-9011914a", "amountPerShare": 0.0, "taxRate":
+          0.0, "reference": "O9-7708124v", "referenceType": "Funding"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/transactionHistory
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=O9-7708124v&referenceType=Funding
+    response:
+      body:
+        string:
+          '{"insertDate": 1628229668979, "channel": "Poli", "amountTo": 2196.01,
+          "amountFrom": 3000.0, "status": "RECONCILED", "speed": "Regular", "fxFee":
+          20.39, "expressFee": 0.0, "channelFee": null, "totalFee": 20.39, "feesDisplayCurrency":
+          "USD", "spotRate": 0.7388, "reference": "O9-7708124v", "w8fee": 0.0, "currencyFrom":
+          "AUD", "currencyTo": "USD", "iof": null, "vet": null, "bsb": null, "accountNumber":
+          null, "transactionDetails": null}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=O9-7708124v&referenceType=Funding
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=O9-7708124v&referenceType=Funding
+    response:
+      body:
+        string:
+          '{"insertDate": 1632879790963, "channel": "Poli", "amountTo": 3796.79,
+          "amountFrom": 5300.0, "status": "RECONCILED", "speed": "Regular", "fxFee":
+          35.64, "expressFee": 0.0, "channelFee": null, "totalFee": 35.64, "feesDisplayCurrency":
+          "USD", "spotRate": 0.7231, "reference": "O9-7708124v", "w8fee": 0.0, "currencyFrom":
+          "AUD", "currencyTo": "USD", "iof": null, "vet": null, "bsb": null, "accountNumber":
+          null, "transactionDetails": null}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/transactionDetails?reference=O9-7708124v&referenceType=Funding
+version: 1
diff --git a/tests/cassettes/test_funding/test_list_fundings[exchange1-request_1].yaml b/tests/cassettes/test_funding/test_list_fundings[exchange1-request_1].yaml
new file mode 100644
index 0000000..087f209
--- /dev/null
+++ b/tests/cassettes/test_funding/test_list_fundings[exchange1-request_1].yaml
@@ -0,0 +1,69 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/transactions?status=RECONCILED&size=3&page=0
+    response:
+      body:
+        string:
+          '{"items": [{"id": "6fd4187a-559b-4326-b9bb-6fb6312ece7b", "side": "CREDIT",
+          "amount": 18.27, "currency": "AUD", "action": "DIVIDEND_DEPOSIT", "reference":
+          "O9-7708124v", "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf", "status":
+          "RECONCILED", "approvedBy": null, "customerFee": 0.0, "insertedAt": "2022-07-18T07:32:28.836634",
+          "updatedAt": "2022-07-27T07:13:13.455605"}, {"id": "6fd4187a-559b-4326-b9bb-6fb6312ece7b",
+          "side": "DEBIT", "amount": 1148.28, "currency": "AUD", "action": "SETTLEMENT",
+          "reference": "O9-7708124v", "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "status": "RECONCILED", "approvedBy": null, "customerFee": 0.0, "insertedAt":
+          "2022-07-26T20:02:16.50554", "updatedAt": "2022-07-26T20:02:17.488227"}, {"id":
+          "6fd4187a-559b-4326-b9bb-6fb6312ece7b", "side": "CREDIT", "amount": 26.58,
+          "currency": "AUD", "action": "DIVIDEND_DEPOSIT", "reference": "O9-7708124v",
+          "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf", "status": "RECONCILED",
+          "approvedBy": null, "customerFee": 0.0, "insertedAt": "2022-01-18T21:24:30.449019",
+          "updatedAt": "2022-07-14T02:59:09.799755"}], "hasNext": true, "page": 0, "totalItems":
+          37}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/transactions?status=RECONCILED&size=3&page=0
+version: 1
diff --git a/tests/cassettes/test_market_status/test_check_market_status.yaml b/tests/cassettes/test_market/test_check_market_status[exchange0].yaml
similarity index 65%
rename from tests/cassettes/test_market_status/test_check_market_status.yaml
rename to tests/cassettes/test_market/test_check_market_status[exchange0].yaml
index 914a197..76cb5af 100644
--- a/tests/cassettes/test_market_status/test_check_market_status.yaml
+++ b/tests/cassettes/test_market/test_check_market_status[exchange0].yaml
@@ -13,21 +13,22 @@ interactions:
         string:
           '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
           true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
           "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
           null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
           null, "userProfile": {"residentialAddress": null, "postalAddress": null},
           "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
           "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
           "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
       headers: {}
       status:
         code: 200
@@ -46,9 +47,9 @@ interactions:
       body:
         string:
           '{"response": {"message": "Market is open Monday through Friday 9:30AM
-          to 4:00PM EST", "unixtime": "1642680629.27894", "error": "Success", "status":
+          to 4:00PM EST", "unixtime": "1658228491.36769", "error": "Success", "status":
           {"change_at": "08:00:00", "next": "pre", "current": "close"}, "elapsedtime":
-          "0", "date": "2022-01-20 07:10:29.2789373-05:00", "versionNumber": "2.56.0"}}'
+          "0", "date": "2022-07-19 07:01:31.3676874-04:00", "versionNumber": "2.56.0"}}'
       headers: {}
       status:
         code: 202
diff --git a/tests/cassettes/test_market/test_check_market_status[exchange1].yaml b/tests/cassettes/test_market/test_check_market_status[exchange1].yaml
new file mode 100644
index 0000000..18658ad
--- /dev/null
+++ b/tests/cassettes/test_market/test_check_market_status[exchange1].yaml
@@ -0,0 +1,63 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://early-bird-promo.hellostake.com/marketStatus
+    response:
+      body:
+        string:
+          '{"lastTradingDate": "2022-07-19", "status": {"current": "close"}, "marketLimits":
+          [[0, 0.005, 0.125], [0.005, 0.02, 0.075], [0.02, 0.05, 0.0625], [0.05, 0.1,
+          0.05], [0.1, 0.2, 0.045], [0.2, 0.5, 0.03], [0.5, 1, 0.0125], [1, 2, 0.0125],
+          [2, 5, 0.01], [5, 15, 0.0075], [15, 39, 0.005], [30, 50, 0.0025], [50, 100,
+          0.0025], [100, 250, 0.0025], [250, 500, 0.0025], [500, 9999, 0.0025]], "passiveLimits":
+          [[0, 0.005, 1], [0.005, 0.02, 0.6], [0.02, 0.05, 0.5], [0.05, 0.1, 0.4], [0.1,
+          0.2, 0.4], [0.2, 0.5, 0.4], [0.5, 1, 0.3], [1, 2, 0.3], [2, 5, 0.3], [5, 15,
+          0.3], [15, 39, 0.2], [30, 50, 0.2], [50, 100, 0.2], [100, 250, 0.2], [250,
+          500, 0.2], [500, 9999, 0.2]]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://early-bird-promo.hellostake.com/marketStatus
+version: 1
diff --git a/tests/cassettes/test_order/test_cancel_order[exchange0].yaml b/tests/cassettes/test_order/test_cancel_order[exchange0].yaml
new file mode 100644
index 0000000..2433bec
--- /dev/null
+++ b/tests/cassettes/test_order/test_cancel_order[exchange0].yaml
@@ -0,0 +1,96 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+    response:
+      body:
+        string:
+          '[{"orderNo": "x5-4334954E", "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderCashAmt": 100.0, "symbol": "AAPL", "price": 0.0, "stopPrice": 0.0, "side":
+          "B", "orderType": 1, "cumQty": "0.0", "limitPrice": 0.0, "commission": 0.0,
+          "createdWhen": "2021-07-04 21:46:25", "orderStatus": 0, "orderQty": 0.6541078,
+          "description": "Market Order", "instrumentID": "a67422af-8504-43df-9e63-7361eb0bd99e",
+          "imageUrl": "https://drivewealth.imgix.net/symbols/aapl.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
+          "instrumentSymbol": "AAPL", "instrumentName": "Apple, Inc.", "encodedName":
+          "apple-inc-aapl", "expires": "2022-07-27"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: DELETE
+      uri: https://global-prd-api.hellostake.com/api/orders/cancelOrder/HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string: ""
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/orders/cancelOrder/HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+    response:
+      body:
+        string: "[]"
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+version: 1
diff --git a/tests/cassettes/test_order/test_cancel_order[exchange1].yaml b/tests/cassettes/test_order/test_cancel_order[exchange1].yaml
new file mode 100644
index 0000000..f322f8e
--- /dev/null
+++ b/tests/cassettes/test_order/test_cancel_order[exchange1].yaml
@@ -0,0 +1,139 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker": "FINCLEAR",
+          "brokerOrderId": null, "brokerOrderVersionId": null, "brokerInstructionId":
+          4736823, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "OOO.XAU", "side": "BUY", "limitPrice":
+          6.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-21T17:08:38.771843", "completedTimestamp": null, "expiresAt": "2022-08-22T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 221, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}, {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "broker": "FINCLEAR", "brokerOrderId": null, "brokerOrderVersionId": null,
+          "brokerInstructionId": 4737001, "brokerInstructionVersionId": 2, "userId":
+          "7c9bbfae-0000-47b7-0000-0e66d868c2cf", "instrumentId": null, "instrumentCode":
+          "WDS.XAU", "side": "SELL", "limitPrice": 36.0, "validity": "GTC", "validityDate":
+          null, "type": "LIMIT", "placedTimestamp": "2022-07-21T20:38:11.216447", "completedTimestamp":
+          null, "expiresAt": "2022-08-22T00:00:00", "orderStatus": "STAKE_PENDING_CREATE",
+          "orderCompletionType": null, "filledUnits": 0, "averagePrice": null, "unitsRemaining":
+          3, "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}, {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "broker": "FINCLEAR", "brokerOrderId": null, "brokerOrderVersionId": null,
+          "brokerInstructionId": 4736992, "brokerInstructionVersionId": 2, "userId":
+          "7c9bbfae-0000-47b7-0000-0e66d868c2cf", "instrumentId": null, "instrumentCode":
+          "COL.XAU", "side": "BUY", "limitPrice": 27.0, "validity": "GTC", "validityDate":
+          null, "type": "LIMIT", "placedTimestamp": "2022-07-21T20:30:04.900918", "completedTimestamp":
+          null, "expiresAt": "2022-08-22T00:00:00", "orderStatus": "STAKE_PENDING_CREATE",
+          "orderCompletionType": null, "filledUnits": 0, "averagePrice": null, "unitsRemaining":
+          10, "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+    response:
+      body:
+        string:
+          '{"order": {"id": "8e419449-95cb-4b45-a92b-4791612e6e25", "broker":
+          "FINCLEAR", "brokerOrderId": null, "brokerOrderVersionId": null, "brokerInstructionId":
+          4736823, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "OOO.XAU", "side": "BUY", "limitPrice":
+          6.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-21T17:08:38.771843", "completedTimestamp": null, "expiresAt": "2022-08-22T00:00:00",
+          "orderStatus": "CLOSED", "orderCompletionType": "CANCELLED", "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 221, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders/76e8101a-f70d-4b7d-85eb-6cb400cd6509/cancel
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "24f071f0-6ecb-44a1-a90e-0b7a1d97b134", "broker": "FINCLEAR",
+          "brokerOrderId": null, "brokerOrderVersionId": null, "brokerInstructionId":
+          4737001, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "WDS.XAU", "side": "SELL", "limitPrice":
+          36.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-21T20:38:11.216447", "completedTimestamp": null, "expiresAt": "2022-08-22T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 3, "estimatedBrokerage": 0.0, "estimatedExchangeFees":
+          0.0}, {"id": "24f071f0-6ecb-44a1-a90e-0b7a1d97b134", "broker": "FINCLEAR",
+          "brokerOrderId": null, "brokerOrderVersionId": null, "brokerInstructionId":
+          4736992, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          27.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-21T20:30:04.900918", "completedTimestamp": null, "expiresAt": "2022-08-22T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 10, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+version: 1
diff --git a/tests/cassettes/test_order/test_list_orders.yaml b/tests/cassettes/test_order/test_list_orders[exchange0].yaml
similarity index 55%
rename from tests/cassettes/test_order/test_list_orders.yaml
rename to tests/cassettes/test_order/test_list_orders[exchange0].yaml
index ed7a927..554d31f 100644
--- a/tests/cassettes/test_order/test_list_orders.yaml
+++ b/tests/cassettes/test_order/test_list_orders[exchange0].yaml
@@ -13,21 +13,22 @@ interactions:
         string:
           '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
           true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
           "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
           null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
           null, "userProfile": {"residentialAddress": null, "postalAddress": null},
           "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
           "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
           "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
       headers: {}
       status:
         code: 200
@@ -45,14 +46,14 @@ interactions:
     response:
       body:
         string:
-          '[{"orderNo": "S2-9425658g", "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "orderCashAmt": 0.0, "symbol": "TQQQ", "price": 0.0, "stopPrice": 63.0, "side":
-          "S", "orderType": 3, "cumQty": "0.0", "limitPrice": 0.0, "commission": 0.0,
-          "createdWhen": "2021-11-25 19:16:51", "orderStatus": 0, "orderQty": 98.69975,
-          "description": "Stop Order: Sell if price reaches ($63.00)", "instrumentID":
-          "63698af7-e71e-4424-9ce7-d34b70fbe260", "imageUrl": "https://drivewealth.imgix.net/symbols/tqqq.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
+          '[{"orderNo": "L4-2572575L", "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderCashAmt": 0.0, "symbol": "TQQQ", "price": 0.0, "stopPrice": 0.0, "side":
+          "B", "orderType": 2, "cumQty": "0.0", "limitPrice": 26.7, "commission": 0.0,
+          "createdWhen": "2020-05-16 04:29:32", "orderStatus": 0, "orderQty": 10.0,
+          "description": "Limit Order: Buy at a limit of $26.70", "instrumentID": "63698af7-e71e-4424-9ce7-d34b70fbe260",
+          "imageUrl": "https://drivewealth.imgix.net/symbols/tqqq.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
           "instrumentSymbol": "TQQQ", "instrumentName": "ProShares UltraPro QQQ ETF",
-          "encodedName": "proshares-ultrapro-qqq-etf-tqqq"}]'
+          "encodedName": "proshares-ultrapro-qqq-etf-tqqq", "expires": "2022-07-21"}]'
       headers: {}
       status:
         code: 200
diff --git a/tests/cassettes/test_order/test_list_orders[exchange1].yaml b/tests/cassettes/test_order/test_list_orders[exchange1].yaml
new file mode 100644
index 0000000..e48ccd4
--- /dev/null
+++ b/tests/cassettes/test_order/test_list_orders[exchange1].yaml
@@ -0,0 +1,63 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "20ce85f9-2d8d-49ae-8191-39f785c3d5d6", "broker": "FINCLEAR",
+          "brokerOrderId": null, "brokerOrderVersionId": null, "brokerInstructionId":
+          4736823, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "OOO.XAU", "side": "BUY", "limitPrice":
+          6.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-21T17:08:38.771843", "completedTimestamp": null, "expiresAt": "2022-08-22T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 221, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+version: 1
diff --git a/tests/cassettes/test_product/test_find_products_by_name.yaml b/tests/cassettes/test_product/test_find_products_by_name[exchange0].yaml
similarity index 77%
rename from tests/cassettes/test_product/test_find_products_by_name.yaml
rename to tests/cassettes/test_product/test_find_products_by_name[exchange0].yaml
index 960b9ef..1371d5e 100644
--- a/tests/cassettes/test_product/test_find_products_by_name.yaml
+++ b/tests/cassettes/test_product/test_find_products_by_name[exchange0].yaml
@@ -13,21 +13,22 @@ interactions:
         string:
           '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
           true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
           "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
           null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
           null, "userProfile": {"residentialAddress": null, "postalAddress": null},
           "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
           "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
           "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
       headers: {}
       status:
         code: 200
@@ -60,7 +61,10 @@ interactions:
           "exchange": null}, {"name": "iRhythm Technologies, Inc.", "symbol": "IRTC",
           "encodedName": "irhythm-technologies-inc-irtc", "instrumentId": "05f00a67-b822-4023-871a-1d6215a0eef6",
           "imageUrl": "https://drivewealth.imgix.net/symbols/irtc.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
-          "exchange": null}, {"name": "FARO Technologies Inc.", "symbol": "FARO", "encodedName":
+          "exchange": null}, {"name": "ASPEN TECHNOLOGY INC", "symbol": "AZPN", "encodedName":
+          "aspen-technology-inc-azpn", "instrumentId": "08b7f76d-fa40-44b0-951e-b77d1a9206e3",
+          "imageUrl": "https://drivewealth.imgix.net/symbols/azpn_1652797208.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
+          "exchange": "NSQ"}, {"name": "FARO Technologies Inc.", "symbol": "FARO", "encodedName":
           "faro-technologies-inc-faro", "instrumentId": "08c65f62-394e-442a-86c1-0ad93b3efe21",
           "imageUrl": "https://drivewealth.imgix.net/symbols/faro.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
           "exchange": null}, {"name": "Shift Technologies, Inc.", "symbol": "SFT", "encodedName":
@@ -72,14 +76,10 @@ interactions:
           "exchange": null}, {"name": "Micron Technology Inc.", "symbol": "MU", "encodedName":
           "micron-technology-inc-mu", "instrumentId": "0baafbff-dcc6-4645-8d27-4b4baf8a37ac",
           "imageUrl": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/mu.png",
-          "exchange": null}, {"name": "SIGA Technologies Inc", "symbol": "SIGA", "encodedName":
-          "siga-technologies-inc-siga", "instrumentId": "0bcd0ba3-11d7-4a7b-b713-20241cbeaebc",
-          "imageUrl": "https://drivewealth.imgix.net/symbols/siga.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
           "exchange": null}], "instrumentTags": [{"tagID": "448f6003-9af8-4f25-8f51-2cf924255f09",
           "tagName": "Nanotechnology"}, {"tagID": "55832928-f3cb-4229-9d27-1baa5b25ec15",
           "tagName": "Wearable Technology"}, {"tagID": "794e2f64-f33c-4ec7-918a-7ec5c7c998cf",
-          "tagName": "Technology"}, {"tagID": "7ff03c9f-e9e5-4239-b10d-7098b8452c94",
-          "tagName": "Technologies"}, {"tagID": "e1cdd8d5-c9be-460b-ab56-934907c7d69d",
+          "tagName": "Technology"}, {"tagID": "e1cdd8d5-c9be-460b-ab56-934907c7d69d",
           "tagName": "Biotechnology"}]}'
       headers: {}
       status:
diff --git a/tests/cassettes/test_product/test_find_products_by_name[exchange1].yaml b/tests/cassettes/test_product/test_find_products_by_name[exchange1].yaml
new file mode 100644
index 0000000..e2a2942
--- /dev/null
+++ b/tests/cassettes/test_product/test_find_products_by_name[exchange1].yaml
@@ -0,0 +1,83 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/search?searchKey=techno
+    response:
+      body:
+        string:
+          '{"instruments": [{"instrumentId": "AIM.XAU", "symbol": "AIM", "name":
+          "Ai-Media Technologies Limited", "type": "EQUITY", "recentAnnouncement": false,
+          "sensitive": false}, {"instrumentId": "CPV.XAU", "symbol": "CPV", "name":
+          "ClearVue Technologies Limited", "type": "EQUITY", "recentAnnouncement": false,
+          "sensitive": false}, {"instrumentId": "LCT.XAU", "symbol": "LCT", "name":
+          "Living Cell Technologies Limited", "type": "EQUITY", "recentAnnouncement":
+          false, "sensitive": false}, {"instrumentId": "VR1.XAU", "symbol": "VR1", "name":
+          "Vection Technologies Ltd", "type": "EQUITY", "recentAnnouncement": false,
+          "sensitive": false}, {"instrumentId": "FFT.XAU", "symbol": "FFT", "name":
+          "Future First Technologies Ltd", "type": "EQUITY", "recentAnnouncement": false,
+          "sensitive": false}, {"instrumentId": "VHT.XAU", "symbol": "VHT", "name":
+          "Volpara Health Technologies Limited", "type": "EQUITY", "recentAnnouncement":
+          false, "sensitive": false}, {"instrumentId": "VTI.XAU", "symbol": "VTI", "name":
+          "Visioneering Technologies Inc", "type": "EQUITY", "recentAnnouncement": true,
+          "sensitive": false}, {"instrumentId": "EGY.XAU", "symbol": "EGY", "name":
+          "Energy Technologies Limited", "type": "EQUITY", "recentAnnouncement": false,
+          "sensitive": false}, {"instrumentId": "RTE.XAU", "symbol": "RTE", "name":
+          "Retech Technology., Co Limited", "type": "EQUITY", "recentAnnouncement":
+          false, "sensitive": false}, {"instrumentId": "AGI.XAU", "symbol": "AGI", "name":
+          "Ainsworth Game Technology Limited", "type": "EQUITY", "recentAnnouncement":
+          true, "sensitive": false}], "instrumentTags": [{"tagName": "Information Technology",
+          "tagId": "45"}, {"tagName": "Pharmaceuticals, Biotechnology & Life Sciences",
+          "tagId": "3520"}, {"tagName": "Technology Hardware & Equipment", "tagId":
+          "4520"}, {"tagName": "Health Care Technology", "tagId": "351030"}, {"tagName":
+          "Biotechnology", "tagId": "352010"}, {"tagName": "Technology Hardware, Storage
+          & Peripherals", "tagId": "452020"}, {"tagName": "Health Care Technology",
+          "tagId": "35103010"}, {"tagName": "Biotechnology", "tagId": "35201010"}, {"tagName":
+          "Technology Hardware, Storage & Peripherals", "tagId": "45202030"}, {"tagName":
+          "Technology Distributors", "tagId": "45203030"}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/search?searchKey=techno
+version: 1
diff --git a/tests/cassettes/test_product/test_get_product[exchange0-symbols0].yaml b/tests/cassettes/test_product/test_get_product[exchange0-symbols0].yaml
new file mode 100644
index 0000000..5116ff9
--- /dev/null
+++ b/tests/cassettes/test_product/test_get_product[exchange0-symbols0].yaml
@@ -0,0 +1,154 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=TSLA&page=1&max=1
+    response:
+      body:
+        string:
+          '{"products": [{"id": "82f68a8a-874d-472b-bbb2-8d4b62856476", "instrumentTypeID":
+          null, "symbol": "TSLA", "description": "Tesla, Inc. designs, develops, manufactures
+          and sells electric vehicles and designs, manufactures, installs and sells
+          solar energy generation and energy storage products. The Company''s segments
+          include automotive, and energy generation and storage. The automotive segment
+          includes the design, development, manufacturing, sales and leasing of electric
+          vehicles as well as sales of automotive regulatory credits. The energy generation
+          and storage segment include the design, manufacture, installation, sales and
+          leasing of solar energy generation and energy storage products, services related
+          to its products, and sales of solar energy system incentives. Its automotive
+          products include Model 3, Model Y, Model S and Model X. Model 3 is a four-door
+          sedan. Model Y is a sport utility vehicle (SUV) built on the Model 3 platform.
+          Model S is a four-door sedan. Model X is an SUV. Its energy storage products
+          include Powerwall and Powerpack.", "category": "Stock", "currencyID": "USD",
+          "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "sector": "Consumer Cyclical", "name": "Tesla, Inc.", "dailyReturn": 6.64,
+          "dailyReturnPercentage": 0.9, "lastTraded": 743.23, "monthlyReturn": 0.0,
+          "yearlyReturnPercentage": 421.89, "yearlyReturnValue": 544.51, "popularity":
+          17753.0, "watched": 74328, "news": 0, "bought": 446283, "viewed": 475700,
+          "productType": "Instrument", "exchange": null, "status": "ACTIVE", "type":
+          "EQUITY", "encodedName": "tesla-inc-tsla", "period": "YEAR RETURN", "inceptionDate":
+          1277769600000, "instrumentTags": [], "childInstruments": []}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=TSLA&page=1&max=1
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=MSFT&page=1&max=1
+    response:
+      body:
+        string:
+          '{"products": [{"id": "51160e9a-c3ea-4cdd-8870-b449b0a973b5", "instrumentTypeID":
+          null, "symbol": "MSFT", "description": "Microsoft Corporation is a technology
+          company. The Company develops, licenses, and supports a range of software
+          products, services and devices. The Company''s segments include Productivity
+          and Business Processes, Intelligent Cloud and More Personal Computing. The
+          Company''s products include operating systems; cross-device productivity applications;
+          server applications; business solution applications; desktop and server management
+          tools; software development tools; video games, and training and certification
+          of computer system integrators and developers. It also designs, manufactures,
+          and sells devices, including personal computers (PCs), tablets, gaming and
+          entertainment consoles, phones, other intelligent devices, and related accessories,
+          that integrate with its cloud-based offerings. It offers an array of services,
+          including cloud-based solutions that provide customers with software, services,
+          platforms, and content, and it provides solution support and consulting services.",
+          "category": "Stock", "currencyID": "USD", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/msft.png",
+          "sector": "Technology", "name": "Microsoft Corporation", "dailyReturn": 2.6,
+          "dailyReturnPercentage": 1.0, "lastTraded": 262.13, "monthlyReturn": 0.0,
+          "yearlyReturnPercentage": 46.75, "yearlyReturnValue": 74.48, "popularity":
+          1717.0, "watched": 35555, "news": 0, "bought": 94582, "viewed": 103800, "productType":
+          "Instrument", "exchange": null, "status": "ACTIVE", "type": "EQUITY", "encodedName":
+          "microsoft-corporation-msft", "period": "YEAR RETURN", "inceptionDate": 511056000000,
+          "instrumentTags": [], "childInstruments": []}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=MSFT&page=1&max=1
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=GOOG&page=1&max=1
+    response:
+      body:
+        string:
+          '{"products": [{"id": "96b28603-b755-4ba4-987c-30152c5a79f6", "instrumentTypeID":
+          null, "symbol": "GOOG", "description": "Alphabet Inc. is a holding company.
+          The Company''s businesses include Google Inc. (Google) and its Internet products,
+          such as Access, Calico, CapitalG, GV, Nest, Verily, Waymo and X. The Company''s
+          segments include Google and Other Bets. The Google segment includes its Internet
+          products, such as Search, Ads, Commerce, Maps, YouTube, Google Cloud, Android,
+          Chrome and Google Play, as well as its hardware initiatives. The Google segment
+          is engaged in advertising, sales of digital content, applications and cloud
+          offerings, and sales of hardware products. The Other Bets segment is engaged
+          in the sales of Internet and television services through Google Fiber, sales
+          of Nest products and services, and licensing and research and development
+          (R&D) services through Verily. It offers Google Assistant, which allows users
+          to type or talk with Google; Google Maps, which helps users navigate to a
+          store, and Google Photos, which helps users store and organize all of their
+          photos.", "category": "Stock", "currencyID": "USD", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/goog.png",
+          "sector": "Technology", "name": "Alphabet Inc. - Class C Shares", "dailyReturn":
+          0.0, "dailyReturnPercentage": 0.0, "lastTraded": 114.62, "monthlyReturn":
+          0.0, "yearlyReturnPercentage": 66.52, "yearlyReturnValue": 808.61, "popularity":
+          1595.0, "watched": 15480, "news": 0, "bought": 23093, "viewed": 29100, "productType":
+          "Instrument", "exchange": null, "status": "ACTIVE", "type": "EQUITY", "encodedName":
+          "alphabet-inc-class-c-shares-goog", "period": "YEAR RETURN", "inceptionDate":
+          1092873600000, "instrumentTags": [], "childInstruments": []}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=GOOG&page=1&max=1
+version: 1
diff --git a/tests/cassettes/test_product/test_get_product[exchange1-symbols1].yaml b/tests/cassettes/test_product/test_get_product[exchange1-symbols1].yaml
new file mode 100644
index 0000000..b02d0eb
--- /dev/null
+++ b/tests/cassettes/test_product/test_get_product[exchange1-symbols1].yaml
@@ -0,0 +1,104 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
+          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/ANZ
+    response:
+      body:
+        string:
+          '{"marketStatus": "CLOSED", "lastTradedExchange": "ASX", "symbol": "ANZ",
+          "lastTradedTimestamp": 1658383848, "lastTrade": "21.9300", "bid": "21.9200",
+          "ask": "21.9300", "priorClose": "21.6400", "open": "22.3200", "high": "22.3400",
+          "low": "21.2700", "pointsChange": "0.2900", "percentageChange": "1.34", "outOfMarketPrice":
+          "21.9300", "outOfMarketQuantity": "3393713", "outOfMarketSurplus": "-69162"}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/ANZ
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/WDS
+    response:
+      body:
+        string:
+          '{"marketStatus": "CLOSED", "lastTradedExchange": "ASX", "symbol": "WDS",
+          "lastTradedTimestamp": 1658383848, "lastTrade": "31.1400", "bid": "30.9600",
+          "ask": "30.9900", "priorClose": "32.5700", "open": "31.8400", "high": "32.1400",
+          "low": "30.7000", "pointsChange": "-1.5800", "percentageChange": "-4.39",
+          "outOfMarketPrice": "31.1400", "outOfMarketQuantity": "2070129", "outOfMarketSurplus":
+          "-16665"}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/WDS
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/COL
+    response:
+      body:
+        string:
+          '{"marketStatus": "CLOSED", "lastTradedExchange": "ASX", "symbol": "COL",
+          "lastTradedTimestamp": 1658383850, "lastTrade": "18.8800", "bid": "18.8800",
+          "ask": "18.8900", "priorClose": "18.6300", "open": "18.7900", "high": "18.9700",
+          "low": "18.6400", "pointsChange": "0.2500", "percentageChange": "1.34", "outOfMarketPrice":
+          "18.8800", "outOfMarketQuantity": "1076585", "outOfMarketSurplus": "42836"}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/COL
+version: 1
diff --git a/tests/cassettes/test_product/test_show_portfolio.yaml b/tests/cassettes/test_product/test_show_portfolio.yaml
deleted file mode 100644
index 6ed55f5..0000000
--- a/tests/cassettes/test_product/test_show_portfolio.yaml
+++ /dev/null
@@ -1,99 +0,0 @@
-interactions:
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/user
-    response:
-      body:
-        string:
-          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
-          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
-          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
-          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
-          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
-          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
-          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
-          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/user
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/users/accounts/v2/equityPositions
-    response:
-      body:
-        string:
-          '{"equityPositions": [{"unrealizedDayPLPercent": "-0.26", "symbol":
-          "COP", "encodedName": "conocophillips-cop", "unrealizedDayPL": "-1.37", "instrumentID":
-          "6b4f77d9-5617-4885-8377-ebc211d32bf7", "openQty": "5.94106463", "priorClose":
-          "87.51", "avgPrice": "84.16", "side": "B", "costBasis": "5E+2", "mktPrice":
-          "87.28", "marketValue": "518.54", "unrealizedPL": "18.54", "availableForTradingQty":
-          "5.94106463", "name": "ConocoPhillips", "category": "Stock", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/cop.png",
-          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 87.28,
-          "dailyReturnValue": -0.23, "yearlyReturnValue": 26.11, "yearlyReturnPercentage":
-          79.93, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
-          "-3.48", "symbol": "TQQQ", "encodedName": "proshares-ultrapro-qqq-etf-tqqq",
-          "unrealizedDayPL": "-228.98", "instrumentID": "63698af7-e71e-4424-9ce7-d34b70fbe260",
-          "openQty": "98.69975468", "priorClose": "66.69", "avgPrice": "81.05", "side":
-          "B", "costBasis": "7999.62", "mktPrice": "64.37", "marketValue": "6353.3",
-          "unrealizedPL": "-1646.32", "availableForTradingQty": "98.69975468", "name":
-          "ProShares UltraPro QQQ ETF", "category": "ETF", "urlImage": "https://drivewealth.imgix.net/symbols/tqqq.png?fit=fillmax&w=125&h=125&bg=FFFFFF",
-          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 64.37,
-          "dailyReturnValue": -2.32, "yearlyReturnValue": 50.24, "yearlyReturnPercentage":
-          142.0, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
-          "-1.39", "symbol": "VGT", "encodedName": "vanguard-information-technology-etf-vgt",
-          "unrealizedDayPL": "-143.70", "instrumentID": "3aea5285-a419-412e-96fb-8da3d48df4ef",
-          "openQty": "24.39724507", "priorClose": "422.41", "avgPrice": "455.76", "side":
-          "B", "costBasis": "11119.33", "mktPrice": "416.52", "marketValue": "10161.94",
-          "unrealizedPL": "-957.39", "availableForTradingQty": "24.39724507", "name":
-          "Vanguard Information Technology ETF", "category": "ETF", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/vgt.png",
-          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 416.52,
-          "dailyReturnValue": -5.89, "yearlyReturnValue": 123.43, "yearlyReturnPercentage":
-          53.91, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
-          "-1.12", "symbol": "VOOG", "encodedName": "sp-500-growth-vanguard-voog", "unrealizedDayPL":
-          "-10.63", "instrumentID": "4a428222-6d3f-48c5-9660-0001ee5bc4d3", "openQty":
-          "3.38466745", "priorClose": "279.66", "avgPrice": "295.45", "side": "B", "costBasis":
-          "1E+3", "mktPrice": "276.52", "marketValue": "935.93", "unrealizedPL": "-64.07",
-          "availableForTradingQty": "3.38466745", "name": "S&P 500 Growth Vanguard",
-          "category": "ETF", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/voog.png",
-          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 276.52,
-          "dailyReturnValue": -3.14, "yearlyReturnValue": 66.68, "yearlyReturnPercentage":
-          41.26, "period": "YEAR RETURN", "exchange": null}, {"unrealizedDayPLPercent":
-          "0.08", "symbol": "VXUS", "encodedName": "total-international-stock-vanguard-etf-vxus",
-          "unrealizedDayPL": "2.76", "instrumentID": "bb224235-59bb-4d0c-b728-e2e18c0d72f5",
-          "openQty": "55.10091309", "priorClose": "63.13", "avgPrice": "63.52", "side":
-          "B", "costBasis": "3.5E+3", "mktPrice": "63.18", "marketValue": "3481.28",
-          "unrealizedPL": "-18.72", "availableForTradingQty": "55.10091309", "name":
-          "Total International Stock Vanguard ETF", "category": "ETF", "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/vxus.png",
-          "bidPrice": null, "askPrice": null, "returnOnStock": null, "lastTrade": 63.18,
-          "dailyReturnValue": 0.05, "yearlyReturnValue": 16.88, "yearlyReturnPercentage":
-          37.82, "period": "YEAR RETURN", "exchange": null}], "equityValue": 21450.99,
-          "pricesOnly": false}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/users/accounts/v2/equityPositions
-version: 1
diff --git a/tests/cassettes/test_ratings/test_list_ratings_unknown.yaml b/tests/cassettes/test_ratings/test_list_ratings_unknown.yaml
new file mode 100644
index 0000000..351f50e
--- /dev/null
+++ b/tests/cassettes/test_ratings/test_list_ratings_unknown.yaml
@@ -0,0 +1,54 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/data/calendar/ratings?tickers=NOTEXIST&pageSize=4
+    response:
+      body:
+        string: '{"message": "No data returned"}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/data/calendar/ratings?tickers=NOTEXIST&pageSize=4
+version: 1
diff --git a/tests/cassettes/test_trade/test_sell[exchange0-request_0].yaml b/tests/cassettes/test_trade/test_sell[exchange0-request_0].yaml
new file mode 100644
index 0000000..5258aa7
--- /dev/null
+++ b/tests/cassettes/test_trade/test_sell[exchange0-request_0].yaml
@@ -0,0 +1,155 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/COL
+    response:
+      body:
+        string:
+          '{"marketStatus": "CLOSED", "lastTradedExchange": "ASX", "symbol": "COL",
+          "lastTradedTimestamp": 1658988616, "lastTrade": "18.6400", "bid": "18.6300",
+          "ask": "18.6400", "priorClose": "18.7100", "open": "18.6900", "high": "18.6900",
+          "low": "18.4900", "pointsChange": "-0.0700", "percentageChange": "-0.37",
+          "outOfMarketPrice": "18.6400", "outOfMarketQuantity": "848925", "outOfMarketSurplus":
+          "-56140"}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/COL
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+    response:
+      body:
+        string: '{"instrumentId": "COL.XAU"}'
+      headers: {}
+      status:
+        code: 201
+        message: Created
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4841281, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "SELL", "limitPrice":
+          18.63, "validity": "GTC", "validityDate": null, "type": "MARKET_TO_LIMIT",
+          "placedTimestamp": "2022-07-28T20:49:39.621702", "completedTimestamp": null,
+          "expiresAt": "2022-08-29T00:00:00", "orderStatus": "STAKE_PENDING_CREATE",
+          "orderCompletionType": null, "filledUnits": 0, "averagePrice": null, "unitsRemaining":
+          20, "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker": "FINCLEAR",
+          "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4841281, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "SELL", "limitPrice":
+          18.63, "validity": "GTC", "validityDate": null, "type": "MARKET_TO_LIMIT",
+          "placedTimestamp": "2022-07-28T20:49:39.621702", "completedTimestamp": null,
+          "expiresAt": "2022-08-29T00:00:00", "orderStatus": "STAKE_PENDING_CREATE",
+          "orderCompletionType": null, "filledUnits": 0, "averagePrice": null, "unitsRemaining":
+          20, "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4841281, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "SELL", "limitPrice":
+          18.63, "validity": "GTC", "validityDate": null, "type": "MARKET_TO_LIMIT",
+          "placedTimestamp": "2022-07-28T20:49:39.621702", "completedTimestamp": null,
+          "expiresAt": "2022-08-29T00:00:00", "orderStatus": "CLOSED", "orderCompletionType":
+          "CANCELLED", "filledUnits": 0, "averagePrice": null, "unitsRemaining": 20,
+          "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+version: 1
diff --git a/tests/cassettes/test_trade/test_sell[exchange1-request_1].yaml b/tests/cassettes/test_trade/test_sell[exchange1-request_1].yaml
new file mode 100644
index 0000000..5412a0d
--- /dev/null
+++ b/tests/cassettes/test_trade/test_sell[exchange1-request_1].yaml
@@ -0,0 +1,132 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+    response:
+      body:
+        string: '{"instrumentId": "COL.XAU"}'
+      headers: {}
+      status:
+        code: 201
+        message: Created
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4841283, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "SELL", "limitPrice":
+          15.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-28T20:49:40.810211", "completedTimestamp": null, "expiresAt": "2022-08-29T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 20, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker": "FINCLEAR",
+          "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4841283, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "SELL", "limitPrice":
+          15.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-28T20:49:40.810211", "completedTimestamp": null, "expiresAt": "2022-08-29T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 20, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4841283, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "SELL", "limitPrice":
+          15.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-28T20:49:40.810211", "completedTimestamp": null, "expiresAt": "2022-08-29T00:00:00",
+          "orderStatus": "CLOSED", "orderCompletionType": "CANCELLED", "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 20, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+version: 1
diff --git a/tests/cassettes/test_trade/test_successful_trade.yaml b/tests/cassettes/test_trade/test_successful_trade.yaml
deleted file mode 100644
index d1eb09b..0000000
--- a/tests/cassettes/test_trade/test_successful_trade.yaml
+++ /dev/null
@@ -1,70 +0,0 @@
-interactions:
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/user
-    response:
-      body:
-        string:
-          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
-          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
-          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
-          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
-          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
-          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
-          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
-          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
-      headers:
-        Access-Control-Allow-Headers:
-          - Content-type, Accept, Stake-Session-Token, stake_tid
-        Access-Control-Allow-Methods:
-          - GET, POST, DELETE, PUT
-        Access-Control-Allow-Origin:
-          - "*"
-        Connection:
-          - keep-alive
-        Content-Length:
-          - "1187"
-        Content-Type:
-          - application/json
-        Date:
-          - Thu, 20 Jan 2022 11:04:13 GMT
-        Via:
-          - 1.1 59304f445e251c540e46633ed3dd4f64.cloudfront.net (CloudFront)
-        X-Amz-Cf-Id:
-          - Zb9p718j0eqzeVSn9f1juMxVx8-PRhI5ULP1YXoO-jz5_wYsDQ2StA==
-        X-Amz-Cf-Pop:
-          - SYD62-P2
-        X-Cache:
-          - Miss from cloudfront
-        stake_tid:
-          - c648272f-806a-45e9-a39d-d4780a2dea4e
-        x-amz-apigw-id:
-          - MPczHEYySwMFxTA=
-        x-amzn-Remapped-Content-Length:
-          - "1187"
-        x-amzn-Remapped-Date:
-          - Thu, 20 Jan 2022 11:04:13 GMT
-        x-amzn-Remapped-Server:
-          - Jetty(9.4.44.v20210927)
-        x-amzn-RequestId:
-          - 0a8c9be2-00b0-47d7-af92-0f8138382ac9
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/user
-version: 1
diff --git a/tests/cassettes/test_trade/test_successful_trade[exchange0-request_0].yaml b/tests/cassettes/test_trade/test_successful_trade[exchange0-request_0].yaml
new file mode 100644
index 0000000..180b184
--- /dev/null
+++ b/tests/cassettes/test_trade/test_successful_trade[exchange0-request_0].yaml
@@ -0,0 +1,233 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=TSLA&page=1&max=1
+    response:
+      body:
+        string:
+          '{"products": [{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "instrumentTypeID":
+          null, "symbol": "TSLA", "description": "Tesla, Inc. designs, develops, manufactures
+          and sells electric vehicles and designs, manufactures, installs and sells
+          solar energy generation and energy storage products. The Company''s segments
+          include automotive, and energy generation and storage. The automotive segment
+          includes the design, development, manufacturing, sales and leasing of electric
+          vehicles as well as sales of automotive regulatory credits. The energy generation
+          and storage segment include the design, manufacture, installation, sales and
+          leasing of solar energy generation and energy storage products, services related
+          to its products, and sales of solar energy system incentives. Its automotive
+          products include Model 3, Model Y, Model S and Model X. Model 3 is a four-door
+          sedan. Model Y is a sport utility vehicle (SUV) built on the Model 3 platform.
+          Model S is a four-door sedan. Model X is an SUV. Its energy storage products
+          include Powerwall and Powerpack.", "category": "Stock", "currencyID": "USD",
+          "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "sector": "Consumer Cyclical", "name": "Tesla, Inc.", "dailyReturn": -27.61,
+          "dailyReturnPercentage": -3.43, "lastTraded": 777.69, "monthlyReturn": 0.0,
+          "yearlyReturnPercentage": 421.89, "yearlyReturnValue": 544.51, "popularity":
+          17753.0, "watched": 74328, "news": 0, "bought": 447958, "viewed": 477900,
+          "productType": "Instrument", "exchange": null, "status": "ACTIVE", "type":
+          "EQUITY", "encodedName": "tesla-inc-tsla", "period": "YEAR RETURN", "inceptionDate":
+          1277769600000, "instrumentTags": [], "childInstruments": []}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=TSLA&page=1&max=1
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/purchaseorders/v2/quickBuy
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "itemId": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
+          "name": "Tesla, Inc.", "quantity": null, "lastPx": null, "lastQty": null,
+          "leavesQty": null, "allocatedQty": null, "amountCash": 20.0, "limitPrice":
+          null, "stopPrice": null, "effectivePrice": null, "autoStop": 0.0, "commission":
+          0.0, "grossTradeAmount": null, "description": null, "insertedDate": 1658924561819,
+          "updatedDate": 1658924561819, "side": "BUY", "orderRejectReason": null, "orderRejectReasonStake":
+          null, "errorCode": null, "encodedName": "tesla-inc-tsla", "imageURL": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "symbol": "TSLA", "dwOrderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderStatus": "NEW", "type": "MARKET", "timeInForce": "GFD", "expiration":
+          null, "status": 0, "category": "market"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/purchaseorders/v2/quickBuy
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactions
+    response:
+      body:
+        string:
+          '{"transactions": [{"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02526847, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:17:54.074Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TQQQ", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 3.52112676, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:12:15.826Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02529916, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:11:56.996Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02528508, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:02:10.256Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65410779, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:22:22.271Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65410779, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:21:04.186Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65440743, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:18:45.019Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65466448, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:15:22.321Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "0", "orderType": "1", "orderQty": 0.02523818, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "market_order-buy-new",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": null, "realizedPL":
+          null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "orderNo":
+          "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus": "4", "orderType":
+          "1", "orderQty": 1.30984347, "orderCashAmt": 200.0, "side": "B", "createdWhen":
+          "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ", "commission": 0.0,
+          "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:12:10.007Z",
+          "realizedPL": null}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/transactions
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+    response:
+      body:
+        string:
+          '[{"orderNo": "x5-4334954E", "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderCashAmt": 20.0, "symbol": "TSLA", "price": 0.0, "stopPrice": 0.0, "side":
+          "B", "orderType": 1, "cumQty": "0.0", "limitPrice": 0.0, "commission": 0.0,
+          "createdWhen": "2021-07-04 21:46:25", "orderStatus": 0, "orderQty": 0.02523818,
+          "description": "Market Order", "instrumentID": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
+          "imageUrl": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "instrumentSymbol": "TSLA", "instrumentName": "Tesla, Inc.", "encodedName":
+          "tesla-inc-tsla", "expires": "2022-07-27"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: DELETE
+      uri: https://global-prd-api.hellostake.com/api/orders/cancelOrder/HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string: ""
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/orders/cancelOrder/HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59
+version: 1
diff --git a/tests/cassettes/test_trade/test_successful_trade[exchange1-request_1].yaml b/tests/cassettes/test_trade/test_successful_trade[exchange1-request_1].yaml
new file mode 100644
index 0000000..1966656
--- /dev/null
+++ b/tests/cassettes/test_trade/test_successful_trade[exchange1-request_1].yaml
@@ -0,0 +1,155 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/COL
+    response:
+      body:
+        string:
+          '{"marketStatus": "CLOSED", "lastTradedExchange": "ASX", "symbol": "COL",
+          "lastTradedTimestamp": 1658902258, "lastTrade": "18.7100", "bid": "18.7100",
+          "ask": "18.7200", "priorClose": "18.7800", "open": "18.8900", "high": "18.9400",
+          "low": "18.6400", "pointsChange": "-0.0700", "percentageChange": "-0.37",
+          "outOfMarketPrice": "18.7100", "outOfMarketQuantity": "652055", "outOfMarketSurplus":
+          "38105"}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/singleQuote/COL
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+    response:
+      body:
+        string: '{"instrumentId": "COL.XAU"}'
+      headers: {}
+      status:
+        code: 201
+        message: Created
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4816685, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          18.72, "validity": "GTC", "validityDate": null, "type": "MARKET_TO_LIMIT",
+          "placedTimestamp": "2022-07-27T22:22:45.164059", "completedTimestamp": null,
+          "expiresAt": "2022-08-26T00:00:00", "orderStatus": "STAKE_PENDING_CREATE",
+          "orderCompletionType": null, "filledUnits": 0, "averagePrice": null, "unitsRemaining":
+          20, "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker": "FINCLEAR",
+          "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4816685, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          18.72, "validity": "GTC", "validityDate": null, "type": "MARKET_TO_LIMIT",
+          "placedTimestamp": "2022-07-27T22:22:45.164059", "completedTimestamp": null,
+          "expiresAt": "2022-08-26T00:00:00", "orderStatus": "STAKE_PENDING_CREATE",
+          "orderCompletionType": null, "filledUnits": 0, "averagePrice": null, "unitsRemaining":
+          20, "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4816685, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          18.72, "validity": "GTC", "validityDate": null, "type": "MARKET_TO_LIMIT",
+          "placedTimestamp": "2022-07-27T22:22:45.164059", "completedTimestamp": null,
+          "expiresAt": "2022-08-26T00:00:00", "orderStatus": "CLOSED", "orderCompletionType":
+          "CANCELLED", "filledUnits": 0, "averagePrice": null, "unitsRemaining": 20,
+          "estimatedBrokerage": 0.0, "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+version: 1
diff --git a/tests/cassettes/test_trade/test_successful_trade[exchange2-request_2].yaml b/tests/cassettes/test_trade/test_successful_trade[exchange2-request_2].yaml
new file mode 100644
index 0000000..2adea40
--- /dev/null
+++ b/tests/cassettes/test_trade/test_successful_trade[exchange2-request_2].yaml
@@ -0,0 +1,240 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=TSLA&page=1&max=1
+    response:
+      body:
+        string:
+          '{"products": [{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "instrumentTypeID":
+          null, "symbol": "TSLA", "description": "Tesla, Inc. designs, develops, manufactures
+          and sells electric vehicles and designs, manufactures, installs and sells
+          solar energy generation and energy storage products. The Company''s segments
+          include automotive, and energy generation and storage. The automotive segment
+          includes the design, development, manufacturing, sales and leasing of electric
+          vehicles as well as sales of automotive regulatory credits. The energy generation
+          and storage segment include the design, manufacture, installation, sales and
+          leasing of solar energy generation and energy storage products, services related
+          to its products, and sales of solar energy system incentives. Its automotive
+          products include Model 3, Model Y, Model S and Model X. Model 3 is a four-door
+          sedan. Model Y is a sport utility vehicle (SUV) built on the Model 3 platform.
+          Model S is a four-door sedan. Model X is an SUV. Its energy storage products
+          include Powerwall and Powerpack.", "category": "Stock", "currencyID": "USD",
+          "urlImage": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "sector": "Consumer Cyclical", "name": "Tesla, Inc.", "dailyReturn": -27.61,
+          "dailyReturnPercentage": -3.43, "lastTraded": 777.69, "monthlyReturn": 0.0,
+          "yearlyReturnPercentage": 421.89, "yearlyReturnValue": 544.51, "popularity":
+          17753.0, "watched": 74328, "news": 0, "bought": 447958, "viewed": 477900,
+          "productType": "Instrument", "exchange": null, "status": "ACTIVE", "type":
+          "EQUITY", "encodedName": "tesla-inc-tsla", "period": "YEAR RETURN", "inceptionDate":
+          1277769600000, "instrumentTags": [], "childInstruments": []}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/products/searchProduct?symbol=TSLA&page=1&max=1
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/purchaseorders/v2/quickBuy
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "itemId": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
+          "name": "Tesla, Inc.", "quantity": 1.0, "lastPx": null, "lastQty": null, "leavesQty":
+          null, "allocatedQty": null, "amountCash": 0.0, "limitPrice": null, "stopPrice":
+          null, "effectivePrice": null, "autoStop": 0.0, "commission": 0.0, "grossTradeAmount":
+          null, "description": null, "insertedDate": 1658924566014, "updatedDate": 1658924566014,
+          "side": "BUY", "orderRejectReason": null, "orderRejectReasonStake": null,
+          "errorCode": null, "encodedName": "tesla-inc-tsla", "imageURL": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "symbol": "TSLA", "dwOrderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderStatus": "NEW", "type": "LIMIT", "timeInForce": "GFD", "expiration":
+          null, "status": 0, "category": "limit"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/purchaseorders/v2/quickBuy
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/transactions
+    response:
+      body:
+        string:
+          '{"transactions": [{"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02526847, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:17:54.074Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TQQQ", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 3.52112676, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:12:15.826Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02528508, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:02:10.256Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65410779, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:22:22.271Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65410779, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:21:04.186Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.65466448, "orderCashAmt": 100.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:15:22.321Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "0", "orderType": "2", "orderQty": 1.0, "orderCashAmt": 0.0, "side": "B",
+          "createdWhen": "2021-07-04 21:46:25", "updatedReason": "limit-buy-new", "commission":
+          0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 120.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": null, "realizedPL":
+          null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "orderNo":
+          "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus": "4", "orderType":
+          "1", "orderQty": 0.65440743, "orderCashAmt": 100.0, "side": "B", "createdWhen":
+          "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ", "commission": 0.0,
+          "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T11:18:45.019Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02529916, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:11:56.996Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "TSLA", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 0.02523818, "orderCashAmt": 20.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:22:44.363Z",
+          "realizedPL": null}, {"orderId": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E", "symbol": "AAPL", "cumQty": 0.0, "orderStatus":
+          "4", "orderType": "1", "orderQty": 1.30984347, "orderCashAmt": 200.0, "side":
+          "B", "createdWhen": "2021-07-04 21:46:25", "updatedReason": "JOS TS CXL ",
+          "commission": 0.0, "executedWhen": null, "isoTimeRestingOrderExpires": "2022-07-27T20:00:00.000Z",
+          "limitPrice": 0.0, "stopPrice": 0.0, "cancelledWhen": null, "executedPrice":
+          null, "commissionDesc": "Standard Commission", "updatedWhen": "2022-07-27T12:12:10.007Z",
+          "realizedPL": null}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/transactions
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+    response:
+      body:
+        string:
+          '[{"orderNo": "x5-4334954E", "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderCashAmt": 0.0, "symbol": "TSLA", "price": 0.0, "stopPrice": 0.0, "side":
+          "B", "orderType": 2, "cumQty": "0.0", "limitPrice": 120.0, "commission": 0.0,
+          "createdWhen": "2021-07-04 21:46:25", "orderStatus": 0, "orderQty": 1.0, "description":
+          "Limit Order: Buy at a limit of $120.00", "instrumentID": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
+          "imageUrl": "https://d3an3cesqmrf1x.cloudfront.net/images/symbols/tsla.png",
+          "instrumentSymbol": "TSLA", "instrumentName": "Tesla, Inc.", "encodedName":
+          "tesla-inc-tsla", "expires": "2022-07-27"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/v2/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: DELETE
+      uri: https://global-prd-api.hellostake.com/api/orders/cancelOrder/HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string: ""
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/orders/cancelOrder/HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59
+version: 1
diff --git a/tests/cassettes/test_trade/test_successful_trade[exchange3-request_3].yaml b/tests/cassettes/test_trade/test_successful_trade[exchange3-request_3].yaml
new file mode 100644
index 0000000..e594cd8
--- /dev/null
+++ b/tests/cassettes/test_trade/test_successful_trade[exchange3-request_3].yaml
@@ -0,0 +1,132 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+    response:
+      body:
+        string: '{"instrumentId": "COL.XAU"}'
+      headers: {}
+      status:
+        code: 201
+        message: Created
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/view/COL
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4816686, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          12.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-27T22:22:49.881946", "completedTimestamp": null, "expiresAt": "2022-08-26T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 20, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders
+    response:
+      body:
+        string:
+          '[{"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker": "FINCLEAR",
+          "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4816686, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          12.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-27T22:22:49.881946", "completedTimestamp": null, "expiresAt": "2022-08-26T00:00:00",
+          "orderStatus": "STAKE_PENDING_CREATE", "orderCompletionType": null, "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 20, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+    response:
+      body:
+        string:
+          '{"order": {"id": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "broker":
+          "FINCLEAR", "brokerOrderId": 11111, "brokerOrderVersionId": null, "brokerInstructionId":
+          4816686, "brokerInstructionVersionId": 2, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "instrumentId": null, "instrumentCode": "COL.XAU", "side": "BUY", "limitPrice":
+          12.0, "validity": "GTC", "validityDate": null, "type": "LIMIT", "placedTimestamp":
+          "2022-07-27T22:22:49.881946", "completedTimestamp": null, "expiresAt": "2022-08-26T00:00:00",
+          "orderStatus": "CLOSED", "orderCompletionType": "CANCELLED", "filledUnits":
+          0, "averagePrice": null, "unitsRemaining": 20, "estimatedBrokerage": 0.0,
+          "estimatedExchangeFees": 0.0}}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders/1cf93550-8eb4-4c32-a229-826cf8c1be59/cancel
+version: 1
diff --git a/tests/cassettes/test_transaction/test_list_transactions.yaml b/tests/cassettes/test_transaction/test_list_transactions.yaml
deleted file mode 100644
index 4d4e9d5..0000000
--- a/tests/cassettes/test_transaction/test_list_transactions.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
-interactions:
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: GET
-      uri: https://global-prd-api.hellostake.com/api/user
-    response:
-      body:
-        string:
-          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
-          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "rita19", "emailAddress": "torresbenjamin@gmail.com", "dw_AccountId":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber": "w4-1267174s",
-          "macAccountNumber": "H1-7641957H", "status": null, "macStatus": "BASIC_USER",
-          "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "lastName": "Alexander", "phoneNumber": "9011530005",
-          "signUpPhase": 0, "ackSignedWhen": "2021-05-18", "createdDate": 1574303699770,
-          "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "L7-2127933N", "referredByCode": null, "regionIdentifier":
-          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
-          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
-          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
-          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
-          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
-          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
-          null, "documentsStatus": "NO_ACTION", "mfaenabled": false}'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/user
-  - request:
-      body: null
-      headers:
-        Accept:
-          - application/json
-        Content-Type:
-          - application/json
-      method: POST
-      uri: https://global-prd-api.hellostake.com/api/users/accounts/accountTransactions
-    response:
-      body:
-        string:
-          '[{"accountAmount": -79.2, "accountBalance": 3605.76, "accountType":
-          "LIVE", "comment": "Buy 0.94106463 shares of COP at 84.16 FULL fill", "dnb":
-          false, "finTranID": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "finTranTypeID":
-          "SPUR", "feeSec": 0.0, "feeTaf": 0.0, "feeBase": 0.0, "feeXtraShares": 0.0,
-          "feeExchange": 0.0, "fillQty": 0.94106463, "fillPx": 84.16, "sendCommissionToInteliclear":
-          false, "systemAmount": 0.0, "tranAmount": -79.2, "tranSource": "EMS", "tranWhen":
-          "2021-07-13 08:09:30", "wlpAmount": 0.0, "wlpFinTranTypeID": null, "instrument":
-          {"id": "702afeb3-79df-463d-93e7-c30d791f5a25", "symbol": "COP", "name": "ConocoPhillips"},
-          "dividend": null, "dividendTax": null, "mergerAcquisition": null, "positionDelta":
-          null, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "orderNo": "S2-9425658g"},
-          {"accountAmount": 12622.53, "accountBalance": 16228.29, "accountType": "LIVE",
-          "comment": "Sell 30 shares of VGT at 420.751 FULL fill", "dnb": false, "finTranID":
-          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "finTranTypeID": "SSAL", "feeSec":
-          0.0, "feeTaf": 0.0, "feeBase": 0.0, "feeXtraShares": 0.0, "feeExchange": 0.0,
-          "fillQty": 30.0, "fillPx": 420.75, "sendCommissionToInteliclear": false, "systemAmount":
-          0.0, "tranAmount": 12622.53, "tranSource": "EMS", "tranWhen": "2021-07-13
-          08:09:30", "wlpAmount": 0.0, "wlpFinTranTypeID": null, "instrument": {"id":
-          "702afeb3-79df-463d-93e7-c30d791f5a25", "symbol": "VGT", "name": "Vanguard
-          Information Technology ETF"}, "dividend": null, "dividendTax": null, "mergerAcquisition":
-          null, "positionDelta": null, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "orderNo": "S2-9425658g"}, {"accountAmount": -0.07, "accountBalance": 16228.22,
-          "accountType": "LIVE", "comment": "COMM Sell VGT secFee=0.06 tafFee=0.01",
-          "dnb": false, "finTranID": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "finTranTypeID":
-          "COMM", "feeSec": 0.06, "feeTaf": 0.01, "feeBase": 0.0, "feeXtraShares": 0.0,
-          "feeExchange": 0.0, "fillQty": 0.0, "fillPx": 0.0, "sendCommissionToInteliclear":
-          false, "systemAmount": 0.0, "tranAmount": -0.07, "tranSource": "EMS", "tranWhen":
-          "2021-07-13 08:09:30", "wlpAmount": 0.0, "wlpFinTranTypeID": null, "instrument":
-          {"id": "702afeb3-79df-463d-93e7-c30d791f5a25", "symbol": "VGT", "name": "Vanguard
-          Information Technology ETF"}, "dividend": null, "dividendTax": null, "mergerAcquisition":
-          null, "positionDelta": null, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
-          "orderNo": "S2-9425658g"}]'
-      headers: {}
-      status:
-        code: 200
-        message: OK
-      url: https://global-prd-api.hellostake.com/api/users/accounts/accountTransactions
-version: 1
diff --git a/tests/cassettes/test_transaction/test_list_transactions[exchange0-request_0].yaml b/tests/cassettes/test_transaction/test_list_transactions[exchange0-request_0].yaml
new file mode 100644
index 0000000..4fa1d24
--- /dev/null
+++ b/tests/cassettes/test_transaction/test_list_transactions[exchange0-request_0].yaml
@@ -0,0 +1,86 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/users/accounts/accountTransactions
+    response:
+      body:
+        string:
+          '[{"accountAmount": 0.62, "accountBalance": 29442.32, "accountType":
+          "LIVE", "comment": "f1-9011914a", "dnb": false, "finTranID": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "finTranTypeID": "DIV", "feeSec": 0.0, "feeTaf": 0.0, "feeBase": 0.0, "feeXtraShares":
+          0.0, "feeExchange": 0.0, "fillQty": 0.0, "fillPx": 0.0, "sendCommissionToInteliclear":
+          false, "systemAmount": 0.0, "tranAmount": 1000, "tranSource": "INTE", "tranWhen":
+          "2020-06-09 03:35:08", "wlpAmount": 0.0, "wlpFinTranTypeID": "b553ef2c-13f8-411b-977c-00fbc5efbe59",
+          "instrument": {"id": "20076f7d-ff21-4741-86be-33dac978ceff", "symbol": "LIT",
+          "name": "Global X Lithium & Battery Tech ETF"}, "dividend": {"type": "CASH",
+          "amountPerShare": 0.0622, "taxCode": "FULLY_TAXABLE"}, "dividendTax": null,
+          "mergerAcquisition": null, "positionDelta": null, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E"}, {"accountAmount": 3.5, "accountBalance": 29445.82,
+          "accountType": "LIVE", "comment": "f1-9011914a", "dnb": false, "finTranID":
+          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "finTranTypeID": "DIV", "feeSec":
+          0.0, "feeTaf": 0.0, "feeBase": 0.0, "feeXtraShares": 0.0, "feeExchange": 0.0,
+          "fillQty": 0.0, "fillPx": 0.0, "sendCommissionToInteliclear": false, "systemAmount":
+          0.0, "tranAmount": 1000, "tranSource": "INTE", "tranWhen": "2020-06-09 03:35:08",
+          "wlpAmount": 0.0, "wlpFinTranTypeID": "b553ef2c-13f8-411b-977c-00fbc5efbe59",
+          "instrument": {"id": "20076f7d-ff21-4741-86be-33dac978ceff", "symbol": "COP",
+          "name": "ConocoPhillips"}, "dividend": {"type": "CASH", "amountPerShare":
+          0.7, "taxCode": "FULLY_TAXABLE"}, "dividendTax": null, "mergerAcquisition":
+          null, "positionDelta": null, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "orderNo": "x5-4334954E"}, {"accountAmount": -0.53, "accountBalance": 29445.29,
+          "accountType": "LIVE", "comment": "f1-9011914a", "dnb": false, "finTranID":
+          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "finTranTypeID": "DIVTAX", "feeSec":
+          0.0, "feeTaf": 0.0, "feeBase": 0.0, "feeXtraShares": 0.0, "feeExchange": 0.0,
+          "fillQty": 0.0, "fillPx": 0.0, "sendCommissionToInteliclear": false, "systemAmount":
+          0.0, "tranAmount": 1000, "tranSource": "INTE", "tranWhen": "2020-06-09 03:35:08",
+          "wlpAmount": 0.0, "wlpFinTranTypeID": "87f1acf2-b9ea-4781-b989-e403459626bb",
+          "instrument": {"id": "20076f7d-ff21-4741-86be-33dac978ceff", "symbol": "COP",
+          "name": "ConocoPhillips"}, "dividend": null, "dividendTax": {"rate": 0.15,
+          "type": "NON_RESIDENT_ALIEN"}, "mergerAcquisition": null, "positionDelta":
+          null, "orderID": "HHI.1cf93550-8eb4-4c32-a229-826cf8c1be59", "orderNo": "x5-4334954E"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/users/accounts/accountTransactions
+version: 1
diff --git a/tests/cassettes/test_transaction/test_list_transactions[exchange1-request_1].yaml b/tests/cassettes/test_transaction/test_list_transactions[exchange1-request_1].yaml
new file mode 100644
index 0000000..be59878
--- /dev/null
+++ b/tests/cassettes/test_transaction/test_list_transactions[exchange1-request_1].yaml
@@ -0,0 +1,74 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/orders/tradeActivity?size=3&page=0
+    response:
+      body:
+        string:
+          '{"items": [{"brokerOrderId": 11111, "instrumentCode": "CBA.XAU", "type":
+          "MARKET_TO_LIMIT", "side": "BUY", "limitPrice": 97.3, "averagePrice": 97.08,
+          "completedTimestamp": "2022-07-25T05:17:10.595", "placedTimestamp": "2022-07-25T15:17:10.231591",
+          "orderStatus": "CLOSED", "orderCompletionType": "FILLED", "consideration":
+          582.48, "effectivePrice": 97.08, "units": 6, "userBrokerageFees": 0.0, "executionDate":
+          "2022-07-25", "contractNoteReceived": true, "contractNoteNumber": "1799186",
+          "contractNoteNumbers": ["1799186"]}, {"brokerOrderId": 11111, "instrumentCode":
+          "COL.XAU", "type": "MARKET_TO_LIMIT", "side": "BUY", "limitPrice": 18.95,
+          "averagePrice": 18.86, "completedTimestamp": "2022-07-25T05:04:26.126", "placedTimestamp":
+          "2022-07-25T15:04:25.685884", "oexerderStatus": "CLOSED", "orderCompletionType":
+          "FILLED", "consideration": 565.8, "effectivePrice": 18.86, "units": 30, "userBrokerageFees":
+          0.0, "executionDate": "2022-07-25", "contractNoteReceived": true, "contractNoteNumber":
+          "1799124", "contractNoteNumbers": ["1799124"]}, {"brokerOrderId": 11111, "instrumentCode":
+          "VMM.XAU", "type": "MARKET_TO_LIMIT", "side": "SELL", "limitPrice": 0.295,
+          "averagePrice": 0.295, "completedTimestamp": "2022-05-20T05:49:08.817", "placedTimestamp":
+          "2022-05-20T15:46:46.189472", "orderStatus": "CLOSED", "orderCompletionType":
+          "FILLED", "consideration": 590.0, "effectivePrice": 0.295, "units": 2000,
+          "userBrokerageFees": 0.0, "executionDate": "2022-05-20", "contractNoteReceived":
+          true, "contractNoteNumber": "1575807", "contractNoteNumbers": ["1575807"]}],
+          "hasNext": true, "page": 0, "totalItems": 38}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/orders/tradeActivity?size=3&page=0
+version: 1
diff --git a/tests/cassettes/test_watchlist/test_create_watchlist.yaml b/tests/cassettes/test_watchlist/test_create_watchlist[exchange0-symbols0].yaml
similarity index 81%
rename from tests/cassettes/test_watchlist/test_create_watchlist.yaml
rename to tests/cassettes/test_watchlist/test_create_watchlist[exchange0-symbols0].yaml
index e1ba973..50bd79c 100644
--- a/tests/cassettes/test_watchlist/test_create_watchlist.yaml
+++ b/tests/cassettes/test_watchlist/test_create_watchlist[exchange0-symbols0].yaml
@@ -13,14 +13,14 @@ interactions:
         string:
           '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
           true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-          "username": "leonardzachary", "emailAddress": "ellen70@bates-williams.com",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
           "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
-          "R6-1813041A", "macAccountNumber": "K4-3517949y", "status": null, "macStatus":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
           "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
-          null, "firstName": "Tammy", "middleName": null, "lastName": "Alexander", "phoneNumber":
-          "9011530005", "signUpPhase": 0, "ackSignedWhen": "2022-01-22", "createdDate":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
           1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
-          null, "referralCode": "A1-2107594j", "referredByCode": null, "regionIdentifier":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
           "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
           null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
           null, "userProfile": {"residentialAddress": null, "postalAddress": null},
@@ -67,12 +67,12 @@ interactions:
     response:
       body:
         string:
-          '{"newWatchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "watchlists":
+          '{"newWatchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "watchlists":
           [{"watchlistId": "bb0f59b5-2454-451c-8de3-fa3fc7d13a42", "name": "Not so much
           test", "timeCreated": "2022-07-14T05:25:44.881769Z", "count": 1}, {"watchlistId":
           "e649db6d-71ab-4649-a32e-59d57def4a00", "name": "stef 2", "timeCreated": "2022-07-14T05:31:06.054443Z",
-          "count": 0}, {"watchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "name":
-          "__test_watchlist__", "timeCreated": "2022-07-14T07:33:26.424872Z", "count":
+          "count": 0}, {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name":
+          "test_watchlist__NYSEUrl", "timeCreated": "2022-07-24T06:28:54.177475Z", "count":
           0}]}'
       headers: {}
       status:
@@ -87,17 +87,17 @@ interactions:
         Content-Type:
           - application/json
       method: GET
-      uri: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      uri: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
     response:
       body:
         string:
-          '{"watchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "name": "__test_watchlist__",
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__NYSEUrl",
           "count": 0, "instruments": []}'
       headers: {}
       status:
         code: 200
         message: OK
-      url: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      url: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
   - request:
       body: null
       headers:
@@ -106,11 +106,11 @@ interactions:
         Content-Type:
           - application/json
       method: POST
-      uri: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3/items
+      uri: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
     response:
       body:
         string:
-          '{"watchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "name": "__test_watchlist__",
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__NYSEUrl",
           "count": 3, "instruments": [{"instrumentId": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
           "name": "Tesla, Inc.", "symbol": "TSLA"}, {"instrumentId": "68277cc0-6106-4f3c-849b-1298ba964aba",
           "name": "Alphabet Inc. - Class C Shares", "symbol": "GOOG"}, {"instrumentId":
@@ -120,7 +120,7 @@ interactions:
       status:
         code: 200
         message: OK
-      url: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3/items
+      url: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
   - request:
       body: null
       headers:
@@ -129,11 +129,11 @@ interactions:
         Content-Type:
           - application/json
       method: GET
-      uri: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      uri: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
     response:
       body:
         string:
-          '{"watchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "name": "__test_watchlist__",
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__NYSEUrl",
           "count": 3, "instruments": [{"instrumentId": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
           "name": "Tesla, Inc.", "symbol": "TSLA"}, {"instrumentId": "68277cc0-6106-4f3c-849b-1298ba964aba",
           "name": "Alphabet Inc. - Class C Shares", "symbol": "GOOG"}, {"instrumentId":
@@ -143,7 +143,7 @@ interactions:
       status:
         code: 200
         message: OK
-      url: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      url: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
   - request:
       body: null
       headers:
@@ -152,11 +152,11 @@ interactions:
         Content-Type:
           - application/json
       method: GET
-      uri: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      uri: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
     response:
       body:
         string:
-          '{"watchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "name": "__test_watchlist__",
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__NYSEUrl",
           "count": 3, "instruments": [{"instrumentId": "5b85fabb-d57c-44e6-a7f6-a3efc760226c",
           "name": "Tesla, Inc.", "symbol": "TSLA"}, {"instrumentId": "68277cc0-6106-4f3c-849b-1298ba964aba",
           "name": "Alphabet Inc. - Class C Shares", "symbol": "GOOG"}, {"instrumentId":
@@ -166,7 +166,7 @@ interactions:
       status:
         code: 200
         message: OK
-      url: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      url: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
   - request:
       body:
         tickers:
@@ -179,17 +179,17 @@ interactions:
         Content-Type:
           - application/json
       method: DELETE
-      uri: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3/items
+      uri: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
     response:
       body:
         string:
-          '{"watchlistId": "51c502dd-20b9-4f7d-940d-43e66754f9a3", "name": "__test_watchlist__",
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__NYSEUrl",
           "count": 0, "instruments": []}'
       headers: {}
       status:
         code: 200
         message: OK
-      url: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3/items
+      url: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
   - request:
       body: null
       headers:
@@ -198,7 +198,7 @@ interactions:
         Content-Type:
           - application/json
       method: DELETE
-      uri: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      uri: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
     response:
       body:
         string:
@@ -210,5 +210,5 @@ interactions:
       status:
         code: 200
         message: OK
-      url: https://api.prd.stakeover.io/us/instrument/watchlist/51c502dd-20b9-4f7d-940d-43e66754f9a3
+      url: https://api.prd.stakeover.io/us/instrument/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
 version: 1
diff --git a/tests/cassettes/test_watchlist/test_create_watchlist[exchange1-symbols1].yaml b/tests/cassettes/test_watchlist/test_create_watchlist[exchange1-symbols1].yaml
new file mode 100644
index 0000000..dcacd83
--- /dev/null
+++ b/tests/cassettes/test_watchlist/test_create_watchlist[exchange1-symbols1].yaml
@@ -0,0 +1,226 @@
+interactions:
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/user
+    response:
+      body:
+        string:
+          '{"canTradeOnUnsettledFunds": false, "cpfValue": null, "emailVerified":
+          true, "hasFunded": true, "hasTraded": true, "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+          "username": "michael29", "emailAddress": "reevesmegan@gilmore-wright.biz",
+          "dw_AccountId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "dw_AccountNumber":
+          "z0-0593879b", "macAccountNumber": "d9-0481457G", "status": null, "macStatus":
+          "BASIC_USER", "dwStatus": null, "truliooStatus": "APPROVED", "truliooStatusWithWatchlist":
+          null, "firstName": "Rita", "middleName": null, "lastName": "Jones", "phoneNumber":
+          "(640)242-4270x965", "signUpPhase": 0, "ackSignedWhen": "2021-11-15", "createdDate":
+          1574303699770, "stakeApprovedDate": null, "accountType": "INDIVIDUAL", "masterAccountId":
+          null, "referralCode": "W2-6612029X", "referredByCode": null, "regionIdentifier":
+          "AUS", "assetSummary": null, "fundingStatistics": null, "tradingStatistics":
+          null, "w8File": [], "rewardJourneyTimestamp": null, "rewardJourneyStatus":
+          null, "userProfile": {"residentialAddress": null, "postalAddress": null},
+          "ledgerBalance": 0.0, "investorAccreditations": null, "proscoreStatus": null,
+          "fxSpeed": "Regular", "facilitaStatus": null, "dateOfBirth": null, "upToDateDetails2021":
+          "NO_REQUIREMENTS", "stakeKycStatus": "KYC_APPROVED", "awxMigrationDocsRequired":
+          null, "documentsStatus": "NO_ACTION", "accountStatus": "OPEN", "mfaenabled":
+          false}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/user
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlists
+    response:
+      body:
+        string:
+          '{"generated": false, "watchlists": [{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "name": "List #1", "count": 7, "timeCreated": "2022-05-27T22:13:19.251101"},
+          {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "Minervini",
+          "count": 1, "timeCreated": "2022-05-30T06:21:48.134924"}, {"watchlistId":
+          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "Test List", "count": 0, "timeCreated":
+          "2022-07-13T04:05:52.149562"}, {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "name": "Stef 3", "count": 3, "timeCreated": "2022-07-14T07:56:40.921637"}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlists
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist
+    response:
+      body:
+        string:
+          '{"newWatchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "watchlists":
+          [{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "List #1",
+          "count": 7, "timeCreated": "2022-05-27T22:13:19.251101"}, {"watchlistId":
+          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "Minervini", "count": 1, "timeCreated":
+          "2022-05-30T06:21:48.134924"}, {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "name": "Test List", "count": 0, "timeCreated": "2022-07-13T04:05:52.149562"},
+          {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "Stef 3",
+          "count": 3, "timeCreated": "2022-07-14T07:56:40.921637"}, {"watchlistId":
+          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__ASXUrl",
+          "count": 0, "timeCreated": "2022-07-24T06:33:04.897381"}]}'
+      headers: {}
+      status:
+        code: 201
+        message: Created
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string:
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__ASXUrl",
+          "count": 0, "instruments": []}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: POST
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
+    response:
+      body:
+        string:
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__ASXUrl",
+          "count": 3, "instruments": [{"instrumentId": "BHP.XAU", "name": "BHP Group
+          Limited", "symbol": "BHP", "recentAnnouncement": false, "sensitive": false},
+          {"instrumentId": "WDS.XAU", "name": "Woodside Energy Group Ltd", "symbol":
+          "WDS", "recentAnnouncement": false, "sensitive": false}, {"instrumentId":
+          "COL.XAU", "name": "Coles Group Limited", "symbol": "COL", "recentAnnouncement":
+          false, "sensitive": false}]}'
+      headers: {}
+      status:
+        code: 201
+        message: Created
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string:
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__ASXUrl",
+          "count": 3, "instruments": [{"instrumentId": "BHP.XAU", "name": "BHP Group
+          Limited", "symbol": "BHP", "recentAnnouncement": false, "sensitive": false},
+          {"instrumentId": "WDS.XAU", "name": "Woodside Energy Group Ltd", "symbol":
+          "WDS", "recentAnnouncement": false, "sensitive": false}, {"instrumentId":
+          "COL.XAU", "name": "Coles Group Limited", "symbol": "COL", "recentAnnouncement":
+          false, "sensitive": false}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: GET
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string:
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__ASXUrl",
+          "count": 3, "instruments": [{"instrumentId": "BHP.XAU", "name": "BHP Group
+          Limited", "symbol": "BHP", "recentAnnouncement": false, "sensitive": false},
+          {"instrumentId": "WDS.XAU", "name": "Woodside Energy Group Ltd", "symbol":
+          "WDS", "recentAnnouncement": false, "sensitive": false}, {"instrumentId":
+          "COL.XAU", "name": "Coles Group Limited", "symbol": "COL", "recentAnnouncement":
+          false, "sensitive": false}]}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+  - request:
+      body:
+        tickers:
+          - COL
+          - WDS
+          - BHP
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: DELETE
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
+    response:
+      body:
+        string:
+          '{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "test_watchlist__ASXUrl",
+          "count": 0, "instruments": []}'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59/items
+  - request:
+      body: null
+      headers:
+        Accept:
+          - application/json
+        Content-Type:
+          - application/json
+      method: DELETE
+      uri: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+    response:
+      body:
+        string:
+          '[{"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "List
+          #1", "count": 7, "timeCreated": "2022-05-27T22:13:19.251101"}, {"watchlistId":
+          "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "Minervini", "count": 1, "timeCreated":
+          "2022-05-30T06:21:48.134924"}, {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59",
+          "name": "Test List", "count": 0, "timeCreated": "2022-07-13T04:05:52.149562"},
+          {"watchlistId": "1cf93550-8eb4-4c32-a229-826cf8c1be59", "name": "Stef 3",
+          "count": 3, "timeCreated": "2022-07-14T07:56:40.921637"}]'
+      headers: {}
+      status:
+        code: 200
+        message: OK
+      url: https://global-prd-api.hellostake.com/api/asx/instrument/v2/watchlist/1cf93550-8eb4-4c32-a229-826cf8c1be59
+version: 1
diff --git a/tests/conftest.py b/tests/conftest.py
index bb2756b..fad7185 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -26,44 +26,58 @@ def event_loop():
 
 def redact_sensitive_data(response):
 
+    if not response["body"].get("string", None):
+        response["headers"] = {}
+        return response
+
     fake = Faker()
     fake.seed_instance(1234)
     fake_user_id = "7c9bbfae-0000-47b7-0000-0e66d868c2cf"
     fake_order_id = uuid.UUID(str(uuid.uuid3(uuid.NAMESPACE_URL, "test")), version=4)
 
-    fake_transaction_id = "HHI." + str(fake_order_id)
+    fake_transaction_id = f"HHI.{str(fake_order_id)}"
     obfuscated_fields = {
-        "id": str(uuid.uuid4()),
-        "firstName": fake.first_name(),
-        "lastName": fake.last_name(),
-        "phoneNumber": fake.phone_number(),
         "ackSignedWhen": str(fake.date_this_decade()),
-        "referralCode": fake.pystr_format(),
-        "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
-        "username": fake.simple_profile()["username"],
-        "emailAddress": fake.email(),
-        "password": fake.password(),
-        "dw_id": str(fake_order_id),
+        "brokerOrderId": 11111,
+        "buyingPower": 1000.0,
+        "cashAvailableForTrade": 800,
+        "cashAvailableForWithdrawal": 1000,
+        "cashAvailableForTransfer": 1000,
+        "cashBalance": 1000.0,
+        "comment": fake.pystr_format(),
+        "createdWhen": str(fake.date_time_this_decade()),
         "dw_AccountId": str(fake_order_id),
         "dw_AccountNumber": fake.pystr_format(),
-        "macAccountNumber": fake.pystr_format(),
+        "dw_id": str(fake_order_id),
+        "dwAccountId": str(fake_order_id),
+        "dwCashAvailableForWithdrawal": 1000,
+        "dwOrderId": fake_transaction_id,
+        "emailAddress": fake.email(),
         "finTranID": str(fake_order_id),
+        "firstName": fake.first_name(),
+        "id": str(fake_order_id),
+        "lastName": fake.last_name(),
+        "liquidCash": 1000.0,
+        "macAccountNumber": fake.pystr_format(),
+        "openQty": 100,
         "orderID": fake_transaction_id,
         "orderId": fake_transaction_id,
-        "userID": fake_user_id,
         "orderNo": fake.pystr_format(),
-        "dwAccountId": str(fake_order_id),
-        "dwOrderId": fake_transaction_id,
-        "tranWhen": str(fake.date_time_this_decade()),
-        "referenceNumber": fake.pystr_format(),
+        "password": fake.password(),
+        "phoneNumber": fake.phone_number(),
         "productWatchlistID": str(fake_order_id),
-        "createdWhen": str(fake.date_time_this_decade()),
-        "cashAvailableForWithdrawal": 1000,
-        "cashAvailableForTrade": 800,
-        "dwCashAvailableForWithdrawal": 1000,
         "reference": fake.pystr_format(),
-        "comment": fake.pystr_format(),
+        "referenceNumber": fake.pystr_format(),
+        "referralCode": fake.pystr_format(),
+        "settledCash": 10000.00,
         "tranAmount": 1000,
+        "tranWhen": str(fake.date_time_this_decade()),
+        "unrealizedDayPLPercent": 1.0,
+        "unrealizedPL": 1.0,
+        "userId": "7c9bbfae-0000-47b7-0000-0e66d868c2cf",
+        "userID": fake_user_id,
+        "username": fake.simple_profile()["username"],
+        "watchlistId": str(fake_order_id),
     }
 
     def _redact_response_body(body):
diff --git a/tests/test_equity.py b/tests/test_equity.py
new file mode 100644
index 0000000..6fc0b4f
--- /dev/null
+++ b/tests/test_equity.py
@@ -0,0 +1,19 @@
+import pytest
+
+import stake
+from stake import constant
+
+
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
+@pytest.mark.vcr()
+@pytest.mark.asyncio
+async def test_list_equities(tracing_client: stake.StakeClient, exchange):
+
+    tracing_client.set_exchange(exchange)
+    equities = await tracing_client.equities.list()
+
+    assert equities.__class__.__name__ == "EquityPositions"
+    assert equities.equity_positions
+
+    for e in equities.equity_positions:
+        assert not (set(e.__fields__.keys()).difference(e.__fields_set__))
diff --git a/tests/test_funding.py b/tests/test_funding.py
index 8da026e..07c8a07 100644
--- a/tests/test_funding.py
+++ b/tests/test_funding.py
@@ -1,26 +1,49 @@
+from typing import Union
+
 import pytest
 
-from stake.funding import TransactionRecordRequest
+import stake
+from stake import constant
+from stake.asx.funding import FundingRequest as ASXFundingRequest
+from stake.funding import TransactionRecordRequest as NYSEFundingRequest
 
 
+@pytest.mark.parametrize(
+    "exchange, request_",
+    (
+        (constant.NYSE, NYSEFundingRequest(limit=1000)),
+        (constant.ASX, ASXFundingRequest(limit=3)),
+    ),
+)
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_list_fundings(tracing_client):
-    fundings = await tracing_client.fundings.list(TransactionRecordRequest())
-    assert len(fundings) == 2
+async def test_list_fundings(
+    tracing_client: stake.StakeClient,
+    exchange: Union[constant.ASXUrl, constant.NYSEUrl],
+    request_: Union[ASXFundingRequest, NYSEFundingRequest],
+):
+    tracing_client.set_exchange(exchange=exchange)
+    await tracing_client.fundings.list(request_)
 
 
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_cash_available(tracing_client):
+async def test_cash_available(
+    tracing_client: stake.StakeClient,
+    exchange: Union[constant.ASXUrl, constant.NYSEUrl],
+):
+    tracing_client.set_exchange(exchange)
     cash_available = await tracing_client.fundings.cash_available()
     assert cash_available.cash_available_for_withdrawal == 1000.0
-    assert cash_available.cash_settlement[0].utc_time.month == 1
 
 
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_funds_in_flight(tracing_client):
-    funds_in_flight = await tracing_client.fundings.in_flight()
-    assert len(funds_in_flight) == 1
-    assert funds_in_flight[0].transaction_type == "Poli"
+async def test_funds_in_flight(
+    tracing_client: stake.StakeClient,
+    exchange: Union[constant.ASXUrl, constant.NYSEUrl],
+):
+    tracing_client.set_exchange(exchange=exchange)
+    await tracing_client.fundings.in_flight()
diff --git a/tests/test_fx.py b/tests/test_fx.py
index f3044f8..d9fd671 100644
--- a/tests/test_fx.py
+++ b/tests/test_fx.py
@@ -1,11 +1,12 @@
 import pytest
 
+import stake
 from stake import FxConversionRequest
 
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_fx_conversion(tracing_client):
+async def test_fx_conversion(tracing_client: stake.StakeClient):
     request = FxConversionRequest(
         from_currency="USD", to_currency="AUD", from_amount=1000.0
     )
diff --git a/tests/test_integration.py b/tests/test_integration.py
index 97ed81c..ff6bcf2 100644
--- a/tests/test_integration.py
+++ b/tests/test_integration.py
@@ -4,24 +4,43 @@
 import pytest
 
 import stake
+from stake import constant
 from stake.transaction import TransactionRecordRequest
 
 
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
 @pytest.mark.asyncio
-async def test_integration():
-    async with stake.StakeClient() as session:
-        await session.watchlist.list()
+async def test_integration(exchange):
+    async with stake.StakeClient(exchange=exchange) as session:
+        await session.watchlist.list_watchlists()
         await session.equities.list()
         await session.orders.list()
         await session.market.get()
-        # request = stake.FxConversionRequest(
-        #     from_currency="USD", to_currency="AUD", from_amount=1000.0
-        # )
-        # conversion_result = await session.fx.convert(request)
-        # assert conversion_result.rate
-        request = stake.TransactionRecordRequest(limit=10)
-        transactions = await session.transactions.list(request)
-        assert len(transactions) == 10
+        await session.market.is_open()
         await session.fundings.cash_available()
         await session.fundings.in_flight()
-        await session.fundings.list(TransactionRecordRequest(limit=1000))
+
+        if exchange == constant.NYSE:
+            request = stake.TransactionRecordRequest(limit=10)
+            transactions = await session.transactions.list(request)
+            assert len(transactions) == 10
+            await session.fundings.list(TransactionRecordRequest(limit=100))
+
+        elif exchange == constant.ASX:
+            from stake.asx.funding import FundingRequest as ASXFundingRequest
+            from stake.asx.funding import Sort
+            from stake.asx.transaction import (
+                TransactionRecordRequest as ASXTransactionRecordRequest,
+            )
+
+            request = ASXFundingRequest(
+                limit=10, sort=[Sort(direction="asc", attribute="insertedAt")]
+            )
+            result = await session.fundings.list(request=request)
+            assert len(result.fundings) == 10
+
+            request = ASXTransactionRecordRequest(
+                limit=10, sort=[Sort(direction="desc", attribute="insertedAt")]
+            )
+            result = await session.transactions.list(request=request)
+            assert len(result.transactions) == 10
diff --git a/tests/test_market.py b/tests/test_market.py
new file mode 100644
index 0000000..627ab99
--- /dev/null
+++ b/tests/test_market.py
@@ -0,0 +1,13 @@
+import pytest
+
+import stake
+from stake import constant
+
+
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
+@pytest.mark.vcr()
+@pytest.mark.asyncio
+async def test_check_market_status(tracing_client: stake.StakeClient, exchange):
+    tracing_client.set_exchange(exchange)
+    market_status = await tracing_client.market.get()
+    assert market_status.status.current == "close"
diff --git a/tests/test_market_status.py b/tests/test_market_status.py
deleted file mode 100644
index a8433be..0000000
--- a/tests/test_market_status.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import pytest
-
-
-@pytest.mark.vcr()
-@pytest.mark.asyncio
-async def test_check_market_status(tracing_client):
-    market_status = await tracing_client.market.get()
-    assert market_status.status.current == "close"
diff --git a/tests/test_order.py b/tests/test_order.py
index 3bb6759..393732a 100644
--- a/tests/test_order.py
+++ b/tests/test_order.py
@@ -1,9 +1,28 @@
 import pytest
 
+from stake import constant
+from stake.client import StakeClient
 
+
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_list_orders(tracing_client):
+async def test_list_orders(tracing_client: StakeClient, exchange):
+    tracing_client.set_exchange(exchange)
+    orders = await tracing_client.orders.list()
+    assert len(orders)
+    assert orders[0].order_id
+
+
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
+@pytest.mark.vcr()
+@pytest.mark.asyncio
+async def test_cancel_order(tracing_client: StakeClient, exchange):
+    """Warning, will cancel the first pending order."""
+    tracing_client.set_exchange(exchange)
+    orders = await tracing_client.orders.list()
+    how_many_orders = len(orders)
+    cancel_order = await tracing_client.orders.cancel(orders[0])
+    assert cancel_order
     orders = await tracing_client.orders.list()
-    assert len(orders) == 1
-    assert orders[0].symbol == "TQQQ"
+    assert len(orders) == how_many_orders - 1
diff --git a/tests/test_product.py b/tests/test_product.py
index d3b08e7..bff3702 100644
--- a/tests/test_product.py
+++ b/tests/test_product.py
@@ -1,27 +1,27 @@
 import asyncio
+from typing import List
 
 import aiohttp
 import pytest
+from pydantic import BaseModel
 
-from stake.client import HttpClient
+from stake import asx, constant
+from stake.client import HttpClient, StakeClient
 from stake.constant import NYSE
 from stake.product import Product
 
 
+@pytest.mark.parametrize("exchange", (constant.NYSE, constant.ASX))
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_show_portfolio(tracing_client):
-    return await tracing_client.equities.list()
-
-
-@pytest.mark.vcr()
-@pytest.mark.asyncio
-async def test_find_products_by_name(tracing_client):
+async def test_find_products_by_name(tracing_client: StakeClient, exchange):
     from stake.product import ProductSearchByName
 
+    tracing_client.set_exchange(exchange)
     request = ProductSearchByName(keyword="techno")
     products = await tracing_client.products.search(request)
     assert len(products) == 10
+    assert products[0].__class__.__name__ == "Instrument"
 
 
 @pytest.mark.asyncio
@@ -43,3 +43,35 @@ async def _get_symbol(symbol):
             Product(**serialized_product["products"][0])
             for serialized_product in results
         ]
+
+
+@pytest.mark.parametrize(
+    "exchange, symbols",
+    ((constant.NYSE, ["TSLA", "MSFT", "GOOG"]), (constant.ASX, ["ANZ", "WDS", "COL"])),
+)
+@pytest.mark.vcr()
+@pytest.mark.asyncio
+async def test_get_product(
+    tracing_client: StakeClient, exchange: BaseModel, symbols: List[str]
+):
+    tracing_client.set_exchange(exchange)
+    for symbol in symbols:
+        product = await tracing_client.products.get(symbol)
+    assert product.__class__.__name__ == "Product"
+
+
+@pytest.mark.parametrize(
+    "exchange, keyword", ((constant.ASX, "CBA"), (constant.NYSE, "MSFT"))
+)
+@pytest.mark.asyncio
+async def test_search_products(
+    tracing_client: StakeClient, exchange: BaseModel, keyword: str
+):
+    tracing_client.set_exchange(exchange)
+    search_results = await tracing_client.products.search(
+        asx.ProductSearchByName(keyword=keyword)
+    )
+    assert search_results
+
+    product = await tracing_client.products.product_from_instrument(search_results[0])
+    assert product
diff --git a/tests/test_ratings.py b/tests/test_ratings.py
index 30c261d..dc54362 100644
--- a/tests/test_ratings.py
+++ b/tests/test_ratings.py
@@ -1,19 +1,21 @@
 import pytest
 
+import stake
 from stake import RatingsRequest
 
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_list_ratings(tracing_client):
+async def test_list_ratings(tracing_client: stake.StakeClient):
     request = RatingsRequest(symbols=["AAPL", "MSFT"], limit=4)
     ratings = await tracing_client.ratings.list(request)
     assert len(ratings) == 4
     assert ratings[0].symbol in ("AAPL", "MSFT")
 
 
+@pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_list_ratings_unknown(tracing_client):
+async def test_list_ratings_unknown(tracing_client: stake.StakeClient):
     request = RatingsRequest(symbols=["NOTEXIST"], limit=4)
     ratings = await tracing_client.ratings.list(request)
     assert len(ratings) == 0
diff --git a/tests/test_trade.py b/tests/test_trade.py
index 3c36295..48a2176 100644
--- a/tests/test_trade.py
+++ b/tests/test_trade.py
@@ -1,12 +1,14 @@
 import pytest
 
-from stake.order import CancelOrderRequest
+import stake
+from stake import constant
+from stake.asx import trade as asx_trade
 from stake.trade import LimitBuyRequest, MarketBuyRequest, StopBuyRequest
 
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_stop_buy(tracing_client):
+async def test_stop_buy(tracing_client: stake.StakeClient):
     # amountCash too low.
     with pytest.raises(ValueError):
         await tracing_client.trades.buy(
@@ -22,7 +24,7 @@ async def test_stop_buy(tracing_client):
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_limit_buy(tracing_client):
+async def test_limit_buy(tracing_client: stake.StakeClient):
     with pytest.raises(RuntimeError):
         await tracing_client.trades.buy(
             LimitBuyRequest(symbol="AAPL", limitPrice=460, quantity=1000)
@@ -31,21 +33,60 @@ async def test_limit_buy(tracing_client):
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_limit_sell(tracing_client):
+async def test_limit_sell(tracing_client: stake.StakeClient):
     with pytest.raises(RuntimeError):
         await tracing_client.trades.sell(
             LimitBuyRequest(symbol="AAPL", limitPrice=400, quantity=100)
         )
 
 
+@pytest.mark.parametrize(
+    "exchange, request_",
+    (
+        (
+            constant.NYSE,
+            MarketBuyRequest(symbol="TSLA", amount_cash=20, comment="from cloud"),
+        ),
+        (constant.ASX, asx_trade.MarketBuyRequest(symbol="COL", units=20)),
+        (
+            constant.NYSE,
+            LimitBuyRequest(
+                symbol="TSLA", limit_price=120, quantity=1, comment="from cloud"
+            ),
+        ),
+        (constant.ASX, asx_trade.LimitBuyRequest(symbol="COL", units=20, price=12.0)),
+    ),
+)
+@pytest.mark.asyncio
 @pytest.mark.vcr()
-@pytest.mark.skip(reason="This will actually perform a trade")
-async def test_successful_trade(tracing_client):
-    request_to_buy = MarketBuyRequest(
-        symbol="TSLA", amount_cash=20, comment="from cloud"
-    )
-    trade = await tracing_client.trades.buy(request_to_buy)
+async def test_successful_trade(tracing_client: stake.StakeClient, exchange, request_):
+    tracing_client.set_exchange(exchange)
+
+    trade = await tracing_client.trades.buy(request_)
+    assert trade
+
+    orders = await tracing_client.orders.list()
+
+    # cancel the order
+    await tracing_client.orders.cancel(orders[0])
+
+
+@pytest.mark.parametrize(
+    "exchange, request_",
+    (
+        (constant.ASX, asx_trade.MarketSellRequest(symbol="COL", units=20)),
+        (constant.ASX, asx_trade.LimitSellRequest(symbol="COL", units=20, price=15.0)),
+    ),
+)
+@pytest.mark.asyncio
+@pytest.mark.vcr()
+async def test_sell(tracing_client: stake.StakeClient, exchange, request_):
+    tracing_client.set_exchange(exchange)
+
+    trade = await tracing_client.trades.sell(request_)
     assert trade
 
+    orders = await tracing_client.orders.list()
+    assert orders
     # cancel the order
-    await tracing_client.orders.cancel(CancelOrderRequest(order_id=trade.dw_order_id))
+    await tracing_client.orders.cancel(orders[0])
diff --git a/tests/test_transaction.py b/tests/test_transaction.py
index ba5d525..3f9ca84 100644
--- a/tests/test_transaction.py
+++ b/tests/test_transaction.py
@@ -1,12 +1,29 @@
+from typing import Union
+
 import pytest
 
-from stake import transaction
+import stake
+from stake import constant, transaction
+from stake.asx import transaction as asx_transaction
 
 
+@pytest.mark.parametrize(
+    "exchange, request_",
+    (
+        (constant.NYSE, transaction.TransactionRecordRequest(limit=3)),
+        (constant.ASX, asx_transaction.TransactionRecordRequest(limit=3)),
+    ),
+)
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_list_transactions(tracing_client):
-    request = transaction.TransactionRecordRequest(limit=3)
-    transactions = await tracing_client.transactions.list(request)
+async def test_list_transactions(
+    tracing_client: stake.StakeClient,
+    exchange: Union[constant.ASXUrl, constant.NYSEUrl],
+    request_: Union[
+        asx_transaction.TransactionRecordRequest, transaction.TransactionRecordRequest
+    ],
+):
+    tracing_client.set_exchange(exchange)
+    transactions = await tracing_client.transactions.list(request_)
 
-    assert len(transactions) == 3
+    assert transactions
diff --git a/tests/test_watchlist.py b/tests/test_watchlist.py
index a43efe2..286e051 100644
--- a/tests/test_watchlist.py
+++ b/tests/test_watchlist.py
@@ -1,5 +1,8 @@
 import pytest
+from pydantic import BaseModel
 
+import stake
+from stake import constant
 from stake.watchlist import (
     AddToWatchlistRequest,
     CreateWatchlistRequest,
@@ -14,14 +17,14 @@
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_add_to_watchlist(tracing_client):
+async def test_add_to_watchlist(tracing_client: stake.StakeClient):
     added = await tracing_client.watchlist.add(AddToWatchlistRequest(symbol="SPOT"))
     assert added.watching
 
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_remove_from_watchlist(tracing_client):
+async def test_remove_from_watchlist(tracing_client: stake.StakeClient):
 
     removed = await tracing_client.watchlist.remove(
         RemoveFromWatchlistRequest(symbol="SPOT")
@@ -31,37 +34,46 @@ async def test_remove_from_watchlist(tracing_client):
 
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_list_watchlist(tracing_client):
+async def test_list_watchlist(tracing_client: stake.StakeClient):
     watched = await tracing_client.watchlist.list()
     assert len(watched) == 10
 
 
+@pytest.mark.parametrize(
+    "exchange, symbols",
+    (
+        (constant.NYSE, ["TSLA", "GOOG", "MSFT", "NOK"]),
+        (constant.ASX, ["COL", "WDS", "BHP", "OOO"]),
+    ),
+)
 @pytest.mark.vcr()
 @pytest.mark.asyncio
-async def test_create_watchlist(tracing_client):
-    name = "__test_watchlist__"
+async def test_create_watchlist(
+    tracing_client: stake.StakeClient, exchange: BaseModel, symbols: str
+):
+    name = f"test_watchlist__{exchange.__class__.__name__}"
+    tracing_client.set_exchange(exchange)
     watched = await tracing_client.watchlist.create_watchlist(
         CreateWatchlistRequest(name=name)
     )
-    assert isinstance(watched, Watchlist)
-
+    if not watched:
+        return
+    assert len(symbols[:3]) == 3
     update_request = UpdateWatchlistRequest(
-        id=watched.watchlist_id, tickers=["TSLA", "GOOG", "MSFT"]
-    )
-    watched: Watchlist = await tracing_client.watchlist.add_to_watchlist(
-        request=update_request
+        id=watched.watchlist_id, tickers=symbols[:3]
     )
+
+    watched = await tracing_client.watchlist.add_to_watchlist(request=update_request)
     assert watched.count == 3
     # update again, with the same symbols, nothing should change.
-    watched: Watchlist = await tracing_client.watchlist.add_to_watchlist(
-        request=update_request
-    )
+    watched = await tracing_client.watchlist.add_to_watchlist(request=update_request)
     assert watched.count == 3
 
     update_request = UpdateWatchlistRequest(
-        id=watched.watchlist_id, tickers=["TSLA", "GOOG", "MSFT", "NOK"]
+        id=watched.watchlist_id,
+        tickers=symbols,
     )
-    watched: Watchlist = await tracing_client.watchlist.remove_from_watchlist(
+    watched = await tracing_client.watchlist.remove_from_watchlist(
         request=update_request
     )