Visão Geral
O canal user permite receber atualizações em tempo real sobre suas próprias ordens e transações. Este canal é útil para monitorar o status das suas ordens, receber notificações de execuções e acompanhar suas transações.
Autenticação
O canal user requer autenticação usando sua chave de API (X-Api-Key). A chave deve ser fornecida no campo auth da mensagem de subscribe.
Subscribe
Para se inscrever no canal user:
{
"type": "subscribe",
"channel": "user",
"auth": "sua-chave-api-aqui"
}
Requisitos
auth (obrigatório): Sua chave de API (X-Api-Key)
Mantenha sua chave de API segura e nunca a exponha em código cliente ou repositórios públicos.
Mensagens Recebidas
Atualização de Usuário
Recebida quando há mudanças nas suas ordens ou transações.
Estrutura:
{
"trade_type": "LIMIT_BUY",
"user_id": "string",
"event_id": "string",
"market_id": "string",
"side": "BUY",
"contract_type": "YES",
"price": 40,
"quantity": 10,
"transaction_fee": 10
}
Campos
trade_type: Tipo de ordem executada (LIMIT_BUY, LIMIT_SELL, MARKET_BUY_VALUE, MARKET_BUY_QTY, MARKET_SELL);
user_id: Seu ID de usuário;
event_id: ID do evento relacionado;
market_id: ID do mercado relacionado;
side: Lado da ordem (BUY ou SELL);
contract_type: Tipo de contrato (YES ou NO);
price: Preço da transação em ticks;
quantity: Quantidade de contratos;
transaction_fee: Taxa de transação em centavos.
Exemplo de Uso
const ws = new WebSocket('wss://data-ws.voxfi.com.br');
const API_KEY = 'sua-chave-api-aqui';
ws.onopen = () => {
// Inscrever-se no canal user
ws.send(JSON.stringify({
type: 'subscribe',
channel: 'user',
auth: API_KEY
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.user_id) {
console.log('Atualização de usuário recebida:', data);
// Processar atualização
if (data.side === 'BUY') {
console.log(`Compra executada: ${data.quantity} contratos ${data.contract_type} a ${data.price} ticks`);
} else {
console.log(`Venda executada: ${data.quantity} contratos ${data.contract_type} a ${data.price} ticks`);
}
}
};
Unsubscribe
Para cancelar a inscrição do canal user:
{
"type": "unsubscribe",
"channel": "user"
}
Casos de Uso
- Monitoramento de Ordens: Receba notificações instantâneas quando suas ordens forem executadas;
- Rastreamento de Transações: Acompanhe todas as suas transações em tempo real;
- Gerenciamento de Portfólio: Atualize seu portfólio local conforme as transações ocorrem;
- Alertas de Execução: Implemente alertas quando ordens específicas forem preenchidas;
- Análise de Performance: Colete dados sobre suas transações para análise posterior.
Boas Práticas
- Segurança: Nunca exponha sua chave de API em código cliente. Use variáveis de ambiente ou serviços de backend para gerenciar a autenticação;
- Validação: Sempre valide as mensagens recebidas antes de processá-las;
- Logging: Registre todas as atualizações recebidas para auditoria e debugging;
- Tratamento de Erros: Trate erros de autenticação adequadamente e implemente reconexão quando necessário.