WebSocket API v1 - orders plaatsen en annuleren

Laatst bijgewerkt: 1 apr 2025

Onze WebSocket API v1 ondersteunt handelen via de addOrder en cancelOrder eindpunten. Het addOrder eindpunt wordt gebruikt voor het plaatsen van nieuwe orders en het cancelOrder eindpunt wordt gebruikt voor het annuleren van bestaande (open) orders.

Zowel addOrder als cancelOrder zijn privé-eindpunten, wat betekent dat ze alleen toegankelijk zijn via een geauthenticeerde WebSocket-verbinding.

Een initiële verbinding moet worden gemaakt met de geauthenticeerde WebSocket-URL wss://ws-auth.kraken.com/ , die vervolgens onbeperkt open kan blijven terwijl orders worden geplaatst en geannuleerd. Eén enkele WebSocket-verbinding is ontworpen om meerdere verzoeken te ondersteunen, dus het is niet nodig (of aanbevolen) om te verbinden/verbreken voor elke aanroep naar de handels-eindpunten.

WebSocket-authenticatie

Een WebSocket-authenticatietoken kan worden opgehaald via het REST API GetWebSocketsToken eindpunt.

Zodra een token is opgehaald, kan een verbinding worden gemaakt met de privé WebSocket-URL wss://ws-auth.kraken.com/ en de addOrder en cancelOrder eindpunten kunnen dan onbeperkt worden gebruikt (het token verloopt niet zolang het wordt gebruikt om orders te plaatsen en te annuleren).

Merk op dat de API-sleutel die wordt gebruikt om het token op te halen, zowel de Orders wijzigen als Orders annuleren/sluiten machtigingen moet hebben, anders wordt er een foutmelding 'toegang geweigerd' ontvangen van de WebSocket API.

Een order plaatsen

Zodra een geauthenticeerde WebSocket-verbinding tot stand is gebracht, kan een order worden geplaatst door een bericht te sturen zoals het volgende:

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

Er wordt dan een antwoord ontvangen dat de status van het verzoek aangeeft (of de order is geaccepteerd of geweigerd). Voor een order die succesvol is geaccepteerd en geplaatst, zal het antwoord de status 'ok' aangeven en vergelijkbaar zijn met het volgende:

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

Voor een order die is geweigerd en niet is geplaatst, zal het antwoord de status 'error' aangeven, samen met een foutmelding die de reden voor de afwijzing aangeeft (ongeldige argumenten, onvoldoende saldo, enz.), zoals de volgende afwijzing voor een order die niet voldeed aan de minimale ordergrootte:

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

Een order annuleren

Zodra een geauthenticeerde WebSocket-verbinding tot stand is gebracht (of bij voorkeur een bestaande verbinding is hergebruikt), kan een order worden geannuleerd door een bericht te sturen zoals het volgende:

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

Er wordt dan een antwoord ontvangen dat de status van het verzoek aangeeft (of de annulering is geaccepteerd of geweigerd). Voor een order die succesvol is geannuleerd, zal het antwoord de status 'ok' aangeven en vergelijkbaar zijn met het volgende:

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

Voor een annuleringsverzoek dat is geweigerd, zal het antwoord de status 'error' aangeven, samen met een foutmelding die de reden voor de afwijzing aangeeft (ongeldige order-ID, enz.), zoals de volgende afwijzing voor een verzoek om een order te annuleren die al was geannuleerd:

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

Merk op dat het, in tegenstelling tot het REST API CancelOrder-eindpunt, mogelijk is om meerdere order-ID's op te geven in één enkel WebSocket-annuleringsbericht. De te annuleren order-ID's moeten als afzonderlijke vermeldingen binnen de txid-array worden opgenomen, als volgt:

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

Meer hulp nodig?