Skip to main content

Events reference

These are the frames the server sends you after you subscribe. Every event is { "type": "<event>", "payload": { … } }. Group your handler by type.

Orders

EventWhen
order_createA new order was accepted.
order_updateAn order was modified.
order_cancelAn order was cancelled.
order_rejectedAn order was rejected (e.g. not enough margin).
order_expiredA pending order hit its expiry.
order_broker_received / order_broker_approval / order_trader_approvalDealing-room approval steps.
order_dealer_create / order_dealer_update / order_dealer_cancelDealer acted on the account.
{ "type": "order_create", "payload": { "id": 260610013, "symbol_id": 26100001, "type": 1, "side": 0, "volume": 0.10, "order_limit_price": 1.07500 } }

Positions

EventWhen
position_createAn order filled → a position opened.
position_updateSL/TP changed, or break-even moved.
position_plFloating P/L tick for an open position.
position_closing / position_closeA position is closing / closed.
position_rejectedA close/modify was rejected.
position_close_by_hedgeClosed against an opposing position.
{ "type": "position_create", "payload": { "id": 260610016, "symbol_id": 26100001, "side": 0, "volume": 0.10, "open_price": 1.08234, "stop_loss": null, "take_profit": null } }
{ "type": "position_pl", "payload": { "id": 260610016, "profit": 27.46 } }

Deals

EventWhen
deal_createA deal leg was booked (open or close).
deal_update / deal_deleteCorrection / cancellation.

The close leg (direction: 1) carries the realized profit:

{ "type": "deal_create", "payload": { "id": 260610016, "direction": 1, "close_price": 1.06721, "profit": 6.58 } }

Account & money

EventWhen
account_summaryBalance / equity / margin / margin-level tick.
account_updateAccount fields changed (leverage, status).
money_changeDeposit / withdrawal / adjustment / credit.
balance_correctionA balance correction was applied.
event_liqudation_statusMargin call / stop-out reached.
{ "type": "account_summary", "payload": { "balance": 1000547.09, "equity": 1010647.99, "floating_profit": 0.90, "used_margin": 9.0, "free_margin": 1010638.99, "margin_level": 11229422.11 } }

Market feed

EventWhen
market_feedA price tick for a subscribed symbol.
new_quoteA new broker quote.
{ "type": "market_feed", "payload": { "symbol_id": 26100001, "bid": 1.08018, "ask": 1.08038, "high": 1.08120, "low": 1.07880 } }

Sessions

EventWhen
session_client_logoutYour session was killed (another login hit the limit, an admin disconnected you, or a trial expired) — the client should drop to the login screen.
session_logout / session_logout_allLogout broadcasts.

Reports

EventWhen
report_createA report was queued.
report_statusGeneration finished / failed.
report_deleteA report was removed.

Errors

Error frames arrive as events too — branch on type:

bad_request, internal_server_error, not_found, forbidden, unauthorized. The payload.message carries the reason.

NATS subjects (self-hosters)

Internally the server fans events out over NATS on subjects of the form:

websocket.accounts.{account_id}.* all events for one account
websocket.accounts.{account_id}.orders orders only
websocket.accounts.{account_id}.positions positions only
websocket.accounts.{account_id}.deals deals only
websocket.accounts.{account_id}.summary account summary ticks
websocket.accounts.* all accounts (admin)

You don't need these when using the WebSocket — they're documented for broker operators running their own NATS bus.