Códigos de motivo de ordens de perpétuos
Quando o formulário de ordens diz que uma ordem "seria rejeitada", ele está citando um código de motivo. O mesmo código volta da verificação ao vivo antes de você assinar (a prévia) e do envio real, então o que o formulário mostra é o que o servidor faria.
Como o formulário os usa:
- Códigos de bloqueio transformam o botão de envio no motivo (por exemplo
Not enough margin) até você alterar a ordem. - Códigos de atualização (
stale_position_snapshot,venue_risk_unavailable) são verificados novamente de forma automática e nunca bloqueiam o botão. - Códigos de nova tentativa com bloqueio (
price_unavailable,account_health_unavailable) também são verificados novamente de forma automática, mas bloqueiam o botão até a verificação passar. - Uma prévia com falha nunca bloqueia você. Se a prévia não puder ser acessada, o formulário não mostra números e você ainda pode enviar. A verificação real continua sendo executada no envio.
invalid_order,engine_rejectede qualquer código desconhecido bloqueiam e mostram a mensagem do servidor como foi escrita, já que ela indica o campo ou a regra que falhou.
Usuários da API recebem o mesmo valor em reasonCode em POST /v1/tee-perp/preview e nas respostas de envio de ordens, lotes e alavancagem. O texto legível (reason na prévia, message nas respostas de envio) é de diagnóstico; tome decisões com base no código.
Margem e posição
| Código | O que significa | O que fazer |
|---|---|---|
insufficient_margin | Depois que esta ordem (e todas as ordens de perpétuos abertas) for executada, sua conta não cobriria o requisito de margem. O requisito é o pior entre a margem de portfólio da Hypercall e a margem da Hyperliquid. | Use o cartão que o formulário mostra: Use max (maior tamanho que passa), Raise to N× (menor alavancagem que passa) ou Deposit do valor faltante. Cancelar ordens em espera também libera margem. |
reduce_only_exceeds_position | Uma ordem reduce-only aumentaria ou inverteria sua posição em vez de reduzi-la. | Defina o tamanho igual ou abaixo da sua posição aberta (o formulário oferece Use position) ou desative Reduce only. |
mode_change_with_position | Você tentou alternar entre cross e isolated em um mercado onde tem uma posição. A Hyperliquid também não permite isso. | Mantenha o modo atual ou feche a posição e depois alterne. |
leverage_requires_flat_account | Uma mudança de alavancagem foi recusada porque a conta tem posições de perpétuos abertas ou ordens de perpétuos pendentes. Isso só acontece onde a Hypercall não cobra o risco de liquidação da Hyperliquid na margem; a produção cobra, então a produção não retorna este código. | Feche as posições e cancele as ordens de perpétuos, depois altere a alavancagem. |
liquidation_pending | A conta está em pré-liquidação, com uma liquidação total prestes a começar. A Hypercall recusa novas ordens de perpétuos na conta. | Aguarde a liquidação ser resolvida. Veja Liquidação. |
Configuração da conta
| Código | O que significa | O que fazer |
|---|---|---|
account_not_pm | Ordens de perpétuos exigem uma conta com margem de portfólio. | Ative a margem de portfólio na página da sua conta e tente novamente. |
unified_mode_required | Ordens que adicionam risco exigem o modo unified account da Hyperliquid na conta de negociação. | Clique em Enable unified mode no formulário. |
builder_not_approved | A Hyperliquid recusou a ordem porque a conta não aprovou o endereço de builder da Hypercall. Isso volta da Hyperliquid no envio, não da prévia, e usuários da API veem isso em errorCode na resposta de envio, não em reasonCode. | Clique em Enable trading uma vez. Veja Perpétuos na Hypercall. |
account_health_unavailable | A Hypercall não consegue ler a saúde de margem da conta no momento, então recusa qualquer coisa que adicione risco. | O formulário verifica novamente de forma automática. Para reduzir o risco enquanto isso, envie a ordem com Reduce only ativado. |
Mercado e dados
| Código | O que significa | O que fazer |
|---|---|---|
market_not_supported | O mercado não é um em que a Hypercall consegue calcular risco. Ele precisa de um feed de preço, uma grade de cenários de margem e uma tabela da Hyperliquid com margem em USDC para sua conta. | Escolha um mercado suportado. |
trading_halted | A negociação está pausada, em todos os mercados ou neste mercado. | Aguarde. O formulário mantém o botão desativado até a negociação ser retomada. |
price_unavailable | O preço que a Hypercall usa para avaliar o mercado está ausente ou desatualizado. | O formulário verifica novamente de forma automática. A Hypercall não estima um preço, então recusa até que um novo chegue. |
stale_position_snapshot | Sua leitura mais recente de posição ou patrimônio na Hyperliquid está ausente ou é antiga demais. | Nada. O formulário verifica novamente uma vez por conta própria. Se persistir, atualize a página. |
venue_risk_unavailable | A leitura de risco da Hyperliquid (alavancagem, preços de liquidação, colateral por posição) está ausente ou não corresponde à sua leitura de posição mais recente. | Nada. O formulário verifica novamente uma vez por conta própria. |
Termos da ordem
| Código | O que significa | O que fazer |
|---|---|---|
invalid_order | Os termos da ordem são inválidos: precisão de preço ou tamanho, um bracket TP/SL malformado ou um client order id inválido. | Corrija o tick de preço ou o incremento de tamanho e envie novamente. |
action_not_supported | A política do enclave de assinatura não permite este tipo de ação. Se isso acontecer em um tipo de ordem que o formulário oferece, o formulário marca esse tipo como não habilitado. | Use um tipo de ordem suportado. |
engine_rejected | Qualquer outra recusa. O texto em reason traz a causa exata. | Leia a mensagem. Se não estiver clara, entre em contato com o suporte enviando o texto. |