> For the complete documentation index, see [llms.txt](https://docs.tradevest.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tradevest.ai/release-notes/v.2.7.0-live.md).

# v.2.7.0 - Live

**2026-07-09 - Live**

**2026-06-24 - Test Environment**

***

**Documentation: Traditional Trading Orders guide**

A new partner guide, *Traditional Trading Orders with Tradevest*, walks the full order lifecycle (asset lookup, ex-ante, market/limit/stop, cancellation, documents, transactions, changelog).

* **Documentation Location:** [**Traditional Trading Orders**](/documentation/traditional-trading-orders-with-tradevest.md)

**Added**

**Cash Account Statement**

Partners can now generate an on-demand cash account statement for a customer's Master Account, covering the cash balance and money-market-fund holdings over a chosen reporting period. The document is generated synchronously on `POST` and retrieved as a PDF on a follow-up `GET`.

* **Documentation Location:** API REFERENCE → [Products](/documentation/products.md)
* **New Endpoint:** `POST /products/{customerProductId}/documents/cash-account-statement?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD` - validates the period and returns a `cashAccountStatementId`
* **New Endpoint:** `GET /products/{customerProductId}/documents/cash-account-statement` - returns the generated statement as `application/pdf`
* **Note:** `startDate` and `endDate` are required (`YYYY-MM-DD`); a `startDate` after `endDate` returns `400`. Generated statements are retained for 24 hours, after which the `GET` returns `404`.

**Savings Plan Exit**

Partners can now trigger the exit (sale) of an accumulated savings-plan position. The platform evaluates the fractional position, routes the sell order, and returns a sell order ID; the final outcome is delivered asynchronously via a savings-plan notification.

* **Documentation Location:** API REFERENCE → Trading → [Savings Plans](/api-reference/asset-management/savings-plans.md)
* **New Endpoint:** `POST /savings-plans/{savingsPlanId}/sell` - returns `202 Accepted` with `sellOrderId`
* **Payload includes:** `savingsCustomerProductId` (depository product holding the position), `liquidityCustomerProductId` (cash product receiving the proceeds)
* **Behavior:** on success the plan transitions to `DELETED`; on rejection a `VALIDATION_ERROR` notification is sent and the plan status is unchanged

**Tokenized Asset Price Feed (WebSocket)**

A new WebSocket price feed exposes live tokenized-asset prices, so partners can subscribe to bid/ask updates per market.

* **Documentation Location:** API REFERENCE → [WebSocket Tokenized Prices](/api-reference/websocket-tokenized-prices.md) (new section)
* **New Endpoint:** `GET /websocket/prices` - subscribe with a `PRICE_SUBSCRIPTION` request and receive `PRICES` responses
* **Payload includes:** request `markets[]` (`currency`, `symbol`); response `prices[]` with `asks`, `bids`, `previous`, and `time`
* **Note:** served from a dedicated host (`tokenized-prices-provider.platform-*.tradevest.ai`)

**Offboarding Reason: REVOKE**

The offboarding flow now accepts a new reason value, `REVOKE`.

* **Documentation Location:** API REFERENCE → [Entities](/api-reference/entities.md)
* **Added enum value:** `OffboardingReasonEnum` → `REVOKE` (alongside the existing immediate-offboarding reasons)

***

**Changed**

**Trading-Profile Asset-Type Vocabulary**

The asset-type vocabulary used across the trading-profile create / update / acknowledge / get operations has been extended, so partners can express trading profiles for more asset classes.

* **Documentation Location:** API REFERENCE → [Entities](/api-reference/entities.md)
* **Endpoint:** trading-profile create / update / get (the `assetType` field and the `assetType` path parameter)
* **Added values:** `CRYPTOCURRENCY`, `TRACKER_CERTIFICATE` (added to the existing `BOND`, `ETF`, `EQUITY`, `FUND`, `COMMODITY`, `DERIVATIVE`, `ETN`, `SECURITY_TOKEN`)
* **Note:** purely additive - every previously accepted value remains valid

**Tokenized Asset Orders - empty list now returns 404**

`GET /wawex/products/{customerProductId}/orders` now returns `404 Not Found` when the customer product has no orders, instead of `200` with an empty body. This makes the no-orders case explicit and consistent with the rest of the API.

* **Documentation Location:** API REFERENCE → Trading → [Tokenized Assets](/api-reference/asset-management/wawex-tokenized-assets/tokenized-assets.md)
* **Endpoint:** `GET /wawex/products/{customerProductId}/orders`
* **Behavior change:** no orders → `404 Not Found` (previously `200 {}`)
* **Note:** if a partner already consumes this endpoint on Test or Live and treats the no-orders case as `200`, they must handle `404` as "no orders" before the Live deployment.

**Tokenized Asset Order Executions - optional fields**

Tax and settlement-date fields on a tokenized-asset order execution are now optional in the response, because they are resolved asynchronously by the tax engine and may be absent on a freshly filled order until backfilled.

* **Documentation Location:** API REFERENCE → Trading → [Tokenized Assets](/api-reference/asset-management/wawex-tokenized-assets/tokenized-assets.md)
* **Endpoint:** the wawex order response (execution and partial-execution objects)
* **Changed:** `germanCit`, `solidaritySurcharge`, `churchTax`, `valueDate`, and `bookingDate` are no longer required and may be absent on a recently filled order
* **Note:** clients that assumed these fields are always present should handle their absence

**Pre-Trade Authorization**

A shared pre-trade authorization check now applies to order creation across all three order channels (traditional, digital, and tokenized). An order can be rejected before execution when the customer's trading profile does not authorize the traded asset's type or risk classification.

* **Documentation Location:** API REFERENCE → [Trading](/api-reference/asset-management.md) (Traditional Assets, Digital Assets, Tokenized Assets)
* **Affected endpoints:** the traditional, digital, and tokenized (WAWEX) order-creation endpoints
* **Behavior change:** order creation may now be rejected by the pre-trade authorization check - there is no request/response schema change
* **Classification:** authorization is evaluated from the asset's type (see the extended trading-profile vocabulary above) and its risk score - an asset with risk score `0` is treated as authorized, and `TRACKER_CERTIFICATE` is classified at risk level `3`
* **Partner licence dependency:** the requirement depends on the partner group's `counterpartyLicence`. BAFIN-licensed partners (`BAFIN_LICENSE_BANK`, `BAFIN_LICENSE_ASSET_MANAGER`) are **not** gated on risk `1`–`2` assets - appropriateness is the partner's responsibility - and are gated only on risk `3` assets. `NO_LICENSE` partners require an authorizing trading profile for every risk `1`–`3` asset. Risk `0` assets are authorized under all licences.
* **Environment note:** this check is **active on the Test environment** in this release and **disabled on Production** (feature-flagged), so live integrations are not affected until the flag is enabled in Production

**Savings Plan Auto-Deactivation on Product Close**

When a customer product transitions to `CLOSED`, any savings plan on that product is now automatically set to `INACTIVE`, which stops future executions.

* **Documentation Location:** API REFERENCE → Trading → [Savings Plans](/api-reference/asset-management/savings-plans.md)
* **Behavior change:** a product moving to `CLOSED` cascades its linked savings plan to `INACTIVE` (no schema change)
* **Note:** partners reading savings-plan status will see `INACTIVE` after the underlying product is closed


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tradevest.ai/release-notes/v.2.7.0-live.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
