Annuler
TradingAuthentification requiseAnnulez 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.
3 modifications incompatibles
loginid a été supprimé et tous les champs de réponse sont désormais requis.Comparaison rapide
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
{
"cancel": 11542203588,
"loginid": "CR123456", // ❌ Removed in New
"passthrough": {
"user_action": "manual_cancel"
},
"req_id": 1
}{
"cancel": 11542203588,
"passthrough": {
"user_action": "manual_cancel"
},
"req_id": 1
}Structure 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
}{
"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");
}
}
};
}D'autres questions ? Nous contacter