Logo Bitnuvem

API de Dados

Introdução

Mercado / Negociações

Taxas de envio

API de Negociações

Introdução

Autenticação

Códigos de retorno

Saldos

Saque em reais

Negociações

Envios de cripto

API de Dados

Introdução

Mercado / Negociações

Taxas de envio

API de Negociações

Introdução

Autenticação

Códigos de retorno

Saldos

Saque em reais

Negociações

Envios de cripto

Introdução

Sobre

A API de Dados da Bitnuvem é uma API pública que proporciona acesso em tempo real a informações detalhadas sobre cada ativo disponível em nossa corretora. Com esta API, os desenvolvedores podem integrar dados como o livro de ofertas, cotações e taxas aplicadas pela rede diretamente em suas aplicações.

Requisições

Para uso da API de Dados deve usar a URL abaixo, alterando os campos em destaque com os parametros desejados:

https://bitnuvem.com/api/BTC/ENDPOINT

Mercado / Negociações

Confira os endpoint para consultar informações dos ativos na corretora.

Ticker do ativo

GET

/api/BTC/ticker

Método para obter informação de melhor oferta de venda e compra atual, último valor negociado, maior valor negociado nas últimas 24 horas, menor valor negociado nas últimas 24 horas, volume total negociado nas últimas 24 horas.

Parâmetros

Esse método não possui parâmetros.

Retorno

AtributoDescrição
lastfloat
Último valor negociado
volfloat
Volume total negociado nas últimas 24 horas
variationfloat
Variação nas últimas 24 horas
highfloat
Valor mais alto negociado nas últimas 24 horas
lowfloat
Valor mais baixo negociado nas últimas 24 horas
buyfloat
Melhor oferta de compra atual
sellfloat
Melhor oferta de venda atual
dateint
Data de última atualização do ticker

Livro de ofertas

GET

/api/BTC/orderbook

Método para obter informações das ofertas de compra e venda atuais no livro de oferta. Usamos bids para as ofertas de compra e asks para as ofertas de vendas.

Parâmetros

Esse método não possui parâmetros.

Retorno

AtributoDescrição
bidsarray
Lista de ofertas de compras
bids[].[0]array
Valor unitário da oferta
bids[].[1]array
Quantia total da oferta
asksarray
Lista de ofertas de compras
asks[].[0]array
Valor unitário da oferta
asks[].[1]array
Quantia total da oferta

Negociações

GET

/api/BTC/trades

Método para obter informações das transações de compra e venda realizadas em um intervalo de datas.

A requisição retorna um array de objetos e tem um limite de 1000 registros.

Parâmetros

AtributoDescrição
fromint
Data inicial da pesquisa em formato Unix Timestamp
toint
Opcional
Data final da pesquisa em formato Unix Timestamp

Retorno (objeto da array)

AtributoDescrição
dateint
Lista de ofertas de compras
amountfloat
Lista de ofertas de compras
pricefloat
Lista de ofertas de compras
typestring
Lista de ofertas de compras
tidint
Lista de ofertas de compras

Taxas de envio

Taxas de envio

GET

/api/BTC/fee

Método para obter informação sobre valores cobrados atualmente na taxa de envio.

Parâmetros

Esse método não possui parâmetros.

Retorno

AtributoDescrição
lowfloat
Valor de taxa de envio baixa
regularfloat
Valor de taxa de envio regular
priorityfloat
Valor de taxa de envio prioritário

Introdução

Sobre

A API de Negociação da Bitnuvem é projetada para realizar operações em sua conta, permitindo que consulte seu portfólio, gerencie suas ordens, efetue saques e realize envios de criptoativos, entre outras funcionalidades. Ela é feita para integrar e automatizar processos de negociação e gestão de ativos em suas aplicações.

Primeiros passos

Para utilizar a este recurso é necessário estar com o cadastro completo e solicitar a criação de uma Chave API na sua conta Bitnuvem.

Quando criar uma nova chave, salve a chave secreta em um local seguro, ela é necessária para realizar as requisições.

Requisições

Para usar a API de Negociações deve enviar a estrutura padrão de dados para a URL abaixo:

https://bitnuvem.com/tapi/ENDPOINT

Limite que requisições

As APIs de Dados e de Negociação da Bitnuvem têm um limite de 60 requisições por minuto. Se esse limite for ultrapassado, o sistema retornará uma mensagem padrão indicando que o limite de requisições foi excedido.

Autenticação

Requisições

Para qualquer requisição da API de negociação é necessário encaminhar ao endpoint uma estrutura padrão com as informações da sua chave, parâmetros da requisição e assinatura.

No campo request_body sempre vai precisar encaminhar o timestamp atual em segundos junto com os demais parâmetros, se necessário.

Estrutura padrão

AtributoDescrição
api_keystring
Chave da API disponível no painel do usuário
request_bodystring
querystring do timestamp atual em segundos + parâmetros da sua requisição
signaturestring
request_body criptografada em HMAC SHA-256, sendo que a chave é a "Chave secreta" fornecido no momenta da criação da chave
const crypto = require('crypto');
const axios = require('axios');

const action = 'withdraw';
const api_key = 'SUA_API_KEY_AQUI';
const api_secret = 'SEGREDO_DA_API_KEY_AQUI';

const request_body = {
    timestamp: Math.floor(Date.now() / 1000),
    value: 120.20,
    bank_id: 231
    // ... outros parâmetros se necessário
};

const queryString = new URLSearchParams(request_body).toString();
const signature = crypto.createHmac('sha256', api_secret).update(queryString).digest('hex');

const api_post = {
    api_key: api_key,
    request_body: queryString,
    signature: signature
};

axios.post(`https://bitnuvem.com/tapi/${action}`, api_post)
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error(error);
    });
import time
import hmac
import hashlib
import requests

action = 'withdraw'
api_key = 'SUA_API_KEY_AQUI'
api_secret = 'SEGREDO_DA_API_KEY_AQUI'

request_body = {
    'timestamp': int(time.time()),
    'value': 120.20,
    'bank_id': 231
    # ... outros parâmetros se necessário
}

query_string = '&'.join([f"{key}={value}" for key, value in request_body.items()])
signature = hmac.new(api_secret.encode(), query_string.encode(), hashlib.sha256).hexdigest()

api_post = {
    'api_key': api_key,
    'request_body': query_string,
    'signature': signature
}

response = requests.post(f'https://bitnuvem.com/tapi/{action}', data=api_post)
print(response.text)
$action = 'withdraw';
$api_key = 'SUA_API_KEY_AQUI';
$api_secret = 'SEGREDO_DA_API_KEY_AQUI';

$request_body['timestamp'] = time();

$request_body['value'] = 120.20;
$request_body['bank_id'] = 231;
// ... outros parâmetros se necessário

// conversão da variável em formato QueryString ( timestamp=123456789&value=120.20&bank_id=231 )
$request_body = http_build_query($request_body);

$api_post['api_key'] = $api_key;
$api_post['request_body'] = $request_body;
$api_post['signature'] = hash_hmac('sha256', $request_body, $api_secret);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://bitnuvem.com/tapi/'.$action);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $api_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

Códigos de retorno

Lista de códigos

Lista de possíveis alertas de retorno da API de Negociações.

Caso permaneça com dúvida, entre em contato com nosso suporte.

Código Descrição
200Solicitação realizada com sucesso
106Algo inesperado aconteceu, tente novamente ou contate o suporte. [06]
130Chave privada inválida.
131É necessário ativar a Autenticação em 2 passos para usar a API de Negocionações.
132Essa chave privada ainda não foi confirmada por e-mail. Acesse sua caixa postal ou reenvie a confirmação acessando sua conta pela plataforma
133Time Stamp incorreto.
134Requisição inválida.
135É necessário ter cadastro completo para usar a API de Negociação
254Saldo insuficiente.
255Quantidade abaixo do valor mínimo.
256Endereço inválido. Verifique todos os caracteres, incluindo diferenças entre letras maiúsculas e minúsculas.
259Você não possui saldo suficiente.
260Você não possui saldo em reais suficiente.
261Conta bancária não encontrada.
264Você precisa sacar no mínimo R$ 10,00.
267Os valores precisam ser maiores que 0.
268Saldo insuficiente.
270Saldo em reais insuficiente.
271Ordem cancelada.
290Ordem stop-preco adicionada.
291O valor stop de venda no modo OCO deve ser menor que o valor de venda padrão.
292O valor stop de compra no modo OCO deve ser maior que o valor de compra padrão.
303Não é possível lançar ordens com valor total abaixo de R$ 10,00. Tente novamente com valores maiores.
305Não é possível lançar ordens com valor total acima de R$ 50.000,00. Tente novamente com valores menores.
306Não é possível lançar ordens STOP com valor de compra abaixo da melhor oferta de compra atual e/ou último valor negociado.
307Não é possível lançar ordens STOP com valor de venda acima da melhor oferta de venda atual e/ou último valor negociado.
313Aguarde seu recebimento de cripto atingir a quantidade mínima de confirmações para continuar.
315O preço unitário mínimo deve ser acima que a melhor oferta de compra.
316O preço unitário máximo deve ser abaixo que a melhor oferta de venda.
317O preço unitário máximo deve ser maior que o preço unitário mínimo.
318São permitidos criar numeros de ordem entre 2 e 30.
331Sua chave privada não tem acesso à essa função.
339Esse valor excede o limite permitidos para usuário sem cadastro completo. Conclua seu cadastro clicando aqui.
340Esse valor excede o limite permitidos para usuário sem cadastro completo. Conclua seu cadastro clicando aqui.
382É possível realizar somente 1 requisição por segundo.
383Você realizou mais de 60 requisições por minuto. Aguarde alguns instante para voltar usar a API de Negociação.
440Este endereço não é o mesmo configurado da chave da API de Negociações.

Saldos

Consultar saldo

POST

/tapi/balance

Parâmetros

Esse método não possui parâmetros.

Retorno

AtributoDescrição
availablefloat
Saldo disponível
in_usefloat
Valores em uso (ordem em aberto e/ou saque pendente)
totalfloat
Saldo total em conta

Exemplo de retorno

{
  "total": {
    "REAL": "6195.84",
    "BTC": "0.73764924"
  },
  "available": {
    "REAL": "4586.58",
    "BTC": "0.73664924"
  },
  "in_use": {
    "REAL": "1609.26",
    "BTC": "0.00100000"
  }
}

Saque em reais

Listar contas bancárias

POST

/tapi/account_bank_list

Método para listar as contas bancárias cadastradas na Bitnuvem.

A requisição retorna um array de objetos com as informações bancárias.

Parâmetros

Esse método não possui parâmetros.

Retorno (objeto da array)

AtributoDescrição
idint
Identificador da conta bancária na corretora
bankstring
Banco que pertence a conta
agencystring
Agência da conta bancária
agency_digitstring
Digito da agência da conta bancária (somente para alguns bancos)
accountstring
Número da conta bancária
account_digitstring
Digito da conta bancária
account_typestring
Corrente

Novo saque

POST

/tapi/withdraw

Parâmetros

AtributoDescrição
valuefloat
Valor em reais desejado para saque
bank_idint
Identificador da conta bancária na corretora

Retorno

Código de retorno padrão.

Negociações

Nova ordem

POST

/tapi/order_new

Escolha abaixo a modalidade de ordem para acessar os parâmetros necessários.

AtributoDescrição
modestring
Para ordens limite, preencher limit
typestring
Tipo da ordem: buy para comprar ou sell para vender
amountfloat
Quantidade que deseja negociar
pricefloat
Preço unitário que deseja negociar
price_stopfloat
Opcional
TODO
price_ocofloat
Opcional
TODO
AtributoDescrição
modestring
Para ordens a mercado, preencher market
typestring
Tipo da ordem: buy para comprar ou sell para vender
amountfloat
Quantidade que deseja negociar (somente para venda)
totalfloat
Total em reais que deseja comprar do ativo (somente para compra)
price_stopfloat
Opcional
TODO
AtributoDescrição
modestring
Para ordens escalonada, preencher scale
typestring
Tipo da ordem: buy para comprar ou sell para vender
amountfloat
Quantidade que deseja negociar (somente para venda)
totalfloat
Preço unitário que deseja negociar (somente para compra)
type_scalestring
Tipo da distribuição: equal (igualmente), asc (crescente) ou desc (descrescente)
number_ordersint
Quantidade de ordens que deseja distribuir a negociação
price_minfloat
Preço mínimo unitário para distribuição nas ordens
price_maxfloat
Preço máximo unitário para distribuição nas ordens

Retorno

Caso a requisição seja bem sucedida, retornará um array no mesmo padrão do método de Consultar ordem. Saiba mais acessando a seção Código de retorno.

Consultar ordem

POST

/tapi/order_get

Parâmetros

AtributoDescrição
idint
Identificar da ordem

Retorno

AtributoDescrição
idint
Identificador da ordem no sistema
createint
Data da ordem criada em formato Unix Timestamp
modestring
Modalidade: limit limite ou market para mercado
typestring
Tipo da operação: buy para compra ou sell para venda
statusfloat
Situações: active para ordem ativa, completed para concluídas e canceled para canceladas
amountfloat
Quantidade em negociação
amount_executedfloat
Quantidade da ordem já negociada
pricefloat
Preço unitário em negociação
totalfloat
Total em negociação
orders_executedarray
Lista com ordens executadas
orders_executed[].createint
Data da execução da ordem
orders_executed[].priceint
Preço da ordem executada
orders_executed[].amountint
Quantidade da ordem executada
triggerstring
Se possuir gatilho, stop ou oco
trigger_pricestring
Se possuir gatilho, preço unitário do gatilho

Exemplo de retorno

{
    "id": 25994945,
    "symbol": "BTCBRL",
    "create": 1683573888,
    "mode": "market",
    "type": "buy",
    "status": "completed",
    "total": 13.34,
    "amount_executed": 0.00009696,
    "orders_executed": [
        {
            "date": 1683573889,
            "price": 137684.91,
            "amount": 0.00009696,
            "fee": 0.00000012
        }
    ]
}

Listar ordens

POST

/tapi/order_list

Método para filtrar todas as ordens de uma situação específica.

A requisição tem um limite de retorno de 1000 registros.

Parâmetros

AtributoDescrição
statusstring
Situação: all (todas), active (ativas), completed (concluídas) ou canceled (canceladas)

Retorno

Caso a requisição seja bem sucedida, retornará um array no mesmo padrão do método de Consultar ordem. Saiba mais acessando a seção Código de retorno.

Cancelar ordem

POST

/tapi/order_cancel

Método para cancelar uma ordem específica.

Parâmetros

AtributoDescrição
idint
Identificar da ordem

Retorno

Código de retorno padrão.

Cancelar ordens (lote)

POST

/tapi/order_cancel/all

Método para cancelar todas as ordens abertar.

Parâmetros

AtributoDescrição
typestring
Cancelar um tipo espefíco: sell (vendas), buy (compras) ou all (todas)

Retorno

Código de retorno padrão.

Envios de cripto

Novo envio

POST

/tapi/send

AtributoDescrição
addressstring
Endereço para qual deseja realizar o envio
valuefloat
Quantidade para envio
fee_typestring
OpcionalPadrão: high
Tipo da envio: high (prioritário), regular (regular) ou low (baixo).

Retorno

Consulte a seção Código de retorno.

Taxas de rede atual

Para consultar as taxas atuais da rede, consulte a seção Taxas de envio.