API Cex Plus

Cex Plus

 

APIs suportadas

 

 

Properties

WebSockets API

O WebSocket é um protocolo de comunicação full-duplex baseado em TCP. Full-duplex significa que ambas as partes podem enviar mensagens umas às outras de forma assíncrona usando o mesmo canal de comunicação. Esta seção descreve quais mensagens o Exchange Plus e o Cliente devem enviar um ao outro. Todas as mensagens devem ser objetos JSON válidos.

 

A WebSocket API é usada principalmente para obter informações ou realizar ações que não estão disponíveis ou não são fáceis de fazer usando a REST API. No entanto, algumas requisições ou ações são possíveis de fazer tanto na REST API quanto na WebSocket API. O Exchange Plus envia mensagens ao Cliente como resposta a uma requisição enviada anteriormente pelo Cliente, ou como notificação sobre algum evento (sem requisição prévia do Cliente).

 

 

Public API Calls

 

O limite de taxa da API pública é imposto para proteger o sistema de ataques DDoS e garantir que todos os Clientes tenham o mesmo nível de acesso estável aos endpoints da Exchange Plus API. As requisições públicas são limitadas pelo endereço IP a partir do qual as requisições da API pública são feitas. Os limites de requisição são determinados a partir do custo associado a cada chamada da API pública. Por padrão, cada requisição pública tem um custo de 1 ponto, mas para algumas requisições específicas esse custo pode ser maior. Consulte as informações atualizadas de custo do limite de taxa de requisição na especificação de cada método.

 

O Exchange Plus limita as chamadas à Public API a no máximo 100 pontos por minuto, considerando que cada chamada à Public API tem seu custo (veja abaixo). Se o limite de taxa de requisições for atingido, o Exchange Plus responde com erro, envia o evento de desconexão ao Cliente e, em seguida, fecha a conexão WS. O Exchange Plus continuará a atender o Cliente a partir do próximo minuto do calendário. No exemplo a seguir, o contador de requisições será zerado às 11:02:00.000.

 

Method Descrição
GetTicker Este método foi projetado para obter informações atuais sobre o Ticker, incluindo dados sobre preços atuais, mudanças de preço & volume em 24h, último evento de negociação, etc. de certos ativos.
GetOrderBook Este método permite que o Cliente receba o snapshot atual do order book para um par de negociação específico.
GetCandles Utilizando o método Candles, o Cliente pode receber candles OHLCV históricos de diferentes resoluções e tipos de dados. O Cliente pode indicar filtros adicionais de timeframe e limit para tornar a resposta mais precisa aos requisitos do Cliente.
GetTradeHistory Este método permite que o Cliente obtenha dados históricos sobre as negociações ocorridas no par de negociação solicitado. O Cliente pode complementar a requisição Trade History com parâmetros de filtro adicionais, como período de tempo, intervalo de tradeIds, side etc. para receber negociações que correspondam aos parâmetros da requisição.
GetServerTime Este método é usado para obter o horário atual no servidor Exchange Plus. Pode ser útil para aplicações que precisam estar sincronizadas com o horário do servidor.
GetPairsInfo O método Pair Info permite que o Cliente receba os parâmetros de todos os pares de negociação suportados.
GetCurrenciesInfo O método Currencies Info permite que o Cliente receba os parâmetros de todas as moedas configuradas no Exchange Plus, bem como a disponibilidade de depósito e saque entre o Exchange Plus e a CEX.IO Wallet.
GetProcessingInfo Esta requisição permite que o Cliente receba informações detalhadas sobre as opções disponíveis para fazer depósitos a partir de carteiras externas e saques para carteiras externas, para cada criptomoeda suportada, incluindo o nome da criptomoeda e os blockchains disponíveis para depósito\saque. Além disso, para cada blockchain suportado, são indicados o tipo de criptomoeda no blockchain indicado, a disponibilidade atual de depósito\saque, os valores mínimos para depósitos\saques e as taxas de saque externo. As informações de processamento tornam o Cliente mais flexível na escolha do blockchain desejado para receber o endereço de Depósito e iniciar saques externos por meio de um determinado blockchain, de modo que o Cliente use a forma mais conveniente de transferir seus ativos de cripto de ou para o Ecossistema CEX.IO.
SubscribeOrderBook O Cliente, ao assinar via WebSocket, pode assinar o feed do livro de ordens do par de negociação solicitado. Em resposta à requisição Order Book Subscribe, o Cliente receberá o snapshot atual (inicial) do livro de ordens do par solicitado com o número seqId indicado. Para acompanhar as atualizações seguintes do Livro de Ordens, o Cliente precisa assinar via WebSocket as mensagens "order_book_increment", que conteriam o nome do par de negociação, o número seqId e os deltas dos níveis de preço de Bids e Asks.
UnSubscribeOrderBook Cancela a assinatura do canal de order book.
SubscribeTrade Ao usar o método Trade Subscribe, o Cliente pode assinar via WebSocket o feed ao vivo de eventos de negociação que ocorrem no par de negociação solicitado. Em resposta à requisição Trade Subscribe, o Cliente receberá um identificador único da assinatura de negociação, que deve ser usado posteriormente para cancelamento quando a assinatura de negociação não for mais necessária para o Cliente. O Cliente deve assinar via WebSocket as mensagens “tradeHistorySnapshot” e “tradeUpdate” para receber os snapshots iniciais e periódicos do Histórico de Negociações, e os eventos de negociação ao vivo do par de negociação solicitado.
UnSubscribeTrade Cancela a assinatura do canal de trade.

 

 

Exemplo: obter o ticker mais recente do par BTC-USD

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.OnCexPlusConnect := OnCexPlusConnectEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusConnectEvent(Sender: TObject);
begin
  oCexPlus.GetTicker('BTC-USD');
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Ticker data: ' + Msg);
end;

 

 

 

Chamadas de API Privada

 

O Exchange Plus utiliza chaves de API para permitir o acesso às Private APIs.

 

O cliente pode gerar, configurar e gerenciar api keys, definir níveis de permissão, IPs em whitelist para a API key etc. por meio do Web Terminal da Exchange Plus na seção API Keys Management Profile.

 

Limite de API Keys: Por padrão, o Cliente pode ter até 5 API Keys.

 

Para restringir o acesso a determinadas funcionalidades ao usar API Keys, deve haver um conjunto específico de permissões definido para cada API Key. O conjunto de permissões definido pode ser editado posteriormente, se necessário.

 

Os seguintes níveis de permissão estão disponíveis para as API Keys:

 

 

 

Method Descrição
GetCurrentFee Este método indica as taxas atuais em um momento específico, considerando o volume atualizado de 30d do Cliente e o dia da semana (as taxas podem ser diferentes, por exemplo, nos fins de semana).
GetFeeStrategy A Fee Strategy retorna todas as opções de taxa que podem ser aplicadas ao Cliente, considerando o volume de trading do Cliente, dia da semana, pares, grupo de pares etc. Este método fornece informações sobre a estratégia geral de taxas, que inclui todos os possíveis valores de taxa de trading que podem ser aplicados ao Cliente. Para receber as taxas de trading atuais, com base no volume de trading dos últimos 30 dias do Cliente, o Cliente deve utilizar o método [Current Fee]. Para receber o volume de trading atual dos últimos 30 dias, o Cliente deve utilizar o método [Volume].
GetVolume Esta requisição permite que o Cliente receba seu volume de negociação dos últimos 30 dias em equivalente em USD.
CreateAccount Esta requisição permite que o Cliente crie uma nova subconta. Por padrão, o Cliente pode ter até 5 subcontas, incluindo a conta principal.
GetAccountStatus Ao utilizar o método Account Status V3, o Cliente pode descobrir o saldo atual e seu equivalente indicativo em moeda convertida (por padrão "USD"), os valores bloqueados em ordens abertas (ativas) referentes a cada sub-account e moeda. Se o trading fee balance estiver disponível para o Cliente, então a resposta também conterá dados gerais de trading fee balance, como nome do promo, nome da moeda, saldo total e data de expiração deste promo no Trading Fee Balance. É responsabilidade do Cliente rastrear o saldo de trading disponível de suas sub-accounts, já que o saldo atual da sub-account é reduzido pelo valor de saldo bloqueado em ordens abertas (ativas) na sub-account.
GetOrders Esta requisição permite que o Cliente descubra informações sobre suas ordens.
NewOrder O cliente pode enviar novas ordens via WebSocket API utilizando a Do My New Order Request. Junto com a resposta a essa requisição, a Exchange Plus envia mensagens Account Event e Execution Report ao cliente se a requisição for bem-sucedida. A mensagem de resposta indica o status mais recente da ordem disponível no sistema no momento do envio da resposta. Se o cliente não recebeu uma mensagem de resposta à Do My New Order Request, o cliente pode consultar o status atual da ordem utilizando a Get My Orders Request com o parâmetro clientOrderId. Ao enviar uma requisição de nova ordem, é altamente recomendável utilizar o parâmetro clientOrderId, que corresponde à requisição de nova ordem específica do lado do cliente. A Exchange Plus evita o registro múltiplo de ordens com o mesmo clientOrderId. Se mais de uma nova ordem com clientOrderId idêntico e outros parâmetros de ordem idênticos forem identificadas, a Exchange Plus registra apenas a primeira ordem e retorna o status dessa ordem ao cliente em resposta à segunda e às subsequentes requisições de nova ordem com os mesmos parâmetros. Se mais de uma nova ordem com clientOrderId idêntico, mas com outros parâmetros de ordem diferentes, forem identificadas, a Exchange Plus processa apenas a primeira ordem e rejeita a segunda e as subsequentes requisições de nova ordem com o mesmo clientOrderID, mas com outros parâmetros de ordem diferentes.
NewMarketOrder Coloca uma nova ordem a mercado.
NewLimitOrder Coloca uma nova limit order.
CancelOrder O cliente pode cancelar ordens. Junto com uma resposta a esta requisição, o Exchange Plus envia mensagens Account Event e Execution Report ao Cliente se esta requisição for bem-sucedida. Além disso, se a requisição para cancelar uma ordem for recusada, o Exchange Plus envia a mensagem Order Cancellation Rejection.
CancelAllOrders O Cliente pode cancelar todas as ordens abertas via WebSocket API. Junto com uma resposta a esta requisição, o Exchange Plus iniciará o processo de cancelamento de todas as ordens abertas e enviará as mensagens correspondentes de Account Event e Execution Report ao Cliente.
GetTransactionHistory Esta requisição permite que o Cliente descubra suas transações financeiras (depósitos, saques, transferências internas, comissões ou negociações).
GetFundingHistory Esta requisição permite que o Cliente encontre suas transações de depósito e saque.
InternalTransfer O Cliente pode solicitar a transferência de dinheiro entre suas subcontas ou entre sua conta principal e subconta. O Exchange Plus não cobra do Cliente nenhuma comissão pela transferência de fundos entre suas contas. Junto com a resposta a esta requisição, o Exchange Plus envia mensagens de Account Event ao Cliente se esta requisição for bem-sucedida.
GetDepositAddress Este método pode ser utilizado pelo Cliente para receber um endereço cripto para depositar criptomoeda. O endereço de depósito pode ser gerado para contas principais e subcontas. A lista de blockchains disponíveis para gerar o endereço de depósito pode ser recebida pelo Cliente através da requisição Get Processing Info.
FundsDepositFromWallet O Cliente pode depositar fundos da CEX.IO Wallet para a conta Exchange Plus. O sistema evita o processamento de múltiplas requisições de depósito com o mesmo clientTxId. Se múltiplas requisições de depósito com clientTxId idêntico forem recebidas, o sistema processa apenas a primeira requisição de depósito e rejeita a segunda e as subsequentes requisições de depósito com o mesmo clientTxId.
FundsWithdrawalToWallet O Cliente pode sacar fundos da conta Exchange Plus para a CEX.IO Wallet. O sistema evita múltiplas requisições de saque com o mesmo clientTxId. Se múltiplas requisições de saque com clientTxId idênticos forem recebidas, o sistema processa apenas a primeira requisição de saque e rejeita a segunda e as subsequentes com o mesmo clientTxId.
GetWalletBalance Recupera as informações de saldo da Carteira CEX.IO.
SubscribeAccountEvents Assina notificações de eventos de conta em tempo real (mudanças de saldo, preenchimentos de ordem).
UnSubscribeAccountEvents Cancela a assinatura das notificações de eventos da conta.
   

 

 

Exemplo: obter as ordens.

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your-api-key';
oCexPlus.CexPlus.ApiSecret := 'your-api-secret';
oCexPlus.OnCexPlusAuthenticated := OnCexPlusAuthenticatedEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusAuthenticatedEvent(Sender: TObject);
begin
  oCexPlus.GetOrders();
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Orders: ' + Msg);
end;