WebSocket Market Data
Recibe cotizaciones, libro de órdenes, transacciones y estadísticas de mercado nacional en tiempo real vía WebSocket.
Conéctate al WebSocket de Market Data de Voultech para recibir datos en línea de los distintos exchanges. A diferencia de los endpoints REST de precios, el WebSocket entrega actualizaciones continuas: último precio, profundidad de mercado (bids/asks), transacciones y estadísticas.
Si solo necesitas una referencia puntual de precio antes de ingresar una orden, puedes usar GET
/api/publicapi/creasys/PublicadorPrecio/GetUltimoPrecioInstrumento(ver Órdenes de Renta Variable).
Operaciones disponibles
Conexión al servidor
La conexión se establece mediante WebSocket en la siguiente URL:
ws://{host}:8082/websocket
El host del servidor WebSocket es entregado por Voultech a cada integración. Solicítalo a [email protected].
Una vez conectado, el servidor confirma la conexión. Puedes probar la conexión con herramientas como Postman (modo WebSocket) antes de integrarlo en tu aplicación.
Suscribirse a un instrumento
Una vez conectado, envía un mensaje JSON para suscribirte al nemotécnico del que quieras recibir datos:
{
"topic": "subscribe",
"payload": {
"symbol": "SQM-B",
"id": "-789ffGhTcygumldl",
"settlType": "T2",
"securityType": "CS",
"trade": true,
"book": true,
"statistic": true,
"depth": "FULL_BOOK",
"securityExchange": "BCS"
}
}Ver parámetros de suscripción
| Parámetro | Tipo | Descripción |
|---|---|---|
topic | string | Debe ser "subscribe" |
symbol | string | Nemotécnico del instrumento (ej. SQM-B, COPEC) |
id | string | Identificador único de la suscripción, generado por el cliente |
settlType | string | Condición de liquidación: T2, CASH (PH) o NEXT_DAY (PM) |
securityType | string | Tipo de instrumento según FIX 4.2 tag 167. Por defecto: CS |
trade | boolean | true para recibir transacciones y oferta/demanda activa |
book | boolean | true para recibir el libro de compras y ventas ya transadas |
statistic | boolean | true para recibir estadísticas relevantes (volumen, VWAP, etc.) |
depth | string | Profundidad del libro: FULL_BOOK (completo) o TOP_OF_THE_BOOK (mejor precio) |
securityExchange | string | Exchange asociado (ej. BCS para Bolsa de Santiago) |
Los campos booleanos (trade, book, statistic) y depth determinan qué tipo de datos recibirás. Ajusta estos parámetros según lo que necesite tu interfaz de trading.
Desuscribirse de un instrumento
Para dejar de recibir actualizaciones, envía un mensaje con topic en "desubscribe" e incluye solo el id de la suscripción:
{
"topic": "desubscribe",
"payload": {
"id": "-789ffGhTcygumldl"
}
}Respuestas del servidor
El servidor responde con mensajes JSON cuya estructura depende de los parámetros de suscripción. Los campos topic, id y symbol se repiten entre el mensaje enviado y el recibido para validar coherencia.
Estadísticas y último precio
Cuando statistic o trade están activos, recibirás mensajes con datos como volumen, último precio, VWAP y cantidades bid/ask:
{
"payload": {
"tradeVolume": 258025,
"symbol": "SQM-B",
"imbalance": -1.73,
"vwap": 44472.5489,
"settlType": "T2",
"delta": 0,
"bidQty": 38,
"amountTheoric": 0,
"totalDemand": 0,
"id": "-789ffGhTcygumldl",
"indicativeOpening": 0,
"referencialPrice": 0,
"ownDemand": 0,
"desbalTheoric": 0,
"amount": 11475632384,
"last": 43926,
"priceTheoric": 0
}
}Libro de órdenes (bid/ask)
Cuando book está activo, recibirás la profundidad de mercado con los mejores precios de compra (bids) y venta (asks):
{
"payload": {
"symbol": "SQM-B",
"securityType": "CS",
"asks": [
{
"symbol": "SQM-B",
"size": 442,
"price": 42549,
"securityExchange": "BCS",
"typeBook": "ASK"
}
],
"settlType": "T2",
"bids": [
{
"symbol": "SQM-B",
"size": 47,
"price": 42515,
"securityExchange": "BCS",
"typeBook": "BID"
}
]
}
}Campos relevantes de la respuesta
| Campo | Descripción |
|---|---|
last | Último precio transado |
vwap | Precio promedio ponderado por volumen |
tradeVolume | Volumen transado |
bidQty / asks / bids | Cantidades y precios de oferta y demanda |
imbalance | Desbalance entre oferta y demanda |
referencialPrice | Precio referencial |
indicativeOpening | Precio de apertura indicativo |
Errores
En caso de error, el servidor envía mensajes JSON con topic distinto a las cotizaciones.
Servicio no disponible
Ocurre cuando el mercado está cerrado, el servicio está en mantenimiento o el exchange no está conectado:
{
"topic": "notification",
"payload": {
"component": "BLOTTER_SERVICES",
"comments": "This service is down or may not exist",
"level": "ERROR",
"securityExchange": "BCS",
"time": "2024-01-18T18:47:14.127Z",
"title": "Not connected",
"message": "Service unavailable BCS",
"typeState": "DISCONNECTION"
}
}ID de suscripción repetido
Si intentas suscribirte con un id que ya está en uso:
{
"topic": "rejected",
"payload": {
"reason": "",
"text": "Id repeted",
"id": "-789ffGhTcygumldl"
}
}Próximos pasos
Updated 4 months ago
