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ámetroTipoDescripción
topicstringDebe ser "subscribe"
symbolstringNemotécnico del instrumento (ej. SQM-B, COPEC)
idstringIdentificador único de la suscripción, generado por el cliente
settlTypestringCondición de liquidación: T2, CASH (PH) o NEXT_DAY (PM)
securityTypestringTipo de instrumento según FIX 4.2 tag 167. Por defecto: CS
tradebooleantrue para recibir transacciones y oferta/demanda activa
bookbooleantrue para recibir el libro de compras y ventas ya transadas
statisticbooleantrue para recibir estadísticas relevantes (volumen, VWAP, etc.)
depthstringProfundidad del libro: FULL_BOOK (completo) o TOP_OF_THE_BOOK (mejor precio)
securityExchangestringExchange 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
CampoDescripción
lastÚltimo precio transado
vwapPrecio promedio ponderado por volumen
tradeVolumeVolumen transado
bidQty / asks / bidsCantidades y precios de oferta y demanda
imbalanceDesbalance entre oferta y demanda
referencialPricePrecio referencial
indicativeOpeningPrecio 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


Did this page help you?