API WebSocket v1 - plasarea și anularea ordinelor

Ultima actualizare: 1 aprilie 2025

API-ul nostru WebSocket v1 acceptă tranzacționarea prin intermediul endpoint-urilor addOrder și cancelOrder. Endpoint-ul addOrder este utilizat pentru plasarea de noi ordine, iar endpoint-ul cancelOrder este utilizat pentru anularea ordinelor existente (deschise).

Atât addOrder, cât și cancelOrder sunt endpoint-uri private, ceea ce înseamnă că pot fi accesate doar printr-o conexiune WebSocket autentificată.

O conexiune inițială ar trebui realizată la URL-ul WebSocket autentificat wss://ws-auth.kraken.com/, care poate fi apoi menținută deschisă pe termen nelimitat în timp ce ordinele sunt plasate și anulate. O singură conexiune WebSocket este concepută pentru a suporta mai multe solicitări, deci nu este necesar (sau recomandat) să vă conectați/deconectați pentru fiecare apel către endpoint-urile de tranzacționare.

Autentificare WebSocket

Un token de autentificare WebSocket poate fi recuperat prin intermediul endpoint-ului REST API GetWebSocketsToken.

Odată ce un token a fost recuperat, se poate realiza o conexiune la URL-ul privat WebSocket wss://ws-auth.kraken.com/, iar endpoint-urile addOrder și cancelOrder pot fi apoi utilizate pe termen nelimitat (token-ul nu va expira în timp ce este utilizat pentru plasarea și anularea ordinelor).

Rețineți că cheia API utilizată pentru recuperarea token-ului trebuie să aibă ambele permisiuni Modify Orders și Cancel/Close Orders, altfel va fi primită o eroare de permisiune refuzată de la API-ul WebSocket.

Plasarea unui ordin

Odată ce o conexiune WebSocket autentificată a fost stabilită, un ordin poate fi plasat prin trimiterea unui mesaj similar cu următorul:

  • {"event":"addOrder", "token":"nT9n23/7oLdq+bNHNMNJ4VvF1hiHhjTnPOaCMiB1GJ0", "pair":"XBT/USD", "type":"buy", "ordertype":"limit", "price":"9857", "volume":"0.002", "leverage":"5", "userref":"8874657"}

Apoi va fi primită o confirmare care indică starea solicitării (dacă ordinul a fost acceptat sau respins). Pentru un ordin care a fost acceptat și plasat cu succes, răspunsul va indica o stare de ok și va fi similar cu următorul:

  • {"descr":"buy 0.00200000 XBTUSD @ limit 9857.0 with 5:1 leverage","event":"addOrderStatus","status":"ok","txid":"OPOUJF-BWKCL-FG5DQL"}

Pentru un ordin care a fost respins și nu a fost plasat, răspunsul va indica o stare de eroare, împreună cu un mesaj de eroare care indică motivul respingerii (argumente invalide, fonduri insuficiente etc.), cum ar fi următoarea respingere pentru un ordin care nu a îndeplinit dimensiunea minimă a ordinului:

  • {"errorMessage":"EOrder:Order minimum not met","event":"addOrderStatus","status":"error"}

Anularea unui ordin

Odată ce o conexiune WebSocket autentificată a fost stabilită (sau, de preferință, o conexiune existentă a fost reutilizată), un ordin poate fi anulat prin trimiterea unui mesaj similar cu următorul:

  • {"event":"cancelOrder", "token":"s74Ajl83it0dNNKcF072NJ5wDmLTGIceaCbV96eWbFg", "txid":["OJZ3DI-IU6QC-ME7TVE"]}

Apoi va fi primită o confirmare care indică starea solicitării (dacă anularea a fost acceptată sau respinsă). Pentru un ordin care a fost anulat cu succes, răspunsul va indica o stare de ok și va fi similar cu următorul:

  • {"event":"cancelOrderStatus","status":"ok"}

Pentru o solicitare de anulare care a fost respinsă, răspunsul va indica o stare de eroare, împreună cu un mesaj de eroare care indică motivul respingerii (ID ordin invalid etc.), cum ar fi următoarea respingere pentru o solicitare de anulare a unui ordin care fusese deja anulat:

  • {"errorMessage":"EOrder:Unknown order","event":"cancelOrderStatus","status":"error"}

Rețineți că, spre deosebire de endpoint-ul REST API CancelOrder, este posibil să specificați mai multe ID-uri de ordin într-un singur mesaj de anulare WebSocket. ID-urile de ordin care urmează să fie anulate ar trebui incluse ca intrări separate în cadrul array-ului txid, după cum urmează:

  • {"event":"cancelOrder", "token":"c4JjTNHSurKmWDsnrGaCxIuCOa4FurCZK2ppktvT2Yo", "txid":["OLVCRZ-DNKJI-VRTZKY","O67X6E-PBGSR-GU23R5","OECCDC-T2R4V-52CR7T"]}

Ai nevoie de mai mult ajutor?