Release notes
Trade Server
26.5.33
08 May 2026Misc
- 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 2026What'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 2026What'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 2026What'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 2026Bug fixes
- Minor bug fixes and improvements
26.4.28
03 Apr 2026Bug 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 2026What'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 2026What'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 2026Bug 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 2026What'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 2026Bug fixes
- Minor bug fixes and improvements
26.2.22
21 Feb 2026What'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 2026What'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 2026What'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 2026What'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 2026What'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 2025What'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