Deriv API
Documentation

Annuler

TradingAuthentification requise

Annulez un contrat actif en fournissant l'ID du contrat. Le paramètre loginid a été supprimé et les champs de réponse sont maintenant garantis.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisoncancelcancelAucun
Authentification requiseOuiOuiAucun
Paramètre loginidFacultatifSuppriméRetirer des requêtes
Objet cancel dans la réponseFacultatifObligatoireSimplifier la gestion des erreurs

Modifications majeures

1. Suppression du paramètre loginid

Le paramètre loginid n'est plus pris en charge dans la nouvelle version. Dans l'ancienne version, ce paramètre était utilisé pour spécifier quel compte utiliser pour annuler un contrat lorsque plusieurs tokens étaient fournis lors de l'autorisation.

Modification requise : Remove the loginid field from your cancel requests. Account selection is now handled through the authorization token.

2. Objet cancel désormais requis dans la réponse

L'objet cancel est maintenant un champ requis au niveau racine de la réponse.

Modification requise : You can now rely on the cancel object always being present in successful responses. Remove any conditional checks for its existence.

3. Tous les champs de réponse désormais requis

Tous les champs de l'objet de réponse cancel sont désormais requis : balance_after, contract_id, reference_id, sold_for, et transaction_id.

Modification requise : You can simplify your response handling code by removing null/undefined checks for these fields. They are guaranteed to be present in successful responses.

Structure de la demande

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

Structure de réponse

Legacy APIexemple de réponse
{
  "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 APIexemple de réponse
{
  "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
}

Exemples de code

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.