Reporting Websocket
This channel allows you to keep up to date with the status of your account. You can receive updates on your balances and orders. Each request requires authentication with signatures.
Websocket Endpoints
Environments
There are two environments to access our authorized market data feeds:
Live
wss://report.aquanow.io:8081/
Sandbox
wss://report-staging.aquanow.io:8081/
Websocket Access and Authorization
API Authentication is done using an API key and a secret. User needs to associate the following information in the payload of the subscription message. View the Authorization page for more detail.
Request Parameters
apiKey
String
API key
apiSignature
String
Signature created using API secret
channel
String
Channel of subscription
type
String
Type of action; subscribe or unsubscribe
nonce
String
Numeric string timestamp in milliseconds
There are three channels you can subscribe for:
executionReport
- all order and balance updatesparentOrderReport
- all order updatesbalanceReport
- all balance updates
Example Usage
const WebSocket = require("ws");
const crypto = require("crypto");
const ws = new WebSocket("");
const apiKey = "";
const secret = "";
function subscribeToOrders() {
const timestamp = Date.now().toString();
const payload = {
type: "subscribe",
channel: "executionReport",
nonce: timestamp
};
const apiSignature = crypto
.createHmac("sha384", secret)
.update(JSON.stringify(payload))
.digest("hex");
const subsOption = JSON.stringify({
...payload,
apiKey,
apiSignature
});
ws.send(subsOption);
}
ws.on("open", () => {
console.log(WS tunnel opened - trade);
subscribeToOrders({ apiKey, secret });
});
ws.on("message", data => {
console.log("data", data);
});
Example Response
Balance Update
Returns an AuthenticateObject.
{
"type": "balance",
"payload": {
"createdAt": 1554400262916,
"symbol": "BTC",
"totalBalance": 2.30044886,
"depositAddress": "-",
"usernameSymbol": "helloWorld_BTC",
"pendingTransfer": 0,
"itemDateTime": 1557267645512,
"availableBalance": 2.24044886,
"updatedAt": 1554400262916,
"username": "helloWorld"
}
}
Order Update
Returns an AuthenticateObject.
{
"type": "order",
"payload": {
"createdAt": 1557267645477,
"symbol": "BTC-USD",
"totalBalance": 2.40047884,
"depositAddress": "-",
"usernameSymbol": "helloWorld_BTC",
"pendingTransfer": 0,
"itemDateTime": 1557267645646,
"availableBalance": 2.24044886,
"updatedAt": 1557267645477,
"username": "helloWorld"
}
}