createLimitOrder
POST/orders/limit/orders
Disponibilidade: esta rota ainda nao esta ativa. O contrato abaixo esta publicado para voce preparar a integracao; a Liqi avisa quando a rota entrar em Sandbox e, depois, em Producao. Chamadas feitas antes disso respondem 404.
Cria uma ordem a limite: a ordem fica registrada e aberta, e so executa se o mercado atingir o preco que voce definiu em limitPrice, dentro do prazo de validade.
O retorno e imediato (201) e vem com status: OPEN — a ordem foi registrada, nao executada. A execucao acontece depois, quando o preco e atingido. Guarde o orderId devolvido aqui: e por ele que a ordem e acompanhada e cancelada.
Pre-requisito: a ordem a limite precisa estar habilitada na sua conta. Enquanto nao estiver, a rota responde 403. Solicite a habilitacao ao suporte informando o prazo maximo de validade que pretende usar — e esse limite que vale nas validacoes abaixo.
Quantidade — o campo depende do lado da ordem. Compra (side: buy) exige quoteAmount (valor na moeda de cotacao do par, por exemplo BRL). Venda (side: sell) exige amount (quantidade de cripto). Sempre exatamente um dos dois, e o que corresponde ao lado: enviar os dois, nenhum, ou o campo do outro lado e recusado com 400.
Prazo de validade — envie no maximo um dos dois: expiresInDays (dias a partir de agora) ou expiresAt (momento absoluto, epoch em segundos). Sem nenhum dos dois, vale o prazo padrao configurado na sua conta. Nos tres casos o prazo e limitado pelo prazo maximo da conta; passar desse maximo e recusado com 400.
timeInForce aceita somente GTD (good till date): a ordem vale ate expirar. Omitir o campo assume GTD.
Reserva de saldo (venda): uma ordem de venda (side: sell) reserva o saldo do ativo base ja na criacao — o amount (quantidade da cripto) sai de free para used na carteira e fica bloqueado enquanto a ordem esta aberta. Sem saldo livre suficiente para reservar, a ordem nao abre e termina em REJECTED por saldo insuficiente. O saldo reservado e consumido na execucao e devolvido se a ordem encerra sem executar (EXPIRED/CANCELLED/REJECTED). A compra (side: buy) nao reserva saldo. Detalhes no guia Ordem a Limite — status finais e retry.
Idempotencia pelo id, resolvida de forma assincrona. O id que voce envia e a sua chave de idempotencia, e e ele que vira o orderId da ordem. Reenviar o mesmo id nao devolve erro na hora: a requisicao repetida tambem responde 201 com status: OPEN. A duplicata e identificada em seguida e encerrada em REJECTED, ficando de pe apenas uma ordem. O motivo (id ja existente) fica registrado para auditoria, mas nenhum endpoint devolve esse texto hoje: o que o cliente le e o status da ordem. Ou seja: o reenvio e seguro (nao duplica a ordem), mas o 201 nao e confirmacao de que aquela chamada foi a que sobreviveu — para saber o desfecho, consulte a ordem pelo orderId.
Request
Responses
- 201
- 400
- 403
- 404
- 500
Ordem a limite registrada e aberta.
Corpo invalido. Campo obrigatorio ausente, side diferente de buy/sell, limitPrice nao positivo, amount e quoteAmount juntos (ou nenhum dos dois), campo de quantidade que nao corresponde ao lado (quoteAmount ausente na compra, amount ausente na venda), expiresAt e expiresInDays juntos, prazo no passado ou acima do maximo da sua conta.
Ordem a limite nao habilitada na sua conta. Solicite a habilitacao ao suporte.
Conta nao identificada pela chave de API.
Falha interna. A ordem pode nao ter sido registrada; reenvie a requisicao.