WebSocket API v1 - sipariş verme ve iptal etme

Son güncelleme: 1 Nis 2025

WebSocket API v1'imiz, addOrder ve cancelOrder uç noktaları aracılığıyla alım satımı destekler. addOrder uç noktası yeni emirler vermek için, cancelOrder uç noktası ise mevcut (açık) emirleri iptal etmek için kullanılır.

Hem addOrder hem de cancelOrder özel uç noktalardır, yani bunlara yalnızca kimliği doğrulanmış bir WebSocket bağlantısı aracılığıyla erişilebilir.

Kimliği doğrulanmış WebSocket URL'si wss://ws-auth.kraken.com/ adresine başlangıçta bir bağlantı kurulmalı ve bu bağlantı, emirler verilirken ve iptal edilirken süresiz olarak açık tutulabilir. Tek bir WebSocket bağlantısı, birden fazla isteği desteklemek üzere tasarlanmıştır, bu nedenle alım satım uç noktalarına yapılan her çağrı için bağlanıp bağlantıyı kesmek gerekli (veya önerilen) değildir.

WebSocket kimlik doğrulaması

Bir WebSocket kimlik doğrulama jetonu, REST API GetWebSocketsToken uç noktası aracılığıyla alınabilir.

Bir jeton alındıktan sonra, özel WebSocket URL'si wss://ws-auth.kraken.com/ adresine bir bağlantı kurulabilir ve addOrder ile cancelOrder uç noktaları süresiz olarak kullanılabilir (jeton, emir vermek ve iptal etmek için kullanıldığı sürece sona ermez).

Jetonu almak için kullanılan API anahtarının hem Emirleri Değiştir hem de Emirleri İptal Et/Kapat izinlerine sahip olması gerektiğini unutmayın, aksi takdirde WebSocket API'den bir izin reddedildi hatası alınacaktır.

Emir verme

Kimliği doğrulanmış bir WebSocket bağlantısı kurulduktan sonra, aşağıdaki gibi bir mesaj gönderilerek bir emir verilebilir:

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

Daha sonra isteğin durumunu (emrin kabul edilip edilmediğini veya reddedilip reddedilmediğini) belirten bir yanıt alınacaktır. Başarıyla kabul edilen ve verilen bir emir için yanıt, durumun "ok" olduğunu belirtecek ve aşağıdakine benzer olacaktır:

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

Reddedilen ve verilmeyen bir emir için yanıt, reddedilme nedenini (geçersiz argümanlar, yetersiz fonlar vb.) belirten bir hata mesajıyla birlikte "error" durumunu gösterecektir; örneğin, minimum emir boyutunu karşılamayan bir emir için aşağıdaki ret:

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

Emir iptali

Kimliği doğrulanmış bir WebSocket bağlantısı kurulduktan sonra (veya tercihen mevcut bir bağlantı yeniden kullanıldıktan sonra), aşağıdaki gibi bir mesaj gönderilerek bir emir iptal edilebilir:

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

Daha sonra isteğin durumunu (iptalin kabul edilip edilmediğini veya reddedilip reddedilmediğini) belirten bir yanıt alınacaktır. Başarıyla iptal edilen bir emir için yanıt, durumun "ok" olduğunu belirtecek ve aşağıdakine benzer olacaktır:

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

Reddedilen bir iptal isteği için yanıt, reddedilme nedenini (geçersiz emir kimliği vb.) belirten bir hata mesajıyla birlikte "error" durumunu gösterecektir; örneğin, zaten iptal edilmiş bir emri iptal etme isteği için aşağıdaki ret:

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

REST API CancelOrder uç noktasının aksine, tek bir WebSocket iptal mesajında birden fazla sipariş kimliği belirtmek mümkündür. İptal edilecek sipariş kimlikleri, txid dizisi içinde ayrı girişler olarak aşağıdaki gibi eklenmelidir:

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

Daha fazla yardıma mı ihtiyacınız var?