Mensagens de erro da API

Última atualização: 8/08/2025

Introdução

A maioria dos pedidos de API são concluídos com sucesso, mas, por vezes, algo corre mal e é devolvida uma mensagem de erro em vez da resposta esperada.

A nossa API fornece uma variedade de mensagens de erro descritivas destinadas a fornecer o motivo do erro e sugestões para a solução apropriada.

As mensagens de erro da API podem ser divididas em vários grupos diferentes (dependendo do tipo de erro, da causa subjacente e da solução ideal), mas o formato das mensagens de erro da API é consistente e é o seguinte:

"Nível de Gravidade""Categoria de Erro":"Mensagem de Erro"

O "Nível de Gravidade" pode ser E para um erro ou W para um aviso. A "Categoria de Erro" pode ser uma de Geral, API, Consulta, Ordem, Transação, Financiamento ou Serviço. A "Mensagem de Erro" pode ser qualquer cadeia de texto que descreva o motivo do erro (como Argumentos inválidos).

Por exemplo, um erro que indica que um par de moedas inválido foi usado numa consulta de ticker seria o seguinte:

EQuery:Unknown asset pair

Note que alguns softwares de terceiros (aplicações móveis, bots de negociação, etc.) optam por ocultar o erro original da API e apresentar um erro personalizado, pelo que um formato ou conteúdo de erro alternativo é possível dependendo do software que está a ser utilizado.

  • Erros de utilização geral

  • Erros de limite de taxa

  • Erros de negociação (colocação/cancelamento de ordens)

  • Erros de financiamento (depósito/levantamento)

  • Erros de estado do serviço

  • Erros internos

  • Erros do Cloudflare (rede)

Erros de utilização geral

Os erros de permissão negada são devolvidos quando o cliente da API está a tentar uma tarefa para a qual a chave da API não tem permissão. Por exemplo, se um cliente da API tentasse recuperar o saldo da conta usando uma chave da API que foi configurada para permitir acesso de negociação, mas não acesso de gestão de conta, então o erro de permissão negada seria devolvido. Pode rever as suas chaves da API e as suas configurações (como as suas permissões) através do separador Definições -> API da gestão de conta. Precisaria de garantir que as chaves da API usadas pelas suas aplicações de terceiros têm todas as configurações e permissões que as suas aplicações exigem.

Este erro é devolvido quando a chave da API usada para a chamada está expirada ou desativada. Por favor, reveja a chave da API no separador Definições -> API da gestão de conta ou gere uma nova e atualize a sua aplicação.

Pode obter a lista completa dos nossos pares de ativos a partir da chamada pública AssetPairs e procurar o nome do par como entrada dos cabeçalhos Json ou pelo parâmetro "altname": https://api.kraken.com/0/public/AssetPairs

Este erro é devolvido quando um método é chamado sem os parâmetros necessários. Por exemplo, chamar o método QueryOrders sem especificar um ID de transação (txid) válido faria com que o erro de argumentos inválidos fosse devolvido. Chamar um método com parâmetros desnecessários ainda não devolveria o erro de argumentos inválidos porque os parâmetros desnecessários seriam simplesmente ignorados.

Os erros de assinatura inválida ocorrem se a sua chave da API ou o seu segredo da API estiverem escritos incorretamente no seu programa ou porque os dados POST usados na autenticação e os dados POST enviados para a API não correspondem. Para referência adicional, o seguinte é um exemplo de código Python para implementar o algoritmo de assinatura da API. A chave pública da API apropriada deve ser copiada e colada da gestão de conta, e o método da API e os dados POST devem ser atualizados apropriadamente. O valor de saída pode ser usado diretamente como o valor para o cabeçalho HTTP API-Sign. #!/usr/bin/env python

# Importar bibliotecas Python necessárias
import time
import base64
import hashlib
import hmac

# Decodificar a chave privada da API do formato base64 exibido na gestão de conta
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variáveis (método da API, nonce e dados POST)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Algoritmos de hash criptográfico
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Codificar assinatura para o formato base64 usado no valor API-Sign
api_signature = base64.b64encode(api_hmac.digest())

# Assinatura de autenticação da API para uso no cabeçalho HTTP API-Sign
print(api_signature)O SHA256 é calculado usando o próprio valor nonce e os dados POST para o método da API, e os DADOS POST são compostos pelos pares nome/valor para o nonce (novamente) e os parâmetros do método da API. Um exemplo dos dados que devem ser passados para o SHA256 para o método TradeBalance seria o seguinte:SHA256 = SHA256 de "1541933977000nonce=1541933977000&asset=xxbt"O valor da string que é passado para o SHA256 não deve conter quaisquer valores nulos adicionais (\0) e o valor da string não deve ser codificado como base64 ou hexadecimal (ou seja, o valor da string deve ser uma string de texto simples).O caminho URI é o URL completo do método da API, exceto o prefixo "https://api.kraken.com", portanto, o caminho URI do método TradeBalance (por exemplo) seria o valor da string "/0/private/TradeBalance" sem quaisquer valores nulos adicionais.O HMAC SHA512 é calculado usando o caminho URI e o digest SHA256 calculado anteriormente, com a chave privada da API decodificada em base64 como a chave HMAC. Um exemplo dos dados que devem ser passados para o HMAC seria o seguinte:HMAC SHA512 usando chave privada decodificada em base64 = HMAC de "/0/private/TradeBalanceSHA256"Os cabeçalhos HTTP API-Key e API-Sign são os únicos dois cabeçalhos HTTP personalizados necessários. O cabeçalho API-Key é uma duplicata exata da chave pública da API da gestão de conta. O cabeçalho API-Sign é o digest HMAC SHA512 codificado usando base64.

Os erros de sessão inválida são devolvidos através da API WebSocket, quando é feita uma tentativa de subscrever um feed autenticado (privado) usando um token de autenticação que já não é válido (por exemplo, já expirou).

A solução é simplesmente solicitar um novo token de autenticação através do endpoint GetWebSocketsToken da API REST e usar o novo token para todos os pedidos de subscrição autenticados (privados) subsequentes.

Um erro de pedido inválido indica que há algo incorreto no pedido HTTP subjacente (não no pedido API subsequente), como URLs incompatíveis entre REST/WebSocket, ou não incluir os dados POST HTTP corretamente:

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

Este erro é devolvido quando o endpoint que está a ser chamado não é um endpoint válido.

Erros de limite de taxa

Embora adicionar e cancelar ordens não conte para os nossos limites padrão de contador da API, estas operações têm o seu próprio contador de adição e cancelamento de ordens. Este contador funciona de forma que, quanto mais tempo as ordens permanecem no livro de ordens, mais ordens os clientes conseguem adicionar ou cancelar.

As mensagens de erro de bloqueio temporário podem ocorrer se tiver tido demasiadas chamadas API falhadas ou demasiados erros de nonce inválido num curto período de tempo, ou assinaturas inválidas. Mesmo que estas chamadas devolvam um erro, esse erro ainda conta para os seus limites da API e pode resultar num bloqueio temporário.

Os bloqueios temporários duram aproximadamente 15 minutos. Após receber o erro de bloqueio temporário, aguarde 15 minutos antes de enviar quaisquer novos pedidos API. Se estiver a desencadear vários erros de nonce inválido, por favor, aumente a janela de nonce, pois isso pode ajudar a reduzir a frequência com que estes erros ocorrerão. Por favor, tente também reduzir a frequência das suas chamadas API privadas.

Erros de negociação

A abertura de novas posições spot com margem foi temporariamente suspensa para manutenção do motor de negociação. A funcionalidade estará de volta em breve e pode acompanhar as atualizações em status.kraken.com.

Outras razões podem ser que as posições spot com margem não estão atualmente disponíveis para clientes residentes em certos países.

Na Kraken, não pode abrir uma posição longa e curta para o mesmo par.

Se desejar abrir uma posição longa e curta para a mesma moeda, escolha pares de negociação diferentes com a mesma moeda como moeda base ou de cotação. Ex: short XBT/USD, long XBT/EUR.

Este erro ocorre quando excedeu os limites de margem permitidos para o seu nível de verificação atual. Os limites de margem permitidos para cada moeda variam com base no seu nível de verificação atual.

Temos fundos limitados disponíveis para extensões de margem. A mensagem "margem insuficiente" indica que estamos sem fundos na pool de margem aplicável no momento. Isto pode mudar a qualquer momento. Poderá conseguir colocar a sua ordem com sucesso segundos ou minutos depois, mas ordens de alto volume e ordens colocadas durante períodos de alto volume podem demorar mais tempo. Pedimos desculpa por qualquer inconveniente.

Este erro ocorre quando não há Margem Livre suficiente para abrir uma nova posição na conta ou se a tentativa atual de abrir uma posição resultaria na Margem Livre da conta a cair abaixo de 100%.

Não tem fundos disponíveis para colocar esta ordem. Por favor, reveja as suas posições e ordens abertas para itens que possam estar a reter os seus fundos.

Não cumpriu o volume mínimo de ordem para este ativo.

Excedeu o número máximo de ordens abertas disponíveis na sua conta.

Estes limites são baseados no seu nível de verificação. Por favor, feche algumas das suas ordens abertas ou verifique a sua conta para um nível superior.

Excedeu o número máximo de posições abertas disponíveis na sua conta.

Estes limites são baseados no seu nível de verificação. Por favor, feche ou liquide algumas ou todas as suas posições abertas ou verifique a sua conta para um nível superior, se possível.

Foi feita uma tentativa de editar uma ordem existente (aberta), mas as modificações não puderam ser concluídas com sucesso. As razões possíveis incluem fundos insuficientes para a nova ordem, alguns cenários de preenchimento parcial e algumas ordens alavancadas.

O novo volume é inferior ao volume já executado/preenchido.

O tamanho da ordem excedeu o limite de tamanho da posição de margem do par de negociação.

O volume de exibição não atingiu o volume mínimo da ordem.

O volume de exibição deve ser inferior ao volume da ordem.

As ordens iceberg não são compatíveis com outros tipos de ordem além de uma ordem limite.

Erros de financiamento

Cada criptomoeda tem um máximo de 5 novos endereços de depósito (não utilizados), após os quais qualquer tentativa de criar um 6º novo endereço resultará num erro.

Este erro é devolvido sempre que os pontos de extremidade de financiamento são chamados com um parâmetro "method" inválido ou em falta. 

O parâmetro de entrada "key" não corresponde à descrição do endereço definida na gestão da conta (através de Financiamento -> Levantamento).

Os valores mínimos de levantamento por moeda variam e qualquer tentativa de levantamento abaixo do mínimo resultaria neste erro.

Este é um erro genérico que indica que um pedido de financiamento não pôde ser concluído (por exemplo, clientes de certas localizações que tentam fazer pedidos de staking on-chain causariam este erro).

O levantamento solicitado não pôde ser concluído, porque o endereço de destino não possui as informações necessárias do beneficiário/recetor (note que isto atualmente se aplica apenas a levantamentos selecionados de contas canadianas).

Erros de estado do serviço

Os erros de serviço que está a experienciar devem ser apenas temporários. Poderá querer reenviar os seus pedidos se estes falharam. Estaremos a monitorizar os problemas e atualizaremos a nossa página:

https://status.kraken.com/

Erros internos

Quando enfrentamos problemas de degradação da API, estes podem traduzir-se em problemas para a Kraken sob a forma de mensagens de serviço indisponível e interrupções do site.

Este problema está relacionado com a segurança da sua conta, que pode ter sido comprometida. Por favor, altere a sua palavra-passe e a Autenticação de Dois Fatores e contacte o nosso Centro de Suporte.

Este erro ocorre quando um sinalizador ou parâmetro de entrada é desativado temporária ou permanentemente. O erro deve vir de uma das entradas passadas, por favor, contacte o nosso suporte enviando um registo com as informações completas usadas para a chamada que gerou o erro.

Estes erros 5xx e 10xx não são, na verdade, erros da API, mas sim erros do servidor web da Cloudflare.

Os erros da API são sempre devolvidos em formato JSON, como “error”:[“ErrorType:ErrorMessage”], portanto, sempre que um erro num formato diferente for recebido (como um código de estado HTTP de 520, 504, 502, 1020, etc.), a solução provisória é tentar a chamada da API novamente pouco depois e, esperançosamente, a chamada será bem-sucedida.

Precisa de mais ajuda?