Release notes

Trade Server


26.6.36

05 Jun 2026

What's new

  • Exchange-mode margin engine (WIP) — Added per-symbol margin calculation for the Exchange trading mode: Observable and Acceptance margin across limit, stop, stop-limit and in-flight market orders, with position offsetting and what-if previews for order placement and modification.

Bug fixes

  • Position stop-loss and take-profit no longer trigger on a stale price after the position has been modified.
  • A position's margin now updates immediately after the position is increased or affected by a collateral transfer, instead of lagging behind.
  • The entity update publisher no longer drops updates or leaves partial state when an entity is deleted. 
  • Minor bug fixes and improvements.

Misc

  • Logging  — Server log timestamps are now emitted in UTC ISO 8601 format, and console output is color-coded by log level.
  • 3rd party dependencies have been updated to the latest versions.

26.5.35

29 May 2026

What's new

  • Margin call monitoring (admin) — Added real-time margin call tracking. Admins can subscribe to margin call status updates and snapshots over a new margin_call WebSocket channel, and list the accounts currently in a margin call through a new paged admin REST endpoint.
  • Look up clients by external ID (admin) — Added an admin endpoint to retrieve clients by their external identifier, so integrations can resolve accounts without an internal client id.
  • Per-symbol currency-conversion eligibility — Symbols now carry an eligibleForCurrencyConversion flag, exposed in the admin API, that controls whether a symbol can act as a hop when building cross-currency conversion rates. Only eligible symbols with differing base and profit currencies contribute edges, so misconfigured non-FX instruments no longer distort conversions. Existing symbols are migrated automatically, with the flag enabled for standard Forex pairs.

Bug fixes

  • Minor bug fixes and improvements.

Misc

  • Higher Web API backpressure and timeout defaults — Increased the default WebSocket backpressure capacity and write-buffer size to improve resilience under heavy streaming load.
  • 3rd party dependencies have been updated to the latest versions.

26.5.34

15 May 2026

What's new

  • Market and trigger prices in trade history (admin) — Admin trade history now records the market bid and ask price (with group markup) at the moment an order was triggered or placed, together with the stop or limit price of the triggering order where applicable, exposed as mpbmpasp and lp.
  • Exchange trading mode for groups (admin) — Added a group-level Exchange trading mode (Margin or Cash) that controls how exchange-traded symbols are settled. The setting is optional in the admin API and defaults to Margin when omitted. The fields and settings are present in the API now, but enforcement and computation land in a later phase.
  • Exchange margin calculation modes and price corridor for symbols (admin) — Symbols can now use the new Exchange Stocks and Exchange Bonds margin calculation modes and define a price-corridor threshold; the threshold is required for exchange instruments and ignored for OTC symbols. The fields and settings are present in the API now, but enforcement and computation land in a later phase.
  • Assets and liabilities in account state — Trading account state now carries Assets (as) and Liabilities (ls) for hybrid exchange accounts. The fields and settings are present in the API now, but enforcement and computation land in a later phase. Assets/Liabilities currently default to 0.0.

Bug fixes

  • Minor bug fixes and improvements.

Misc

  • HMAC signing guidance for empty request bodies — Clarified how requests with empty bodies must be signed and added curl examples to the API documentation.
  • 3rd party dependencies have been updated to the latest versions.

26.5.33

08 May 2026

Misc

  • Diagnostic log when partial-fill volume is not a multiple of OrderSizeIncrement — Trade server now emits an error log when a liquidity provider reports a partial-fill cumulative quantity that does not align with the symbol's configured OrderSizeIncrement, recording the originator order id, symbol, the reported quantity and the adjusted value. Previously the alignment fix-up was applied silently, which could cause partial fills to be reported as full-order volume without any trace in the logs.
  • Request id propagated through trading-engine logs — Order routing context metadata, including the originating client request id, is now threaded through the order-engine command pipeline and surfaced in the corresponding log lines for placement, modification, SL/TP modification, force-delete and stop/stop-loss/take-profit/stop-out trigger paths, so an individual client request can be followed end-to-end through all stages of order handling.
  • PostgreSQL exporter and export persistence logging — The PostgreSQL exporter and the file-based export persistence layer now produce more detailed log output: table names are included in batch log messages, state-file save operations are confirmed in the log, and stream-level I/O failures are reported with their underlying error context, making export-pipeline issues easier to diagnose.
  • 3rd party dependencies have been updated to the latest versions.

26.4.32

01 May 2026

What's new

  • Configurable timezone for symbol sessions and holidays — Symbol session schedules and holiday calendars are now evaluated in a configurable timezone instead of being fixed to UTC.

Bug fixes

  • Floating P&L refreshed after group markup change — Floating P&L was computed against the group markup snapshot taken at position open and never updated, so admin changes to a group's BidGroupMarkup or AskGroupMarkup left clients seeing stale P&L until the position was closed. Markup-only profile changes now patch the close-side group markup on the affected group's positions, and the next idle tick recomputes P&L without touching margin.
  • Charts endpoint duplicated data with descending sort order — Fixed an issue where the charts endpoint returned doubled candles when sortOrder was set to desc.
  • Minor bug fixes and improvements.

Misc

  • Account floating P&L recomputed on server startup — Trading account floating P&L is now rebuilt from open-position P&L and swaps at startup, so any residual bias from a previous delta-update bug no longer survives a restart. Equity is overwritten in step, and a warning is logged when the persisted and recomputed values diverge, giving operations visibility into any remaining drift.

26.4.31

24 Apr 2026

What's new

  • PostgreSQL export for orders, positions and daily statements — Added PostgreSQL writers and a daily-statement subscriber to the export pipeline, allowing orders, positions and daily statements to be streamed into PostgreSQL tables alongside the existing exporters.

Bug fixes

  • Minor bug fixes and improvements.

Misc

  • Protocol logging on HTTP and WebSocket transport — HTTP and WebSocket server sessions can now emit protocol-level logs through the standard transport configuration, making client integration issues easier to diagnose.
  • 3rd party dependencies have been updated to the latest versions.

26.4.30

17 Apr 2026

What's new

  • Force-delete bad orders (admin) — Added a new admin endpoint with a dedicated permission for force-deleting orders that cannot be removed through the regular cancellation flow. Lets operations resolve stuck orders without direct database access.
  • Bid and ask prices in trades history — The trades history report now includes bid and ask prices alongside the trade price, giving downstream consumers full quote context for each execution.

Bug fixes

  • Rate limits honoured on the client API — Configured rate limits are now correctly enforced on the client API, and the accompanying documentation has been refreshed so integrators can see which limits apply to which endpoints.
  • SL/TP restrictions from symbol config and group profile overrides — Stop Loss and Take Profit limits defined on a symbol, or overridden in a group profile, are now applied consistently when validating orders.
  • Take Profit validation error code — Fixed an issue where Take Profit validation could return kInvalidSL instead of kInvalidTP, making the cause of rejection ambiguous for clients.
  • Minor bug fixes and improvements

26.4.29

11 Apr 2026

Bug fixes

  • Minor bug fixes and improvements

26.4.28

03 Apr 2026

Bug fixes

  • Minor bug fixes and improvements

Misc

  • Trading account soft-delete — Deleting a trading account now marks it as deleted rather than removing it outright, preventing the account ID from being reused by a new trading account. This preserves audit history, avoids ID collisions, and lays the groundwork for restoring deleted accounts in a future release.

26.3.27

27 Mar 2026

What's new

  • Close Bid/Ask (previous trading day last price) — Previous trading day closing prices (Bid Close and Ask Close) are now streamed via the WebSocket API, enabling clients to display daily change indicators. Values are persisted so they survive restarts.

Bug fixes

  • Group markups on floating P/L — Group markups are now applied to floating (unrealised) profit/loss calculations, ensuring that unrealised P/L reflects the correct marked-up prices.
  •  SL/TP double-trigger prevention — Fixed a race condition where Stop Loss and Take Profit service orders could trigger twice. The execution lifecycle for service orders has been corrected.
  •  Group/client deletion with linked accounts — Fixed a bug that allowed deletion of groups or clients that still had linked trading accounts. The server now returns a "dependencies exist" error instead.
  • Minor bug fixes and improvements

Misc

  • API error codes documentation — Standardised error code enum (ApiErrorCode) added across all API specifications (REST and WebSocket). Updated password field requirements for trading account creation and group field clarifications.
  •  3rd party dependencies have been updated to the latest versions

26.3.26

20 Mar 2026

What's new

  • SL/TP applied from order to position — Stop Loss and Take Profit levels set on an order are now automatically carried over to the resulting position.
  • Access Tokens Admin API — The Access Tokens Admin API allows managers to create, view, and revoke API access tokens for trading accounts, with granular permissions (AdminViewAccessTokens / AdminManageAccessTokens) and support for both long-lived and short-lived tokens.

Misc

  • Manager/client API separation — Non-manager accounts can no longer access manager API endpoints, and vice versa, enforcing proper authorization boundaries.
  • Enhanced logging — Log messages now include position information where available, making it easier to trace activity.
  • Holidays documentation
  • Manager permissions documentation

26.3.25

13 Mar 2026

Bug fixes

  • Minor bug fixes and improvements

Misc

  • Better margin logging — Enhanced log output when an operation fails due to insufficient margin, making it easier to diagnose rejected trades.
  • Spike filter documentation
  • Data export documentation (PostgreSQL exporter)
  • 3rd party dependencies have been updated to the latest versions

26.3.24

06 Mar 2026

What's new

  • PostgreSQL trade exporter — Added a PostgreSQL exporter for the Trade entity, enabling database-level trade reporting.
  • Bid/Ask High/Low tracking — Full implementation of Bid/Ask High/Low extrema: new calculation logic with an "extrema reset" flag on the market data publisher, plus persistent storage so values survive restarts.

Bug fixes

  • Minor bug fixes and improvements

Misc

  • Liquidity connectors documentation

26.2.23

27 Feb 2026

Bug fixes

  • Minor bug fixes and improvements

26.2.22

21 Feb 2026

What's new

  • Position conversion rates in API — Conversion rates used for position P&L calculations are now exposed via the API.
  • Conversion rate REST endpoint — New REST API endpoint for querying conversion rates, supporting batch requests up to 100 elements with 12 decimal place precision.

Bug fixes

  • Trade/order history time range fix — Corrected time range filtering in trade and order history requests.
  • Symbol update in currency converter — Fixed the currency converter factory not properly updating when symbol configuration changes.
  • Minor bug fixes and improvements

Misc

  • TransfersSubscription API cleanup — Removed the unused "snapshot" option from the TransfersSubscription WebSocket API documentation.

26.2.21

13 Feb 2026

What's new

  • Conversion rate API spec — Published the API specification for the upcoming conversion rate REST endpoint.
  • Access token admin permissions — New AdminViewAccessTokens and AdminManageAccessTokens permissions for granular access token management.

Bug fixes

  • Stopout trade reason missing — Stopout trades now correctly carry the kStopout reason flag.
  • API spec token field name — Corrected the account field name in the Issue Token API specification.
  • Minor bug fixes and improvements

Misc

  • Prevent admin/client role switching — Trading accounts can no longer have their status changed between Admin and Client, preventing accidental privilege changes.

26.2.20

09 Feb 2026

What's new

  • Intraday swaps — Full intraday swap support: scheduler for timing swap events plus the business logic for calculating and applying intraday swap charges.
  • Signing Token — Token signing capability for secure API authentication.
  • Configurable end-of-day timezone for statements — The end-of-day cutoff for statements is now configurable per timezone.
  • SL/TP order ID linkage — Orders now expose their associated Stop Loss and Take Profit order IDs, enabling clients to track linked protective orders.
  • Pending order volume modification — Volume on pending orders can now be modified after placement.
  • Exchange field in public Symbol API — The Exchange property is now included in the public Symbol GET endpoint. 

Bug fixes

  • Minor bug fixes and improvements

Misc

  • Admin WebSocket delete notifications — Added delete event notification specs for symbols, groups, clients, trading accounts, and managers. 
  • 3rd party dependencies have been updated to the latest versions

26.1.19

23 Jan 2026

What's new

  • Agent commissions — The system now calculates and deposits agent commissions automatically.
  • Position amendment APIs — New Trade Engine APIs for amending open positions (e.g. modifying SL/TP on existing positions).

Bug fixes

  • Minor bug fixes and improvements 
  • Performance optimisations

Misc

  • Group settings documentation

26.1.18

17 Jan 2026

What's new

  • Netting account support — Full netting account support across order placement, order triggering, and connector execution, enabling hedging-free account modes.
  • Intraday swaps API configuration — Extended Symbol, Group/SymbolGroupProfile, and Client API endpoints with intraday swap configuration.
  • Position amendment API — New REST endpoints for updating and deleting positions (single and batch), with updated API specifications.
  • Cross-conversion support — Currency converter now handles cross-conversion (e.g. EUR/GBP via EUR/USD and GBP/USD) when a direct rate is unavailable.
  • Trading hours and swap rates in public API — Trading hours and swap fee rates are now exposed through the public Symbol API.
  • Statement response filtering — Statement GET requests now support flags to include/exclude orders or positions from the response.
  • Statement and email permissions — New granular permissions: ViewStatements, ViewEmailServices, and ConfigureEmailServices.

Bug fixes

  • Prohibit account currency change on group update — Changing account currency via group update is now blocked.
  • Prohibit OpenPositionType change on group update — Prevents changing netting/hedging mode on existing groups.
  • Block cross-currency group transfers — Trading accounts can no longer be moved to a group with a different account currency.
  • Admin Chart Bars symbol selector — Fixed the "BySymbolName" selector not working in the Admin Chart Bars API.
  • Group ID not updated on account transfer — Open positions and working orders now correctly reflect the new group ID/name when an account is moved.
  • Skip empty email statements — Statements are no longer sent when the trading account has no email address configured.
  •  Trading hours API regression — Fixed a regression in exposing trading hours via the public API.
  • AsyncAPI CSS fix — Fixed missing CSS in AsyncAPI specification pages.

Misc

  • Symbol configuration documentation
  • Order routing documentation
  • Email statements documentation
  • Removed unused group fields — Removed "Report Email" and "Report Template Folder" from the Group entity.

25.12.17

30 Dec 2025

What's new

  • WebSocket Admin API for entity updates — Real-time WebSocket notifications for admin-level changes to symbols, groups, clients, permission sets, and trading accounts.
  • Quantity in instrument units — Positions now expose quantity in instrument units (lots × lot size), in addition to lots.

Bug fixes

  • Minor bug fixes and improvements