WebSocket API v1 – lägga och annullera ordrar

Senast uppdaterad: 1 april 2025

Vår WebSocket API v1 stöder handel via slutpunkterna addOrder och cancelOrder. Slutpunkten addOrder används för att lägga nya ordrar och slutpunkten cancelOrder används för att annullera befintliga (öppna) ordrar.

Både addOrder och cancelOrder är privata slutpunkter, vilket innebär att de endast kan nås via en autentiserad WebSocket-anslutning.

En första anslutning bör göras till den autentiserade WebSocket-URL:en wss://ws-auth.kraken.com/ , som sedan kan hållas öppen på obestämd tid medan ordrar läggs och annulleras. En enda WebSocket-anslutning är utformad för att stödja flera förfrågningar, så det är inte nödvändigt (eller rekommenderat) att ansluta/koppla från för varje anrop till handels-slutpunkterna.

WebSocket-autentisering

En WebSocket-autentiseringstoken kan hämtas via REST API GetWebSocketsToken-slutpunkten.

När en token har hämtats kan en anslutning göras till den privata WebSocket-URL:en wss://ws-auth.kraken.com/ och slutpunkterna addOrder och cancelOrder kan sedan användas på obestämd tid (token kommer inte att upphöra att gälla så länge den används för att lägga och annullera ordrar).

Observera att API-nyckeln som används för att hämta token måste ha både behörigheterna Modify Orders och Cancel/Close Orders, annars kommer ett åtkomst nekad-fel att tas emot från WebSocket API.

Lägga en order

När en autentiserad WebSocket-anslutning har upprättats kan en order läggas genom att skicka ett meddelande som följande:

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

Ett svar kommer sedan att tas emot som indikerar statusen för förfrågan (om ordern accepterades eller avvisades). För en order som accepterades och lades framgångsrikt kommer svaret att indikera statusen ok och vara liknande följande:

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

För en order som avvisades och inte lades kommer svaret att indikera statusen error, tillsammans med ett felmeddelande som anger orsaken till avvisningen (ogiltiga argument, otillräckliga medel, etc.), såsom följande avvisning för en order som inte uppfyllde minsta orderstorlek:

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

Annullera en order

När en autentiserad WebSocket-anslutning har upprättats (eller helst en befintlig anslutning återanvänds) kan en order annulleras genom att skicka ett meddelande som följande:

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

Ett svar kommer sedan att tas emot som indikerar statusen för förfrågan (om annulleringen accepterades eller avvisades). För en order som annullerades framgångsrikt kommer svaret att indikera statusen ok och vara liknande följande:

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

För en annulleringsförfrågan som avvisades kommer svaret att indikera statusen error, tillsammans med ett felmeddelande som anger orsaken till avvisningen (ogiltigt order-ID, etc.), såsom följande avvisning för en förfrågan om att annullera en order som redan hade annullerats:

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

Observera att till skillnad från REST API CancelOrder-slutpunkten är det möjligt att ange flera order-ID:n i ett enda WebSocket-annulleringsmeddelande. Order-ID:n som ska annulleras bör inkluderas som separata poster inom txid-arrayen, enligt följande:

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

Behöver du mer hjälp?