2.8.0 Live Archive

v.2.8.0 - Live

2026-07-21 - Live 2026-07-07 - Test Environment

2026-07-21 - Live

2026-07-07 - Test Environment


Added

eWP - DeFi Yield Kryptowertpapier (TVDY)

A new tokenized asset class, the Tradevest DeFi Yield Kryptowertpapier (symbol TVDY, assetType: eWP), is now tradable through the existing WAWEX partner surface - there is no separate partner pipeline. The platform detects the eWP symbol and routes it internally; orders accumulate into an Ops-closed subscription (BUY) or redemption (SELL) batch and settle at a uniform clearing price.

  • Documentation Location: API REFERENCE → Trading → Tokenized Assets
  • Endpoint: POST /wawex/orders/market - place an eWP order on the same endpoint used for other tokenized assets
  • Endpoint: DELETE /wawex/orders/{orderId} - cancel a still-pending eWP order until its batch is closed by Ops; the cancellation releases the EUR (BUY) or unit (SELL) block
  • Endpoint: GET /wawex/assets - now lists TVDY with assetType: eWP, description "Tradevest DeFi Yield Kryptowertpapiere", and assetRiskScore: "3"
  • Endpoint: POST /wawex/ex-ante - supports an eWP cost-disclosure preview, priced from the indicative NAV→EUR feed (eWP has no ISIN, so no ISIN lookup is performed)
  • New enum value: QuantityTypeEnumAMOUNT (a EUR cash amount to invest), enabled alongside the existing UNIT
  • New enum value: AssetTypeEnumeWP; DigitalAssetTypeEnumeWP
  • Note: BUY is amount-based (quantityType: AMOUNT, EUR amount in quantity, min 1.000 € / max 8.000.000 € per order); SELL is unit-based (quantityType: UNIT, no min/max). There are no partial fills; order status moves RECEIVED → PENDING → FILLED.
  • Note: A mandatory MiFID ex-ante cost disclosure is generated server-side on every order and linked to it - the partner never passes an exAnteId. Retrieve it via GET /wawex/orders/{orderId} (exAnteId) and download the PDF at GET /wawex/ex-ante/{exAnteId}/receipt.
  • Note: BUY orders must pass an eligibility gate - declared free available assets ≥ 100.000 € or order amount ≤ 2× the customer's average monthly net income; a failing gate rejects the order. SELL/redemptions are exempt.

Wallet Account Statements

Partners can now generate an on-demand Wallet Account Statement (Walletauszug) over a customer wallet's tokenized stock positions, valued as of the current date or a requested historical snapshotDate (using SIX end-of-day pricing). The document is produced asynchronously: POST returns an ID and the GET returns the PDF once ready.

  • Documentation Location: API REFERENCE → Products
  • New Endpoint: POST /products/{customerProductId}/documents/wallet-account-statement - returns a walletAccountStatementId
  • New Endpoint: GET /products/{customerProductId}/documents/wallet-account-statement/{walletAccountStatementId} - returns the statement as application/pdf, or 202 Accepted (with a Retry-After header) while generation is still in progress
  • Payload includes: request body CreateWalletAccountStatementRequest with optional snapshotDate (YYYY-MM-DD) and language (defaults to DE, the only language currently supported)
  • New document type: WALLET_ACCOUNT_STATEMENT
  • Note: snapshotDate must not be in the future and not before the wallet product's creation date, otherwise 400. A historical date values positions as of that date; if no price exists exactly on the date, the previous available SIX price is used.
  • Note: The endpoint is rate-limited to 10 requests per minute per partner (429 Too Many Requests with a Retry-After header). Identical requests within the 24-hour retention window are idempotent and return the same statement ID; after retention the GET returns 404.

Tokenized Asset Order-Update Webhook

A new dedicated webhook delivers event-based order-status updates for tokenized assets (tracker certificates and eWP), so partners no longer need to poll. The payload follows the Traditional-asset schema because tokenized assets are KapESt-relevant securities.

  • Documentation Location: API REFERENCE → Webhooks
  • New Endpoint (partner-implemented): POST /tokenized-asset-order-notification - delivered for event TOKENIZED_ASSET_ORDER_NOTIFICATION
  • New enum value: EventTypeEnumTOKENIZED_ASSET_ORDER_NOTIFICATION
  • Payload includes: orderId, walletCustomerProductId and cashCustomerProductId (a WAWEX order spans two customer products), status, notificationType, externalId; exAnteId (returned for RECEIVED), executionId (returned for FILLED / PARTIALLY_FILLED), an executionData block (quantity, price, amount, germanCit, solidaritySurcharge, churchTax, fee), and a validationError block on rejection
  • Note: Tax fields are populated only after the tax engine has processed the trade (FILLED and terminal partials); intermediate PARTIALLY_FILLED slices carry execution data but no tax block. Mint/burn settlement steps are internal and never surfaced. Authentication, signing, and retry/delivery are identical to the existing order webhooks.

Corporate Action Foreign Tax Fields (Dividends)

The corporate-action transaction in Transaction History now carries the foreign withholding tax collected by the custodian on a cash dividend (DVCA), so partners can display the full tax breakdown.

  • Documentation Location: API REFERENCE → Transaction History
  • Endpoint: the corporate-action transaction response (taxData object)
  • Added field: foreignTaxCountryCode - ISO country code of the withholding jurisdiction
  • Added field: foreignTaxAmount - decimal, foreign tax collected by the custodian
  • Note: both fields sit alongside the existing germanCit, solidaritySurcharge, and churchTax; they are returned as null when no foreign tax applies (they are not omitted).

Savings Plan - Requestor Authorization Error Code

The savings-plan exit flow now validates the requestor-id against both linked products before processing, and a dedicated error code surfaces an unauthorized requestor.

  • Documentation Location: API REFERENCE → Webhooks
  • Added enum value: the savings-plan notification error code enum → REQUESTOR_ID_NOT_VALID
  • Note: returned when the requestor-id header is not authorized to act on behalf of the customer that owns the savings plan's liquidity and savings products.

Savings Plan Execution Details

Partners can now retrieve the individual orders of a savings plan - each periodic BUY execution and the SELL exit - in an order-like shape aligned with Traditional trading, exposing the fractional quantity, unified fill price, and venue of each order.

  • Documentation Location: API REFERENCE → Trading → Savings Plans
  • New Endpoint: GET /savings-plans/{savingsPlanId}/executions - paginated list of a plan's orders; supports status, executionDateFrom, executionDateTo filters and cursor pagination
  • New Endpoint: GET /savings-plans/{savingsPlanId}/executions/{executionId} - a single order by ID
  • Payload includes: executionId, savingsPlanId, status, tradeSide, isin, savingsAmount, exchangeCode, executionDatePlanned, and an execution block (executionPrice, executionQuantity, amount, transactionTime, germanCit, solidaritySurcharge, churchTax, feeAmount)
  • New enums: SavingsPlansOrderStatusEnum (PENDING, PLACED, FILLED, REJECTED, EXPIRED, CANCELLED) and SavingsPlansExchangeCodeEnum (TGAT, XOFF)
  • Note: the execution block is populated once status is FILLED; amount = executionQuantity × executionPrice rounded to 2 decimal places. exchangeCode is TGAT when the batch touched the exchange and XOFF for a pure internal (FIFO) allocation (rare edge case).
  • Note: for BUY executions the tax fields (germanCit, solidaritySurcharge, churchTax) are always 0 - there is no tax event on a purchase; they carry values only for SELL exits.

Savings Plan Order-Update Webhook

A new webhook pushes savings-plan order status changes (BUY executions and SELL exits) to partners on every transition, so they no longer need to poll the execution endpoints.

  • Documentation Location: API REFERENCE → Webhooks
  • New Endpoint (partner-implemented): POST /savings-plans-order-notification - delivered for event SAVINGS_PLANS_ORDER_NOTIFICATION
  • New enum value: EventTypeEnumSAVINGS_PLANS_ORDER_NOTIFICATION
  • Payload includes: savingsPlanId, executionId, customerId, tradeSide, status, notificationType, isin, savingsAmount, exchangeCode, externalId, and an execution block (quantity, price, amount, tax fields, fee)
  • Note: fires on every status transition. For SELL exits the tax fields are populated on a later UPDATED notification once the tax engine has computed them.

Changed

Corporate Action Cash-Dividend Tax Handling (DVCA)

The corporate-action publish endpoints have been extended so pre-withheld German tax and foreign withholding tax on cash dividends can be routed correctly to the tax engine before reporting to WARP. This finalizes the DVCA (cash dividend) data contract.

  • Documentation Location: API REFERENCE → Trading → Corporate Actions
  • Endpoint: publishMT564 (request body PublishMT564Request) and publishMT566 (request body PublishMT566Request)
  • Changed field: grossAmount renamed to grossAmountPerShare on PublishMT564Request and PublishMT566Request (the per-share gross dividend; grossAmount on PublishMT566Request now denotes the total cash for the entire CA)
  • Added field: originalCurrency (new CorporateActionCurrencyEnum, ISO 4217; required for DVCA) on both requests
  • Added field (PublishMT566Request): taxPercent (custodian tax %), netAmount, postedCashAmount, and exchangeRate (foreign currency per 1 EUR; required when originalCurrency is not EUR)
  • New enum: CorporateActionCurrencyEnum - the set of currencies accepted for a corporate action
  • Note: the corporate-action DVCA flow is a new capability - the grossAmountgrossAmountPerShare rename is part of finalizing its data contract and requires no partner action.