WebSocket API v1 - legge inn og kansellere ordre

Sist oppdatert: 1. april 2025

Vår WebSocket API v1 støtter handel via addOrder- og cancelOrder-endepunktene. addOrder-endepunktet brukes til å legge inn nye ordre, og cancelOrder-endepunktet brukes til å kansellere eksisterende (åpne) ordre.

Både addOrder og cancelOrder er private endepunkter, noe som betyr at de kun kan aksesseres via en autentisert WebSocket-tilkobling.

En innledende tilkobling bør opprettes til den autentiserte WebSocket-URL-en wss://ws-auth.kraken.com/ , som deretter kan holdes åpen på ubestemt tid mens ordre legges inn og kanselleres. En enkelt WebSocket-tilkobling er designet for å støtte flere forespørsler, så det er ikke nødvendig (eller anbefalt) å koble til/fra for hvert kall til handelsendepunktene.

WebSocket-autentisering

Et WebSocket-autentiseringstoken kan hentes via REST API GetWebSocketsToken-endepunktet.

Når et token er hentet, kan en tilkobling opprettes til den private WebSocket-URL-en wss://ws-auth.kraken.com/ og addOrder- og cancelOrder-endepunktene kan deretter brukes på ubestemt tid (tokenet vil ikke utløpe mens det brukes til å legge inn og kansellere ordre).

Merk at API-nøkkelen som brukes til å hente tokenet, må ha både Modify Orders- og Cancel/Close Orders-tillatelser, ellers vil en feilmelding om nektet tilgang mottas fra WebSocket API.

Legge inn en ordre

Når en autentisert WebSocket-tilkobling er etablert, kan en ordre legges inn ved å sende en melding som følgende:

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

En respons vil deretter mottas som indikerer statusen for forespørselen (om ordren ble akseptert eller avvist). For en ordre som ble akseptert og plassert vellykket, vil responsen indikere en status på ok og være lik følgende:

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

For en ordre som ble avvist og ikke plassert, vil responsen indikere en status på feil, sammen med en feilmelding som indikerer årsaken til avvisningen (ugyldige argumenter, utilstrekkelige midler osv.), for eksempel følgende avvisning for en ordre som ikke oppfylte minimum ordrestørrelse:

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

Kansellere en ordre

Når en autentisert WebSocket-tilkobling er etablert (eller helst en eksisterende tilkobling gjenbrukes), kan en ordre kanselleres ved å sende en melding som følgende:

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

En respons vil deretter mottas som indikerer statusen for forespørselen (om kanselleringen ble akseptert eller avvist). For en ordre som ble kansellert vellykket, vil responsen indikere en status på ok og være lik følgende:

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

For en kanselleringsforespørsel som ble avvist, vil responsen indikere en status på feil, sammen med en feilmelding som indikerer årsaken til avvisningen (ugyldig ordre-ID osv.), for eksempel følgende avvisning for en forespørsel om å kansellere en ordre som allerede var kansellert:

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

Merk at i motsetning til REST API CancelOrder-endepunktet, er det mulig å spesifisere flere ordre-ID-er i en enkelt WebSocket-kanselleringsmelding. Ordre-ID-ene som skal kanselleres, bør inkluderes som separate oppføringer i txid-arrayet, som følger:

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

Trenger du mer hjelp?