User Trade (423)
Sent when one of your orders executes. Requires an authenticated connection; there is no subscription for it.
[423, {
"id": 987654, "orderId": 123456789, "timestamp": 1790168707937,
"numeratorSymbol": "BTC", "denominatorSymbol": "USDT",
"amount": "0.01170258", "price": "85400",
"fee": "0.00000000", "tax": "0.00000000",
"orderType": "buy", "role": "taker", "orderClientId": "my-client-id",
"preciseAmount": 0.01170258
}]
| Field | Description |
|---|---|
id | Trade id. |
orderId | Id of the order that executed. |
timestamp | Milliseconds since epoch (number). |
numeratorSymbol | Base asset, e.g. BTC. |
denominatorSymbol | Quote asset, e.g. TRY. |
amount | Executed amount, at the pair's numerator precision. |
price | Execution price, at the pair's denominator precision. |
fee | Fee charged, 8 decimals. |
tax | Tax charged, 8 decimals. |
orderType | Literal string "buy" or "sell". |
role | maker or taker. |
orderClientId | Your client id, when one was supplied. |
preciseAmount | The amount again, unrounded and as a JSON number. |
info
This is the one message whose payload has no type field - identify it from the first array
element. Use preciseAmount rather than amount when rounding matters.
Numbers in private messages can carry trailing zeros (for example 156.6400000000000000). Always parse them as decimals.
fee can differ from Get User Trade Transactions in the last decimal place. Trade history over REST is authoritative.