본문 바로가기

주문과 체결

REST 기본 주소는 https://api.btxpro.co.kr입니다. 모든 요청은 서명하며, 조회는 read, 생성·취소는 trade 권한이 필요합니다.

지원하는 주문

현재는 type: "limit", timeInForce: "GTC"인 지정가 주문만 지원합니다. side는 buy 또는 sell입니다. 시장가, post-only, IOC/FOK, quote 수량 주문은 지원하지 않습니다.

주문 생성

POST https://api.btxpro.co.kr/v1/orders
Content-Type: application/json
{
  "symbol": "BTC-USDT",
  "walletId": 21,
  "side": "buy",
  "type": "limit",
  "timeInForce": "GTC",
  "quantity": "0.100000000",
  "price": "65000.000000000"
}

위 JSON은 서명 전 본문의 예시입니다. 전송할 JSON 바이트로 서명한 뒤 인증 헤더를 붙여 요청합니다. 응답은 엔진 결과를 최대 10초 기다린 후 반환하며, 성공 시 data.orderId와 주문 상태를 확인합니다. 성공·실패 모델의 전체 필드는 주문 모델을 확인하세요.

조회와 취소

메서드 경로 주요 파라미터
GET /v1/orders/open walletId, symbol, limit 선택
GET /v1/orders/history walletId, symbol, limit, startTime, endTime 선택
GET /v1/orders/{orderId} orderId 필수
DELETE /v1/orders/{orderId} orderId 필수, walletId, symbol은 일치 여부 확인용
DELETE /v1/orders walletId 필수, symbol, limit 선택
GET /v1/fills walletId, symbol, limit, startTime, endTime 선택

단건 취소 예시 경로:

DELETE /v1/orders/987654?walletId=21&symbol=BTC-USDT

서명할 쿼리는 정렬된 symbol=BTC-USDT&walletId=21입니다. 서명 예제가 전송 쿼리도 같은 방식으로 생성합니다.

일괄 취소는 지정한 지갑의 대상 주문을 선택합니다. 최대 16개 엔진 명령을 동시에 처리하고, 배치 전체가 하나의 10초 제한을 공유합니다. 결과의 items와 hasMore를 확인하세요. 개별 취소 실패도 항목별로 확인해야 하며 HTTP 성공만으로 전체 주문의 취소를 판단하면 안 됩니다.

주문 타임아웃과 재시도

ENGINE_TIMEOUT은 주문이 실패했다는 확정 응답이 아닙니다. 엔진에서 처리됐지만 응답을 받지 못했을 수 있습니다.

  1. 같은 생성·취소 요청을 자동으로 다시 보내지 않습니다.
  2. 미체결 주문, 주문 이력, 체결 이력을 조회합니다.
  3. 개인 WS를 사용한다면 재연결 후 새 스냅샷도 반영합니다.
  4. 결과를 식별하지 못하면 중복 주문 위험을 감수하는 자동 재전송 대신 운영 확인 절차로 전환합니다.

고객 주문 ID, 멱등성 키, 요청 상태 조회 엔드포인트는 현재 없습니다. requestId와 WS 명령 id는 요청·응답을 연결하는 값입니다.