Deriv API
Documentação

Cancelar

NegociaçãoAutenticação Obrigatória

Cancelar um contrato ativo fornecendo o ID do contrato. O parâmetro loginid foi removido e os campos de resposta estão agora garantidos.

Comparação rápida

AspetoLegacy APINew APIAção
EndpointcancelcancelNenhum
Autenticação ObrigatóriaSimSimNenhum
Parâmetro loginidOpcionalRemovidoRemover dos pedidos
Objeto de cancelamento na RespostaOpcionalObrigatórioSimplificar tratamento de erros

Alterações de rutura

1. Remoção do parâmetro loginid

O parâmetro loginid já não é suportado em New. No Legacy, este parâmetro era usado para especificar de que conta cancelar um contrato quando eram fornecidos múltiplos tokens durante a autorização.

Alteração necessária: Remove the loginid field from your cancel requests. Account selection is now handled through the authorization token.

2. Objeto cancel agora obrigatório na resposta

O objeto cancel é agora um campo obrigatório no nível raiz da resposta.

Alteração necessária: You can now rely on the cancel object always being present in successful responses. Remove any conditional checks for its existence.

3. Todos os campos de resposta agora obrigatórios

Todos os campos dentro do objeto de resposta cancel são agora obrigatórios: balance_after, contract_id, reference_id, sold_for, e transaction_id.

Alteração necessária: You can simplify your response handling code by removing null/undefined checks for these fields. They are guaranteed to be present in successful responses.

Estrutura de pedido

Legacy APIexemplo de pedido
{
  "cancel": 11542203588,
  "loginid": "CR123456",  // ❌ Removed in New
  "passthrough": {
    "user_action": "manual_cancel"
  },
  "req_id": 1
}
New APIexemplo de pedido
{
  "cancel": 11542203588,
  "passthrough": {
    "user_action": "manual_cancel"
  },
  "req_id": 1
}

Estrutura de resposta

Legacy APIexemplo de resposta
{
  "cancel": {
    "balance_after": 10450.50,
    "contract_id": 11542203588,
    "reference_id": 11542203587,
    "sold_for": 23.45,
    "transaction_id": 11542203589
  },
  "echo_req": {
    "cancel": 11542203588,
    "req_id": 1
  },
  "msg_type": "cancel",
  "req_id": 1
}
New APIexemplo de resposta
{
  "cancel": {
    "balance_after": 10450.50,
    "contract_id": 11542203588,
    "reference_id": 11542203587,
    "sold_for": 23.45,
    "transaction_id": 11542203589
  },
  "echo_req": {
    "cancel": 11542203588,
    "req_id": 1
  },
  "msg_type": "cancel",
  "req_id": 1
}

Exemplos de código

async function cancelContract(contractId, loginId = null) {
  const request = {
    cancel: contractId,
    req_id: 1
  };

  // Add loginid if provided (for multi-account scenarios)
  if (loginId) {
    request.loginid = loginId;
  }

  ws.send(JSON.stringify(request));

  // Handle response
  ws.onmessage = (message) => {
    const response = JSON.parse(message.data);
    if (response.msg_type === "cancel") {
      // Fields may be undefined - need null checks
      if (response.cancel) {
        const soldFor = response.cancel.sold_for ?? 0;
        const balance = response.cancel.balance_after ?? 0;
        console.log("Contract cancelled");
      }
    }
  };
}
Click to open live chat support. Get instant help from our support team.