Perguntas frequentes avançadas sobre a API

Última atualização: 5 de novembro de 2026

Ao utilizar os endpoints de financiamento da API REST, os clientes podem depositar e levantar fundos da sua Conta Kraken, bem como solicitar o estado em tempo real de uma transação de depósito ou levantamento.

Os depósitos e levantamentos passam por várias etapas entre o pedido inicial e a conclusão da transação. Por isso, os endpoints de financiamento devolvem um valor de estado diferente, dependendo do momento em que são consultados.

Tenha em atenção que os valores de estado foram originalmente retirados das páginas 16/17 do documento Internet Financial Exchange Protocol (IFEX), mas foram ligeiramente alterados para se adequarem melhor às transações cripto (por exemplo, não são utilizados todos os valores de estado possíveis).

Depósitos

Os possíveis valores de estado para transações de depósito são os seguintes:

  • •

    Liquidado = O depósito foi recebido, mas ainda precisa de confirmações adicionais na blockchain.

  • •

    Sucesso = O depósito obteve o número de confirmações necessário na blockchain.

  • •

    Falha = O depósito falhou (por um ou mais motivos).

Seguem-se alguns exemplos de como os valores de estado acima apareceriam nas respostas do endpoint DepositStatus:

Estado liquidado:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906dde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Settled"}]}

Estado de sucesso:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSB7IFM-Q3LT3X-NVAOKE","txid":"92c908ea2ea819d678d67130e4d20b625a8f97f3cfff45f906dde8cef41a046a","info":"D7SLwMBPqfFMCZ8EJDMoVEePpZAFFegLt8","amount":"997.00000000","fee":"0.00000000","time":1611308478,"status":"Success"}]}

Levantamentos

Os possíveis valores de estado para transações de levantamento são os seguintes:

  • •

    Inicial = O pedido de levantamento foi recebido e está a ser verificado quanto à sua validade (quaisquer restrições de financiamento na conta, etc.).

  • •

    Pendente = O levantamento está a aguardar processamento pelo nosso gateway de financiamento.

  • •

    Liquidado = O levantamento foi enviado para a blockchain (neste momento, o ID da transação na blockchain ficará disponível).

  • •

    Sucesso = A transação de levantamento tem pelo menos 1 confirmação na blockchain.

  • •

    Em espera = O levantamento foi colocado em espera e tem de ser verificado manualmente pela nossa equipa de financiamento.

  • •

    Falha = O levantamento falhou (por um ou mais motivos).

Seguem-se alguns exemplos de como os valores de estado acima apareceriam nas respostas do endpoint WithdrawStatus:

Estado inicial:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Initial"}]}

Estado pendente:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Pending"}]}

Estado liquidado:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Settled"}]}

Estado de sucesso:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":"064536e901f2cbfa6e279aa7a87c700b64e0ce561bf6e266788c47496f75106c","info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Success"}]}

Estado de falha:{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBCMYC-F5ETQT-34NMWT","txid":null,"info":"DGNBPsa2GhhtZGEZo79uF3WN2bTxFxmc9y","amount":"98.00000000","fee":"2.00000000","time":1612782924,"status":"Failure","status-prop":"canceled"}]}

Estão disponíveis informações adicionais sobre depósitos e levantamentos nas nossas páginas de apoio sobre financiamento em moeda fiduciária e financiamento cripto.

O endpoint OHLC da API REST fornece apenas uma quantidade limitada de dados históricos, especificamente 720 pontos de dados do intervalo solicitado. Por exemplo, solicitar dados OHLC em intervalos de 1 minuto devolverá os 720 minutos mais recentes (12 horas) de dados.

Para aplicações que necessitem de dados OHLC ou de ticks adicionais, é possível obter todo o histórico de negociação dos nossos mercados (o histórico de tempo e vendas) através do endpoint Trades da API REST. Os dados OHLC para qualquer período e intervalo podem então ser criados a partir dos dados históricos de tempo e vendas.

O endpoint Trades aceita um parâmetro opcional denominado since, que especifica a data/hora de início dos dados. O valor de since é um carimbo de data/hora UNIX com resolução de nanossegundos (um carimbo de data/hora UNIX padrão em segundos com 9 dígitos adicionais).

Por exemplo, uma chamada ao endpoint Trades como https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559347200000000000 devolveria o histórico de tempo e vendas de XBT/USD a partir de 1 de junho de 2019 às 00:00:00 UTC:

{"error":[],"result":{"XXBTZUSD":[["8552.90000","0.03190270",1559347203.7998,"s","m",""],["8552.90000","0.03155529",1559347203.8086,"s","m",""],["8552.90000","0.00510797",1559347203.9664,"s","m",""],["8552.90000","0.09047336",1559347203.9789,"s","m",""],["8552.90000","0.00328738",1559347203.9847,"s","m",""],["8552.90000","0.00492152",1559347203.9897,"s","m",""],["8552.90000","0.00201848",1559347203.9937,"s","m",""],["8552.90000","0.11422068",1559347203.9993,"s","m",""],["8552.90000","0.00425858",1559347204.071,"s","m",""],["8552.90000","0.00427679",1559347204.0762,"s","m",""],["8552.90000","0.06381401",1559347204.1662,"s","m",""]
...
["8579.50000","0.05379597",1559350785.248,"s","l",""],["8579.50000","0.94620403",1559350785.2936,"s","l",""],["8578.10000","0.45529068",1559350785.297,"s","l",""]],"last":"1559350785297011117"}}

As chamadas subsequentes ao endpoint Trades devem substituir o valor do parâmetro since pelo valor do parâmetro last dos resultados da chamada anterior como https://api.kraken.com/0/public/Trades?pair=xbtusd&since=1559350785297011117.

Utilizar o valor especial de since igual a 0 (zero) devolveria o histórico de tempo e vendas desde o início do mercado (a começar pela primeira negociação).

Uma referência do utilizador é um ID de ordem fornecido pelo cliente que pode ser utilizado em vez do ID de ordem efetivo (fornecido pela API) para algumas tarefas de gestão de ordens, nomeadamente o cancelamento de ordens.

As referências do utilizador foram concebidas para serem tão flexíveis quanto possível e podem, por isso, ser utilizadas de várias formas, incluindo:

  • •

    como um ID único (em que cada ordem tem uma referência do utilizador diferente),

  • •

    para agrupar ordens relacionadas (por exemplo, agrupar ordens com diferentes níveis de alavancagem),

  • •

    ou como um ID de recurso em caso de o ID de ordem efetivo não ser conhecido.

Uma referência do utilizador deve ser um valor numérico entre 1 e 2 147 483 647 (essencialmente, qualquer número positivo de 32 bits) e pode, por isso, ser implementada como um contador simples, como um valor assinado aleatório de 32 bits ou até como um carimbo de data/hora em segundos (embora esta última opção deixe de funcionar após 19 de janeiro de 2038 às 3:14:07 UTC).

Colocar ordens com uma referência do utilizador

As ordens podem ser colocadas com uma referência do utilizador associada através da chamada ao endpoint AddOrder e da inclusão do parâmetro userref, utilizando a referência do utilizador como valor:

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=limit price=0.1 volume=50 userref=27649653

{"error":[],"result":{"descr":{"order":"buy 50.00000000 XDGUSD @ limit 0.1000000"},"txid":["OQJSXE-F5FOM-IXHVL4"]}}

Consultar ordens às quais foi associada uma referência de utilizador

As ordens às quais já foi associada uma referência de utilizador podem ser consultadas chamando os endpoints Open/Closed/QueryOrders e incluindo o parâmetro userref com a referência de utilizador existente como valor (neste caso, a referência de utilizador funciona como filtro, apresentando apenas as ordens associadas):

$ ./krakenapi OpenOrders userref=27649653

{"error":[],"result":{"open":{"OQJSXE-F5FOM-IXHVL4":{"refid":null,"userref":27649653,"status":"open","opentm":1629618802.9812,"starttm":0,"expiretm":0,"descr":{"pair":"XDGUSD","type":"buy","ordertype":"limit","price":"0.1000000","price2":"0","leverage":"none","order":"buy 50.00000000 XDGUSD @ limit 0.1000000","close":""},"vol":"50.00000000","vol_exec":"0.00000000","cost":"0.000000000","fee":"0.000000000","price":"0.000000000","stopprice":"0.000000000","limitprice":"0.000000000","misc":"","oflags":"fciq"}}}}

$ ./krakenapi ClosedOrders userref=38695724

{"error":[],"result":{"closed":{"O7YEFN-3V4RK-FBNSNM":{"refid":null,"userref":38695724,"status":"canceled","reason":"User requested","opentm":1629619539.3593,"closetm":1629619542.2246,"starttm":0,"expiretm":0,"descr":{"pair":"XBTUSD","type":"buy","ordertype":"limit","price":"25000.0","price2":"0","leverage":"none","order":"buy 0.00010000 XBTUSD @ limit 25000.0","close":""},"vol":"0.00010000","vol_exec":"0.00000000","cost":"0.00000","fee":"0.00000","price":"0.00000","stopprice":"0.00000","limitprice":"0.00000","misc":"","oflags":"fciq"}},"count":1}}

Cancelar ordens às quais foi associada uma referência de utilizador

As ordens às quais já foi associada uma referência de utilizador podem ser canceladas utilizando essa referência, chamando o endpoint CancelOrder e usando a referência de utilizador como valor de txid (em vez do valor do ID da ordem):

$ ./krakenapi CancelOrder txid=16764529

{"error":[],"result":{"count":1}}

Tenha em atenção que todas as ordens em aberto com a mesma referência de utilizador seriam canceladas. Assim, é possível fazer uma única chamada a CancelOrder para cancelar várias ordens em simultâneo (conforme indicado pelo valor count de 3 na resposta seguinte):

$ ./krakenapi CancelOrder txid=48695624

{"error":[],"result":{"count":3}}

Este problema pode estar relacionado com o Cloudflare:

https://support.cloudflare.com/hc/en-us/articles/200169226-Why-am-I-getting-a-403-error-

NOTA: a Kraken tem o "Browser Integrity Check" ativado.

Isto pode ocorrer se o seu pedido contiver cabeçalhos suspeitos. Por exemplo, o seu pedido pode não incluir um user agent ou pode utilizar um user agent não padrão; por isso, verifique os cabeçalhos do seu pedido.

Se não conseguir criar nenhum pedido padrão permitido pelo nosso sistema, envie-nos uma cópia integral do(s) pedido(s) que está a tentar fazer, incluindo o seu Endereço IP e todos os cabeçalhos. Estas informações permitir-nos-ão investigar melhor.

Ambientes de teste REST, WebSocket e FIX

Para a nossa API REST/WebSocket de spot e API FIX, além da nossa API REST/WebSocket de Derivado e API FIX, disponibilizamos atualmente um ambiente de testes para clientes qualificados. O acesso a este ambiente requer um processo de integração, que pode ser iniciado ao contactar diretamente a equipa da API.

Testar a nossa API utilizando o parâmetro de teste Validate

Ao colocar uma ordem através dos endpoints AddOrder da API REST ou addOrder da API WebSocket, pode utilizar o parâmetro de entrada validate para simular a ordem.

Chamar AddOrder/addOrder com o parâmetro validate definido como true (validate=1, validate=true, validate=anything, etc.) fará com que os detalhes da ordem sejam verificados quanto a erros, mas a resposta da API nunca incluirá um ID de ordem (que seria sempre devolvido para uma ordem bem-sucedida sem o parâmetro validate).

Exemplo de uma chamada AddOrder com o parâmetro validate (tenha em atenção o ID de ordem em falta):

bash

Bash

$ ./krakenapi AddOrder pair=xdgusd type=buy ordertype=market volume=5000 validate=true{"error":[],"result":{"descr":{"order":"buy 5000.00000000 XDGUSD @ market"}}}

Ordens reais pequenas e/ou ordens com preços extremos

Para um teste abrangente da API utilizando o Validate Parameter, recomendamos colocar ordens de mercado muito pequenas (ordens com a dimensão mínima da ordem) ou ordens com limite cujo preço esteja muito afastado do preço de mercado atual (por exemplo, colocar uma ordem com limite para vender ETH/USD a 800 $ quando o preço de mercado é 200 $).

Os testes com ordens reais permitem que o seu código da API interaja com a nossa API em condições reais, pelo que todos os aspetos do teste serão precisos (como as suas ordens afetam o livro de ordens, etc.).

Por motivos de segurança, deixámos recentemente de suportar o TLS 1.0 e 1.1. Se estiver a encontrar mensagens de erro de ligação SSL/TLS ao tentar ligar-se à nossa API, é provável que isso se deva à utilização de uma destas normas obsoletas. Terá de modificar o seu cliente da API para forçar a utilização do TLS 1.2/1.3 ou atualizar a sua versão do .NET para a 4.6 ou superior, que utiliza o TLS 1.2/1.3 por predefinição.

A seguinte Google Sheet pode ser utilizada para calcular a assinatura de autenticação da API REST para qualquer combinação de dados de entrada:

  • •

    Chave privada (secreta) da API

  • •

    endpoint da API (Balance, TradeBalance, QueryOrders, etc.)

  • •

    Valor nonce (consulte a nossa página de apoio sobre o que é um nonce para obter mais detalhes)

  • •

    Parâmetros de entrada do endpoint (asset=doge, por exemplo)

A calculadora pode ser utilizada para verificar se o algoritmo de autenticação foi implementado corretamente, evitando assim potenciais problemas (nomeadamente erros de chave inválida) mais tarde no ciclo de desenvolvimento.

Instruções de utilização

  1. 1

    Abra a calculadora de autenticação da API REST no Chrome (ou noutro navegador Web recente)

  2. 2

    Crie uma cópia da calculadora no seu próprio Google Drive através do menu File -> Make a copy (terá de iniciar sessão na sua conta Google para concluir este passo)

  3. 3

    Preencha os campos API key, API endpoint, nonce value e input data com a sua própria chave da API e os detalhes do pedido

  4. 4

    Compare a assinatura de autenticação da API calculada com o valor calculado pelo seu próprio código da API (os dois valores têm de corresponder exatamente)

Por motivos de segurança, recomendamos utilizar a calculadora de autenticação com uma chave temporária da API e, em seguida, eliminar a chave da API da sua conta assim que for demonstrado que a implementação da assinatura de autenticação está correta.

Exemplo

Screenshot_2021-06-21_at_14.42.35.png

A principal vantagem de utilizar os wrappers da nossa biblioteca de cliente é não precisar de dedicar tempo e esforço a reinventar a roda para criar assinaturas da API, uma vez que isso já foi feito por si.

Se apenas pretender fazer chamadas para métodos públicos, pode optar por não utilizar bibliotecas de cliente, uma vez que não é necessária autenticação.

Pode encontrar aqui a lista de wrappers disponíveis.