0% acharam este documento útil (0 voto)
1 visualizações17 páginas

API Websocket

A documentação técnica da API WebSocket da CedroTech descreve serviços que permitem a troca de dados em tempo real, como cotações e informações de mercado. Ela inclui detalhes sobre autenticação, serviços disponíveis (como Quote e Book), e exemplos de requisições e respostas em JSON. A API é projetada para aplicações de trading e plataformas de investimentos, oferecendo dados de mercados como B3 e moedas.

Enviado por

Hick2006jp
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
1 visualizações17 páginas

API Websocket

A documentação técnica da API WebSocket da CedroTech descreve serviços que permitem a troca de dados em tempo real, como cotações e informações de mercado. Ela inclui detalhes sobre autenticação, serviços disponíveis (como Quote e Book), e exemplos de requisições e respostas em JSON. A API é projetada para aplicações de trading e plataformas de investimentos, oferecendo dados de mercados como B3 e moedas.

Enviado por

Hick2006jp
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

API WEBSOCKET

Documentação Técnica

[Link]
Sumário

Introdução ................................................................................................................... 3
Histórico de versões .................................................................................................. 3
Considerações iniciais ............................................................................................... 3
Autenticação ............................................................................................................... 4
Serviços da API WebSocket ...................................................................................... 6
Quote ....................................................................................................................... 6
Book .......................................................................................................................12
Book Agregado (AggregatedBook) .....................................................................14
Negócios Realizados (quoteTrade) ....................................................................15
Fale conosco ............................................................................................................17
API Web Socket– v: 02/2024

Introdução
Os serviços baseados na API WebSocket dão autorização para que as
aplicações recebam os dados em tempo real. Por isso, ele é um serviço
indicado para alimentar os serviços web de cotações em tempo real,
aplicativos de trading, plataformas de investimentos, serviços de home broker,
entre outros.

Histórico de versões

Data Versão Descrição


15/02/2024 1.0 Criação do documento

Considerações iniciais
WebSocket é uma API que estabelece conexões bilaterais de soquete entre um
navegador e um servidor, permitindo assim a troca de dados com base em TCP.
Ele fornece sinal de Market Data em que o recurso de cotação é entregue em
streaming e em XML/JSON, disponível para os mercados B3 e Moedas.

3
API Web Socket– v: 02/2024

Autenticação
O servidor (chamado Web Feeder) requer que o consumidor de dados tenha
uma sessão válida para acessar suas informações. Abaixo, segue um exemplo
em JavaScript demonstrando o evento de login via websocket no servidor:

var wsUri = "[Link]


websocket = new WebSocket(wsUri);
[Link] = function(evt)
{
[Link]("Connected to Endpoint!");
};
[Link] = function(evt)
{
[Link]("Message Received: " + [Link]);
};
[Link] = function(evt)
{
[Link]("ERROR: " + [Link]);
};
function doSend(message)
{
[Link]("Message Sent: " + message);
[Link](message);
}
doSend('
{
"module": "login",
"service": "authentication",
"parameters": {"login": "teste", "password": "123456"}
} ');

Na chamada do método doSend irá passar um objeto JSON em que especifica


qual é o módulo, o serviço e os parâmetros para login (login e password) como
mostra o código acima. Caso seja autenticado, irá retornar no método
[Link] a mensagem como abaixo:

{"success":trufe, "token":"f0d66fcb-7055-4f86-b6a9-25ccae3f9a68"}

4
API Web Socket– v: 02/2024

Caso deseje que seja registrado o FEES das requisições de quote, para
relatório, é necessário que envie no login a propriedade account, assim quando
for pedida a difusão de algum ativo para o serviço, será gravado no banco a
conta e o mercado para qual este ativo pertence.

Segue o exemplo dos parâmetros:

{"login": "teste", "password": "123456", "account":"10000"}

Para efetuar o consumo de um serviço disponibilizado pelo servidor via


websocket é necessário enviar uma requisição utilizando o valor retornado no
atributo token.

5
API Web Socket– v: 02/2024

Serviços da API WebSocket

Quote
O serviço retorna os dados referentes ao ativo solicitado, para realizar a
chamada, basta utilizar o mesmo websocket da autenticação mudando a
mensagem JSON de envio.

O qual deverá ser passado:

• Token: Valor retornado na autenticação;


• Module: O módulo em que o serviço se encontra, no caso quotes;
• Service: O serviço o qual está requisitando, no caso quote;
• ParameterGet: Qual ativo está obtendo as informações;
• [Link]: Qual tipo de ação (0-parar cotação, 1-iniciar
cotação);
• [Link]:
Os filtros da cotação, quais os índices que serão
retornados, como na tabela de índices de resposta do difusor abaixo;
• [Link]:Informar de quanto e quanto tempo poderá receber os
dados de cotação. Valor em milissegundos.

Exemplo do envio:

doSend('{
"token": "f0d66fcb-7055-4f86-b6a9-25ccae3f9a68",
"module": "quotes",
"service": "quote",
"parameterGet": "petr4",
"parameters": {"subsbribetype": "1", "filter": "2,3,4", "delay":"400"}
}');

Irá receber os dados do ativo informado:


• Type: Indica o tipo da chamada;

• Parameter: De qual ativo é a resposta;

• Values: Os valores retornados pelo difusor.

6
API Web Socket– v: 02/2024

Abaixo o exemplo da resposta:

{"values":{"2":"13,32","3":"13,31","4":"13,33"},"type":
"QuoteType","parameter":"petr4"}

Corpo da mensagem do values: Este é composto de um ou mais pares de


informação que é enviada da seguinte forma: "< índice >:< valor >"

Tabela de índices de resposta do difusor:

Índice Tipo Significado

0 Horário Horário da última modificação

1 Data Data da última modificação

2 Float Preço do último negócio

3 Float Melhor oferta de compra

4 Float Melhor oferta de venda

5 Horário Horário do último negócio

6 Inteiro Quantidade do negócio atual

7 Inteiro Quantidade do último negócio

8 Inteiro Quantidade de negócios realizados

9 Inteiro Volume acumulado dos negócios

10 Float Volume financeiro dos negócios

11 Float Maior preço do dia

12 Float Menor preço do dia

13 Float Preço de fechamento do dia anterior

14 Float Preço de abertura

15 Horário Horário da melhor oferta de compra

16 Horário Horário da melhor oferta de venda

17 Float Volume acumulado das melhores ofertas de compra

18 Float Volume acumulado das melhores ofertas de venda

19 Inteiro Volume da melhor oferta de compra

20 Inteiro Volume da melhor oferta de venda

7
API Web Socket– v: 02/2024

21 Float Variação

36 Float Preço de fechamento da última semana

37 Float Preço de fechamento do último mês

38 Float Preço de fechamento do último ano

39 Float Preço de abertura do dia anterior

40 Float Maior preço do dia anterior

41 Float Menor preço do dia anterior

42 Float Média

43 Float VHDaily

Código do Mercado: 1 - Bovespa,


2 - Dow Jones,
3 - BM&F,
4 - Índices,
5 - Money,
6 - Soma,
7 - Forex,
8 - Indicators,
9 - Others,
44 Inteiro
10 - Nyse,
11 - Bats,
12 - Nasdaq,
14 - BVL,
15 - SPIndexes,
16 - Liffe,
17 - Euronext Indices,
18 - CME,
19 - CME Mini

Código do tipo do ativo: 1 - Ativo à vista,


2 - Opção,
3 - Índice,
4 - Commodity,
5 - Moeda,
6 - Termo,
7 - Futuro,
8 - Leilão,
45 Inteiro 9 - Bônus,
10 - Fracionário,
11 - Exercício de opção,
12 - Indicador,
13 - ETF,
15 - Volume,
16 - Opção sobre a vista,
17 - Opção sobre futuro,
18 - Ativo de teste

46 Inteiro Lote padrão

8
API Web Socket– v: 02/2024

47 String Descrição do ativo (Ex: DOL, INDICE BOVESPA)

48 String Nome de classificação

49 Inteiro Forma de cotação

50 Data e Horário Intraday Date (FORCES)

51 Data e Horário LastTrade Date (FORCES)

52 String Descrição abreviada do ativo

53 String Descrição abreviada do ativo

54 Data Data do último negócio


Sentido das ofertas não atendidas ao preço de abertura Compra, V –
56 A
Venda e 0 – Não informado"
57 Inteiro Quantidade não atendida ao preço de abertura

58 Horário Horário programado para abertura do papel

59 Horário Horário reprogramado para abertura do papel

60 Inteiro Código da corretora que fez a melhor oferta de compra

61 Inteiro Código da corretora que fez a melhor oferta de venda

62 Inteiro Código da corretora que realizou a última compra

63 Inteiro Código da corretora que realizou a última venda

64 Data Data do vencimento (Mercado de opções)

65 Inteiro Expirado

66 String Número total de papéis

67 Inteiro Status do instrumento

72 Char Tipo da opção (A = Americana, E = Européia, 0 = não existe)

82 Float Preço teórico de abertura

83 Inteiro Quantidade teórica

86 Float Diff (Preço Atual - Previous)

87 Data Data do Previous

90 Float Intervalo de Margem (Mercado BTC)

94 Float Volume médio nos últimos 20 dias


Campo calculado da variação de acordo com o volume médio dos
10094 Float
últimos 20 dias
95 Float Market Capitalization

96 String Tipo de Mercado (RT = RealTime, D = Delay, EOD = End of Day)

9
API Web Socket– v: 02/2024

97 Float Valor do fechamento em uma semana

10097 Float Valor de fechamento de 7 dias

98 Float Valor do fechamento em um mês


Campo calculado da variação de acordo com o valor de fechamento
10098 Float
de 1 mês
99 Float Valor do fechamento em um ano
Campo calculado da variação de acordo com o valor de fechamento
10099 Float
de 1 ano
110 Inteiro TickSize
Variação do volume da hora com base na média do volume do horário
134 Float
nos últimos 20 dias
Variação do volume até a hora com base na média do volume até o
135 Float
horário nos últimos 20 dias

Valores referentes a ativos do mercado BOVESPA:

Status do ativo (0 = Normal, 1 = Congelado,


84 Inteiro
2 = Suspenso, 3 = Leilão, 4 = Inibido)

85 1.0 Float

Fase do grupo do ativo (P = Pré abertura, A =Abertura


(sessão normal), PN = Pré fechamento, N =fechamento, E = Pré String
88
abertura do after, R =abertura After, NE =Fechamento do after,
F =final)

89 Média do dia anterior Float

10
API Web Socket– v: 02/2024

Valores referentes a ativos do mercado BMF:

Índice Significado Tipo


100 Quantidade de contratos abertos Inteiro
101 Número dias úteis até o vencimento Inteiro
102 Número dias para o vencimento Inteiro
103 Ajuste do dia Float
104 Ajuste do dia anterior Float
105 SecurityId (BMF FIX) String
106 TickDirection(BMF FIX) Valores possíveis: +, 0+, -, 0-. String
107 TunnelUpperLimit Float
108 TunnelLowerLimit Float
109 TradingPhase(BMF FIX) String
111 Volume mínimo de negociação do instrumento Inteiro
112 Intervalo mínimo para incrementos de preço Float
Quantidade mínima para o instrumento em uma
113 Inteiro
oferta
Quantidade máxima para o instrumento em uma
114 Inteiro
oferta
115 Número único de identificação do instrumento Inteiro
116 Moeda utilizada no preço Exemplos: BRL, EUR, USD. String
SecurityType (Valores possíveis: FUT, OPT, SPOT,
117 String
SOPT, FOPT, DTERM)
Código de negociação do instrumento (Ex: DOL,
118 String
INDICE BOVESPA)
119 Produto associado ao instrumento Inteiro
120 Mês e ano de vencimento Data
121 Preço de exercício da opção Float
Moeda do preço de exercício da opção (Ex: BRL, EUR,
122 String
USD)
123 Multiplicador do contrato Float
Código que representa o tipo de preço do
124 Inteiro
instrumento
Horário que um instrumento não é mais passível de
125 Data e Horário
negociação
126 Indica o grupo ao qual o ativo pertence String(15)
127 Ajuste atual em taxa Float
128 Ajuste anterior em taxa Float
129 Data do Ajuste atual em taxa Data
130 Número de saques até data de vencimento Inteiro

11
API Web Socket– v: 02/2024

Book
O serviço retorna os dados referentes ao book do ativo solicitado, para realizar
a chamada, basta utilizar o mesmo websocket da autenticação mudando a
mensagem JSON de envio.

O qual deverá ser passado:

• Token: Valor retornado na autenticação;


• Module: O modulo em que o serviço se encontra, no caso quotes;
• Service: O serviço o qual está requisitando, no caso book;
• ParameterGet: Qual ativo está obtendo as informações;
• [Link]: Qual tipo de ação ( 0 - Parar Book, 1 - Iniciar
Book);
• [Link]: O filtro do book, qual é a quantidade de linhas do book
deseja que seja retornados;
• [Link]: Informar de quanto e quanto tempo poderá receber
os dados do book. Valor em milissegundos.

Segue o exemplo de envio:

doSend('{
"token": "f0d66fcb-7055-4f86-b6a9-25ccae3f9a68",
"module": "quotes",
"service": "book",
"parameterGet": "petr4",
"parameters": {"subsbribetype": "1", "filter": "10", "delay":"5000"}
}');

Irá receber os dados do ativo informado:

• Type: Indica o tipo da chamada;


• Parameter: De qual ativo é a resposta;
• Book: O book retornado pelo difusor.

12
API Web Socket– v: 02/2024

Segue abaixo o exemplo da resposta:

{"book":{"S":"petr4","B":[{"Q":2900,"P":12.83,"C":3,"FQ":"2.9K","T":"L"},{"
Q":400,"P":
12.83,"C":45,"FQ":"400","T":"L"},{"Q":800,"P":12.83,"C":40,"FQ":"800","T":"
L"},{"Q":10
0,"P":12.83,"C":238,"FQ":"100","T":"L"},{"Q":200,"P":12.83,"C":40,"FQ":"200
","T":"L"},
{"Q":5000,"P":12.83,"C":8,"FQ":"5K","T":"L"},{"Q":500,"P":12.83,"C":8,"FQ":
"500","T":"
L"},{"Q":500,"P":12.83,"C":8,"FQ":"500","T":"L"},{"Q":400,"P":12.83,"C":8,"
FQ":"400","
T":"L"},{"Q":21600,"P":12.84,"C":3,"FQ":"21.6K","T":"L"}],"A":[{"Q":100,"P"
:12.82,"C":
16,"FQ":"100","T":"L"},{"Q":300,"P":12.82,"C":8,"FQ":"300","T":"L"},{"Q":50
00,"P":12.8
2,"C":8,"FQ":"5K","T":"L"},{"Q":400,"P":12.82,"C":8,"FQ":"400","T":"L"},{"Q
":1000,"P":
12.82,"C":21,"FQ":"1K","T":"L"},{"Q":500,"P":12.82,"C":8,"FQ":"500","T":"L"
},{"Q":500,
"P":12.82,"C":8,"FQ":"500","T":"L"},{"Q":4800,"P":12.82,"C":386,"FQ":"4.8K"
,"T":"L"},{
"Q":500,"P":12.82,"C":120,"FQ":"500","T":"L"},{"Q":400,"P":12.81,"C":8,"FQ"
:"400","T":
"L"}]},"type":"BookSnapshotType","parameter":"petr4"}

O book é um objeto composto por “S” - Ativo, “A” - Compra e “B” - Venda:
Estes são compostos de um ou mais objetos compostos por “Q” - Quantidade,
“P” - Preço, “C” - Corretora, “FQ” - Qtde formatada, “T” Tipo (O tipo L
indica oferta Limitada, A oferta ao preço de Abertura, X oferta ao melhor preço
e M oferta ao preço de Mercado).

13
API Web Socket– v: 02/2024

Book Agregado (AggregatedBook)


O serviço retorna os dados referentes ao book agregado do ativo solicitado,
para realizar a chamada, basta utilizar o mesmo websocket da autenticação
mudando a mensagem JSON de envio.
O qual deverá ser passado:

• Token: Valor retornado na autenticação;


• Module: O módulo em que o serviço se encontra, no caso quotes;
• Service: O serviço o qual está requisitando, no caso book;
• ParameterGet: Qual ativo está obtendo as informações;
• [Link]: Qual tipo de ação (0 - Parar book, 1 - Iniciar
book);
• [Link]: Informar de quanto e quanto tempo poderá receber
os dados do book. Valor em milissegundos.

Segue o exemplo de envio:

doSend('{
"token": "f0d66fcb-7055-4f86-b6a9-25ccae3f9a68",
"module": "quotes",
"service": "aggregatedBook",
"parameterGet": "petr4",
"parameters": {"subsbribetype": "1", "delay":"5000"}
}');

Irá receber os dados do ativo informado:

• Type: Indica o tipo da chamada;


• Parameter: De qual ativo é a resposta;
• Book: O book agregado retornado pelo difusor, será retornado por default
sempre 5 linhas de compra e venda.

14
API Web Socket– v: 02/2024

Segue abaixo o exemplo da resposta:

{"book":{"S":"petr4","B":[{"Q":27700,"P":12.83,"FQ":"27.7K"},{"Q":69000,"P"
:12.84,"FQ"
:"69K"},{"Q":57200,"P":12.85,"FQ":"57.2K"},{"Q":91500,"P":12.86,"FQ":"91.5K
"},{"Q":703
00,"P":12.87,"FQ":"70.3K"}],"A":[{"Q":20200,"P":12.82,"FQ":"20.2K"},{"Q":50
700,"P":12.
81,"FQ":"50.7K"},{"Q":82400,"P":12.8,"FQ":"82.4K"},{"Q":90500,"P":12.79,"FQ
":"90.5K"},
{"Q":100600,"P":12.78,"FQ":"100.6K"}]},"type":"AggregatedBookType","paramet
er":"petr4"
}

O book é um objeto composto por “S” - Ativo, “A” - Compra e “B” - Venda:

Estes são compostos de um ou mais objetos compostos por “Q” - Quantidade,


“P” - Preço, “FQ” - Qtde formatada.

Negócios Realizados (quoteTrade)


Mensagem para solicitar o recebimento dos negócios realizados no dia para
um determinado ativo. Para o funcionamento, basta utilizar o mesmo
websocket da autenticação mudando a mensagem JSON de envio.
O qual deverá ser passado:

• Token: Valor retornado na autenticação;


• Module: O módulo em que o serviço se encontra, no caso quotes;
• Service: O serviço o qual está requisitando, no caso quoteTrade;
• [Link]: Indica se quer que o servidor envie os dados ou
não, valores válidos (1, 0);
• [Link]: a quantidade de negócios realizados que deseja
receber por linha.

15
API Web Socket– v: 02/2024

Segue o exemplo de envio:

doSend('{
"token": "2f0c998e-fdf1-41d4-a35d-a74c8da80efd",
"module": "quotes",
"service": "quoteTrade",
"parameterGet": "petr4",
"parameters": {"subsbribetype": "1", "quantidade": "2" ,"delay": "600"}
}');

Você receberá os dados do ativo informado:


• quote: Símbolo do ativo;
• price: Preço do ativo;
• value: Valor do item da lista, para as listas de altas e baixas é o valor da
variação do preço e para as listas de volume, é o volume negociado no dia;
• date: Horário em que a linha foi atualizada. Formato HHMMSS

Segue abaixo o exemplo da resposta:

{"quoteTrade":{"M":"PETR4","L" [{"QT":1400,"P":27.47,"PCB":115,"T":"Sep 30,


2019
4:11:03 PM","PCL":308,"CDA":"V"},{"QT":100,"P":27.48,"PCB":114,"T":"Sep 30,
2019
4:11:02
PM","PCL":8,"CDA":"A"}]},"type":"BusinessBookType","parameter":"PETR4"}

16
API Web Socket– v: 02/2024

Fale conosco

Atendimento de Seg à Sex, das 9h às 18h


Uberlândia e demais localidades:

+55 (34) 3239-0000

---------------------------------------------------------------------------------------

Detalhe o problema que está enfrentando


e nos envie um E-mail:

servicedesk@[Link]

---------------------------------------------------------------------------------------

[Link]

---------------------------------------------------------------------------------------

Siga-nos nas redes

17

Você também pode gostar