WebSocket API v1 - 주문 제출 및 취소

최종 업데이트: 2025년 4월 1일

당사의 WebSocket API v1은 addOrdercancelOrder 엔드포인트를 통해 거래를 지원합니다. addOrder 엔드포인트는 신규 주문을 제출하는 데 사용되며, cancelOrder 엔드포인트는 기존(미체결) 주문을 취소하는 데 사용됩니다.

addOrdercancelOrder 모두 비공개 엔드포인트이며, 이는 인증된 WebSocket 연결을 통해서만 접근할 수 있음을 의미합니다.

초기 연결은 인증된 WebSocket URL인 wss://ws-auth.kraken.com/ 에 이루어져야 하며, 이 연결은 주문이 제출되고 취소되는 동안 무기한으로 유지될 수 있습니다. 단일 WebSocket 연결은 여러 요청을 지원하도록 설계되었으므로, 거래 엔드포인트에 대한 각 호출마다 연결/연결 해제할 필요는 없습니다(권장되지도 않습니다).

WebSocket 인증

WebSocket 인증 토큰은 REST API GetWebSocketsToken 엔드포인트를 통해 검색할 수 있습니다.

토큰이 검색되면, 비공개 WebSocket URL인 wss://ws-auth.kraken.com/에 연결할 수 있으며, addOrdercancelOrder 엔드포인트를 무기한으로 사용할 수 있습니다(토큰은 주문을 제출하고 취소하는 데 사용되는 동안 만료되지 않습니다).

토큰을 검색하는 데 사용되는 API 키Modify OrdersCancel/Close Orders 권한을 모두 가지고 있어야 합니다. 그렇지 않으면 WebSocket API에서 권한 거부 오류가 발생합니다.

주문 제출

인증된 WebSocket 연결이 설정되면, 다음과 같은 메시지를 전송하여 주문을 제출할 수 있습니다:

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

그러면 요청의 상태(주문이 수락되었는지 또는 거부되었는지)를 나타내는 응답이 수신됩니다. 성공적으로 수락 및 제출된 주문의 경우, 응답은 상태가 ok임을 나타내며 다음과 유사합니다:

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

거부되어 제출되지 않은 주문의 경우, 응답은 error 상태와 함께 거부 이유(잘못된 인수, 자금 부족 등)를 나타내는 오류 메시지를 표시합니다. 예를 들어, 최소 주문 규모를 충족하지 못한 주문에 대한 거부 메시지는 다음과 같습니다:

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

주문 취소

인증된 WebSocket 연결이 설정되면(또는 기존 연결을 재사용하는 것이 바람직함), 다음과 같은 메시지를 전송하여 주문을 취소할 수 있습니다:

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

그러면 요청의 상태(취소가 수락되었는지 또는 거부되었는지)를 나타내는 응답이 수신됩니다. 성공적으로 취소된 주문의 경우, 응답은 상태가 ok임을 나타내며 다음과 유사합니다:

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

거부된 취소 요청의 경우, 응답은 error 상태와 함께 거부 이유(잘못된 주문 ID 등)를 나타내는 오류 메시지를 표시합니다. 예를 들어, 이미 취소된 주문을 취소하려는 요청에 대한 거부 메시지는 다음과 같습니다:

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

REST API CancelOrder 엔드포인트와 달리, 단일 WebSocket 취소 메시지에서 여러 주문 ID를 지정할 수 있습니다. 취소할 주문 ID는 txid 배열 내에 별도의 항목으로 포함되어야 하며, 다음과 같습니다:

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

더 많은 도움이 필요하신가요?