Documentação Trade API

Nosso site fornece APIs que possibilitam os usuários consultar seu saldo, obter a lista de ordens e enviar e cancelar ordens de criptomoedas de forma automática.

API é um endereço de internet onde você pode enviar e receber dados via requisição HTTP. Confira a seguir como utilizá-la.

Para utilizar a Trade API você deverá gerar um par de chaves pública/privada que deverá ser utilizada para fazer as requisições.
Acesse aqui para gerar as suas chaves.

Acesse nossa ferramenta de teste da Trade API: TradeAPI

Repositório Oficial da ferramenta de teste da TradeAPI em .NET no GitHub

Cabeçalho de Autorização AMX (AMX Authorization Header)

O cabeçalho de autorização AMX é usado para proteger o acesso à nossa API de TRADE. Ele usa um token por chamada que é gerado usando o ID da API e a chave (API KEY) que foram fornecidos a você. Ele criptografa o conteúdo e usa um NONCE como segurança adicional.

Veja abaixo como utilizá-lo em nossos exemplos de código-fonte:

Exemplos de Código Fonte - Autenticação AMX

                        
    protected async override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        HttpResponseMessage response = null;
        string requestContentBase64String = string.Empty;

        string requestUri = HttpUtility.UrlEncode(request.RequestUri.AbsoluteUri.ToLower());

        string requestHttpMethod = request.Method.Method;

        DateTime epochStart = new DateTime(1970, 01, 01, 0, 0, 0, 0, DateTimeKind.Utc);
        TimeSpan timeSpan = DateTime.UtcNow - epochStart;
        string requestTimeStamp = Convert.ToUInt64(timeSpan.TotalSeconds).ToString();
            
        ASCIIEncoding encoder = new ASCIIEncoding();
        Byte[] code = encoder.GetBytes(APIKey);

        HMACSHA256 hmSha1 = new HMACSHA256(code);
        Byte[] hashMe = encoder.GetBytes(requestTimeStamp);

        Byte[] hmBytes = hmSha1.ComputeHash(hashMe);
           
        request.Headers.Add("APIKey", APPId);
        request.Headers.Add("Nonce", requestTimeStamp);
        request.Headers.Add("Signature", ToHexString(hmBytes));

        response = await base.SendAsync(request, cancellationToken);

        return response;
    }
                        
                    
                        
    function amx_authorization_header($id,$key,$url,$method='GET',$body=null) {
        $url=strtolower(urlencode($url));
        $method=strtoupper($method);
        $content=empty($body)?'':base64_encode(md5($body,true));
        $time=time();
        $nonce=uniqid();
        $data=implode('',[$id,$method,$url,$time,$nonce,$content]);
        $secret=base64_decode($key);
        $signature=base64_encode(hash_hmac('sha256',$data,$secret,true));
                                
        return 'Authorization: amx'.implode(':',[$id,$signature,$nonce,$time]);
    }
                        
                    
                        
    import base64, hashlib, hmac, md5, random, time, urllib, urllib2, requests

    def amx_authorization_header(id, key, url, method='GET', body=None):
        encoded_url = urllib.quote_plus(url).lower()
        method = method.upper()
        content = '' if body == None else base64.b64encode(md5.new(body).digest())
        timestamp = str(int(time.time()))
        nonce = str(random.randint(0, 100000000))
        data = ''.join([id, method, encoded_url, timestamp, nonce, content])
        secret = base64.b64decode(key)
        signature = base64.b64encode(hmac.new(secret, msg=data, digestmod=hashlib.sha256).digest())

        return 'amx %s' % ':'.join([id, signature, nonce, timestamp])
               

    def exchange2(url, result):
        return requests.get(url, headers={'Authorization': result}).text

    def exchange(url, result):
    
        req = urllib2.Request(url, headers={'Authorization': result, 'User-Agent': ''})
    
        webpage = urllib2.urlopen(req).read()

        return webpage

    id1 = 'b316434cb3614165a9aab0234d0ec02f'
    key = 'zRR/bYjtBxPEUckHi95iV72fgsUtmtKi6XqTP7j4MlY='
    url1 = 'https://broker.negociecoins.com.br/tradeapi/v1/'
    method = 'GET'
    function = 'user/balance'

    urlFinal = ''.join([url1, function])

    result2 = amx_authorization_header(id1, key, urlFinal, method, body=None)
    print(result2)

    print(exchange(str(urlFinal), result2))
                        
                    

1. Estrutura das Requisições

As requisições devem ser feitas para a URL: https://broker.negociecoins.com.br/tradeapi/v1/

1.1 Resposta

Todas as respostas são em formato JSON.

2. Requisições

2.1 Método user / balance

Retorna o saldo em Reais e de criptomoedas do usuário.

  • Formato da Requisição: GET
  • URL para Requisição: https://broker.negociecoins.com.br/tradeapi/v1/user/balance

Campos de Retorno:

  • BRL
    Informações de saldo do usuário em Reais
    • available
      Decimal: saldo disponível do usuário.
    • openOrders
      Decimal: total em ordens abertas de compra ou venda.
    • withdraw
      Decimal: total em saques solicitados.
    • total
      Decimal: saldo líquido atual.
  • BTC
    Informações de saldo do usuário em Bitcoin
    • available
      Decimal: saldo disponível do usuário.
    • openOrders
      Decimal: total em ordens abertas de compra ou venda.
    • withdraw
      Decimal: total em saques solicitados.
    • total
      Decimal: saldo líquido atual.
  • LTC
    Informações de saldo do usuário em Litecoin
    • available
      Decimal: saldo disponível do usuário.
    • openOrders
      Decimal: total em ordens abertas de compra ou venda.
    • withdraw
      Decimal: total em saques solicitados.
    • total
      Decimal: saldo líquido atual.

Exemplo de retorno:

                
{
    "BRL": {
        "available": 500.002,
        "openOrders": -400.0,
        "withdraw": -52.75,
        "total": 47.252
    },
    "BTC": {
        "available": 100.00000001,
        "openOrders": -50.0,
        "withdraw": 0.0,
        "total": 50.00000001
    },
    "LTC": {
        "available": 200.0,
        "openOrders": -100.0,
        "withdraw": 0.0,
        "total": 100.0
    }
}
                
            

2.2 Método user / orders

Retorna as ofertas de compra e venda de criptomoedas criadas pelo usuário.

  • Formato da Requisição: POST
  • URL para Requisição: https://broker.negociecoins.com.br/tradeapi/v1/user/orders

Parâmetros Obrigatórios*

  • page
    Inteiro: Número da página de ordens do usuário
  • pageSize
    Inteiro: Limite do número de ordens por página
  • pair
    String: Define o filtro por par de moedas das ordens de negociação. Usar "BRLBTC" para Bitcoin ou "BRLLTC" para Litecoin.
  • type
    String: Define o filtro por tipo de operação das ordens de negociação. Usar "buy" para compra ou "sell" para venda.
  • status
    String: Define o filtro por status das ordens de negociação. Usar "cancelled" para ordens canceladas, "filled" para ordens executadas, "partially filled" para ordens parcialmente executadas, "pending" para ordens pendentes, "rejected" para ordens rejeitadas.
  • startId
    Inteiro: Define o filtro por Id inicial da lista de ordens de negociação.
  • endId
    Inteiro: Define o filtro por Id final da lista de ordens de negociação.
  • startDate
    String: Define o filtro por data inicial da criação das ordens de negociação. Usar o formato "yyyy-MM-dd".
  • endDate
    String: Define o filtro por data final da criação das ordens de negociação. Usar o formato "yyyy-MM-dd".

Campos de Retorno:

  • id
    Inteiro: Id único das ordens de negociação.
  • created
    String: Data da criação das ordens de negociação no formato "yyyy-MM-dd".
  • pair
    String: Par de moedas das ordens de negociação. "BRLBTC" para Bitcoin ou "BRLLTC" para Litecoin.
  • type
    String: Tipo de operação das ordens de negociação. "buy" para compra ou "sell" para venda.
  • status
    String: Status das ordens de negociação. "cancelled" para ordens canceladas, "filled" para ordens executadas, "partially filled" para ordens parcialmente executadas, "pending" para ordens pendentes, "rejected" para ordens rejeitadas.
  • price
    Decimal: Preço das ordens de negociação.
  • quantity
    Decimal: Quantidade de criptomoedas das ordens de negociação.
  • total
    Decimal: Custo total em Reais das ordens de negociação.
  • executed_quantity
    Decimal: Quantidade de criptmoedas em ordens já executadas.
  • executed_price_avg
    Decimal: Preço médio das ordens já executadas.
  • fee
    Decimal: Taxa paga nas ordens de negociação.
  • pending_quantity
    Decimal: Quantidade de criptmoedas pendentes a serem executadas.
  • pending_price
    Decimal: Preço das ordens pendentes a serem executadas.
  • operations
    Exibe as ordens executadas em cada ordem do usuário
    • id
      Inteiro: Id único das ordens de negociação executadas nesta ordem.
    • created
      String: Data da criação das ordens de negociação executadas nesta ordem no formato "yyyy-MM-dd".
    • feeRate
      Decimal: Taxa paga nas ordens de negociação executadas nesta ordem.
    • price
      Decimal: Preço das ordens de negociação executadas nesta ordem.
    • quantity
      Decimal: Quantidade de criptomoedas em ordens executadas nesta ordem.

Exemplo de retorno:

                
[
  {
    "id": 7396,
    "created": "2015-09-10T12:36:30",
    "pair": "BRLBTC",
    "type": "buy",
    "status": "filled",
    "price": 945.0,
    "quantity": 0.01,
    "total": 9.45,
    "executed_quantity": 0.01,
    "executed_price_avg": 945.0,
    "fee": 0.0,
    "pending_quantity": 0.0,
    "pending_price": 0.0,
    "operations": [
      {
        "id": 4956,
        "created": "2015-09-10T12:36:33.117",
        "feeRate": 0.0,
        "price": 945.0,
        "quantity": 0.01
      }
    ]
  }
]
                
            

2.3 Método user / order / {orderId}

Retorna informações sobre uma ordem de compra ou venda de criptomoedas do usuário.

  • Formato da Requisição: GET
  • URL para Requisição: https://broker.negociecoins.com.br/tradeapi/v1/user/order/{ orderId }

Parâmetro Obrigatório*

  • orderId
    Inteiro: Id da ordem criada pelo usuário

Campos de Retorno:

  • id
    Inteiro: Id único da ordem de negociação.
  • created
    String: Data da criação da ordem de negociação no formato "yyyy-MM-dd".
  • pair
    String: Par de moedas da ordem de negociação. "BRLBTC" para Bitcoin ou "BRLLTC" para Litecoin.
  • type
    String: Tipo de operação da ordem de negociação. "buy" para compra ou "sell" para venda.
  • status
    String: Status da ordem de negociação. "cancelled" para ordens canceladas, "filled" para ordens executadas, "partially filled" para ordens parcialmente executadas, "pending" para ordens pendentes, "rejected" para ordens rejeitadas.
  • price
    Decimal: Preço das ordem de negociação.
  • quantity
    Decimal: Quantidade de criptomoedas da ordem de negociação.
  • total
    Decimal: Custo total em Reais da ordem de negociação.
  • executed_quantity
    Decimal: Quantidade de criptmoedas em ordem já executadas.
  • executed_price_avg
    Decimal: Preço médio da ordens já executadas nesta ordem.
  • fee
    Decimal: Taxa paga na ordem de negociação.
  • pending_quantity
    Decimal: Quantidade de criptmoedas pendente a ser executada.
  • pending_price
    Decimal: Preço da ordem pendente a ser executada.
  • operations
    Exibe as ordens executadas em cada ordem do usuário
    • id
      Inteiro: Id único das ordens de negociação executadas nesta ordem.
    • created
      String: Data da criação das ordens de negociação executadas nesta ordem no formato "yyyy-MM-dd".
    • feeRate
      Decimal: Taxa paga nas ordens de negociação executadas nesta ordem.
    • price
      Decimal: Preço das ordens de negociação executadas nesta ordem.
    • quantity
      Decimal: Quantidade de criptomoedas em ordens executadas nesta ordem.

Exemplo de retorno:

                
[
  {
    "id": 7396,
    "created": "2015-09-10T12:36:30",
    "pair": "BRLBTC",
    "type": "buy",
    "status": "filled",
    "price": 945.0,
    "quantity": 0.01,
    "total": 9.45,
    "executed_quantity": 0.01,
    "executed_price_avg": 945.0,
    "fee": 0.0,
    "pending_quantity": 0.0,
    "pending_price": 0.0,
    "operations": [
      {
        "id": 4956,
        "created": "2015-09-10T12:36:33.117",
        "feeRate": 0.0,
        "price": 945.0,
        "quantity": 0.01
      }
    ]
  }
]
                
            

2.4 Método user / order

Cria uma ordem de compra ou venda de criptomoedas.

  • Formato da Requisição: POST
  • URL para Requisição: https://broker.negociecoins.com.br/tradeapi/v1/user/order

Parâmetros Obrigatórios*

  • brokerID
    Inteiro: Id único da exchange onde a ordem será criada. Usar 1 para a NegocieCoins.
  • userID
    Inteiro: Id único do usuário.
  • pair
    String: Define o filtro por par de moedas das ordens de negociação. Usar "BRLBTC" para Bitcoin ou "BRLLTC" para Litecoin.
  • type
    String: Define o filtro por tipo de operação das ordens de negociação. Usar "buy" para compra ou "sell" para venda.
  • volume
    Decimal: Define a quantidade de criptmoedas a ser executada nesta ordem.
  • price
    Decimal: Define o preço da ordem de negociação a ser executada.

Campos de Retorno:

  • id
    Inteiro: Id único da ordem de negociação.
  • created
    String: Data da criação da ordem de negociação no formato "yyyy-MM-dd".
  • pair
    String: Par de moedas da ordem de negociação. "BRLBTC" para Bitcoin ou "BRLLTC" para Litecoin.
  • type
    String: Tipo de operação da ordem de negociação. "buy" para compra ou "sell" para venda.
  • status
    String: Status da ordem de negociação. "cancelled" para ordens canceladas, "filled" para ordens executadas, "partially filled" para ordens parcialmente executadas, "pending" para ordens pendentes, "rejected" para ordens rejeitadas.
  • price
    Decimal: Preço das ordem de negociação.
  • quantity
    Decimal: Quantidade de criptomoedas da ordem de negociação.
  • total
    Decimal: Custo total em Reais da ordem de negociação.
  • executed_quantity
    Decimal: Quantidade de criptmoedas em ordem já executadas.
  • executed_price_avg
    Decimal: Preço médio da ordens já executadas nesta ordem.
  • fee
    Decimal: Taxa paga na ordem de negociação.
  • pending_quantity
    Decimal: Quantidade de criptmoedas pendente a ser executada.
  • pending_price
    Decimal: Preço da ordem pendente a ser executada.
  • operations
    Exibe as ordens executadas em cada ordem do usuário
    • id
      Inteiro: Id único das ordens de negociação executadas nesta ordem.
    • created
      String: Data da criação das ordens de negociação executadas nesta ordem no formato "yyyy-MM-dd".
    • feeRate
      Decimal: Taxa paga nas ordens de negociação executadas nesta ordem.
    • price
      Decimal: Preço das ordens de negociação executadas nesta ordem.
    • quantity
      Decimal: Quantidade de criptomoedas em ordens executadas nesta ordem.

Exemplo de retorno:

                
[
  {
    "id": 7396,
    "created": "2015-09-10T12:36:30",
    "pair": "BRLBTC",
    "type": "buy",
    "status": "filled",
    "price": 945.0,
    "quantity": 0.01,
    "total": 9.45,
    "executed_quantity": 0.01,
    "executed_price_avg": 945.0,
    "fee": 0.0,
    "pending_quantity": 0.0,
    "pending_price": 0.0,
    "operations": [
      {
        "id": 4956,
        "created": "2015-09-10T12:36:33.117",
        "feeRate": 0.0,
        "price": 945.0,
        "quantity": 0.01
      }
    ]
  }
]
                
            

2.5 Método user / order / {orderId}

Cancela uma ordem de compra ou venda de criptomoedas.

  • Formato da Requisição: DELETE
  • URL para Requisição: https://broker.negociecoins.com.br/tradeapi/v1/user/order/{ orderId }

Parâmetro Obrigatório*

  • orderId
    Inteiro: Id da ordem a ser cancelada.

Campos de Retorno:

  • id
    Inteiro: Id único da ordem de negociação.
  • created
    String: Data da criação da ordem de negociação no formato "yyyy-MM-dd".
  • pair
    String: Par de moedas da ordem de negociação. "BRLBTC" para Bitcoin ou "BRLLTC" para Litecoin.
  • type
    String: Tipo de operação da ordem de negociação. "buy" para compra ou "sell" para venda.
  • status
    String: Status da ordem de negociação. "cancelled" para ordens canceladas, "filled" para ordens executadas, "partially filled" para ordens parcialmente executadas, "pending" para ordens pendentes, "rejected" para ordens rejeitadas.
  • price
    Decimal: Preço das ordem de negociação.
  • quantity
    Decimal: Quantidade de criptomoedas da ordem de negociação.
  • total
    Decimal: Custo total em Reais da ordem de negociação.
  • executed_quantity
    Decimal: Quantidade de criptmoedas em ordem já executadas.
  • executed_price_avg
    Decimal: Preço médio da ordens já executadas nesta ordem.
  • fee
    Decimal: Taxa paga na ordem de negociação.
  • pending_quantity
    Decimal: Quantidade de criptmoedas pendente a ser executada.
  • pending_price
    Decimal: Preço da ordem pendente a ser executada.
  • operations
    Exibe as ordens executadas em cada ordem do usuário
    • id
      Inteiro: Id único das ordens de negociação executadas nesta ordem.
    • created
      String: Data da criação das ordens de negociação executadas nesta ordem no formato "yyyy-MM-dd".
    • feeRate
      Decimal: Taxa paga nas ordens de negociação executadas nesta ordem.
    • price
      Decimal: Preço das ordens de negociação executadas nesta ordem.
    • quantity
      Decimal: Quantidade de criptomoedas em ordens executadas nesta ordem.

Exemplo de retorno:

                
[
  {
    "id": 7396,
    "created": "2015-09-10T12:36:30",
    "pair": "BRLBTC",
    "type": "buy",
    "status": "filled",
    "price": 945.0,
    "quantity": 0.01,
    "total": 9.45,
    "executed_quantity": 0.01,
    "executed_price_avg": 945.0,
    "fee": 0.0,
    "pending_quantity": 0.0,
    "pending_price": 0.0,
    "operations": [
      {
        "id": 4956,
        "created": "2015-09-10T12:36:33.117",
        "feeRate": 0.0,
        "price": 945.0,
        "quantity": 0.01
      }
    ]
  }
]