Skip to content

2. API Document

Kapoo edited this page Dec 7, 2021 · 6 revisions

2. API Document

이 장은 Upbit API for JAVA 라이브러리가 제공하는 메서드에 대해 기술합니다.

제공되는 메서드는 패키지 test.java에서 확인 및 테스트할 수 있습니다. (몇몇 메소드는 Upbit API Key를 요구합니다)




2-1. API 목록

구현된 API는 아래와 같습니다.

  • 인증
    • ✅ 인증 토큰
    • ✅ 파라미터가 있는 인증 토큰
  • QUOTATION API
    • 시세 종목 조회
      • ✅ 마켓 코드 조회
    • 시세 캔들 조회
      • ✅ 분(Minute) 캔들
      • ✅ 일(Day) 캔들
      • ✅ 주(Week) 캔들
      • ✅ 월(Month) 캔들
    • 시세 체결 조회
      • ✅ 최근 체결 내역
    • 시세 Ticker 조회
      • ✅ 현재가 정보
    • 시세 호가 정보(Orderbook) 조회
      • ✅ 호가 정보 조회
  • EXCHANGE API
    • 자산
      • ✅ 전체 계좌 조회
    • 주문
      • ✅ 주문 가능 정보
      • ✅ 개별 주문 정보
      • ✅ 주문 리스트 조회
      • ✅ 주문 취소 접수
      • ✅ 주문하기
    • 출금
      • ❌ 출금 리스트 조회
      • ❌ 개별 출금 조회
      • ❌ 출금 가능 정보
      • ❌ 코인 출금하기
      • ❌ 원화 출금하기
    • 입금
      • ❌ 입금 리스트 조회
      • ❌ 개별 입금 조회
      • ❌ 입금 주소 생성 요청
      • ❌ 전체 입금 주소 조회
      • ❌ 개별 입금 주소 조회
      • ❌ 원화 입금하기
    • 서비스 정보
      • ❌ 입출금 현황
      • ❌ API 키 리스트 조회

업비트의 전체 API는 여기에서 확인할 수 있습니다.



2-2. UpbitResponse

인증을 제외한 EXCHANGE API, QUOTATION APIUpbitResponse<T>라는 규격화된 응답을 제공합니다.

T는 제네릭 클래스로, Upbit 응답을 구현한 Bean 객체가 주로 할당됩니다.

구분 타입 설명
status int HTTP 응답 코드
isSuccess boolean 연결 성공 여부
body T 응답 객체
raw String 응답 원본
error String 에러 코드
errorMessage String 에러 설명

isSuccesstrue일 경우 errorerrorMessagenull을 가집니다.

반대로 isSuccessfalse일 경우, bodynull을 가집니다.

isSuccess로 단순 연결 여부를 확인할 수 있으며, status를 활용하여 응답 코드별로 로직을 분리할 수도 있습니다.



2-3. 인증

인증 JWT 토큰을 받아오는 API입니다.

요청을 직접 커스텀하여 보내고 싶을 경우, 인증 정보만을 받아와서 요청을 구성하는데 사용할 수 있습니다.

AuthApi authApi = new AuthApi("{API Key}", "{SECRET Key}");

클래스 선언은 위와 같습니다.


2-3-1. 인증 토큰

인증 토큰을 반환하는 API입니다. 요청에 별다른 파라미터가 포함되지 않을 경우 사용합니다.

AuthApi authApi = new AuthApi("{API Key}", "{SECRET Key}");

String jwt = authApi.getAuthToken();

메서드 사용법은 위와 같습니다.

JWT에 포함되는 내용은 아래와 같습니다.

{
    "access_key": "발급 받은 acccess key (필수)",
    "nonce": "무작위의 UUID 문자열 (필수)"
}
구분 타입 설명
access_key String API Key
nonce String 무작위 UUID

위 내용의 JSON을 토대로 JWT를 만들어 사용합니다.


2-3-2. 파라미터가 있는 인증 토큰

동일한 인증 토큰이지만, 파라미터가 포함된 인증 토큰을 반환합니다.

{
   "access_key": "발급 받은 acccess key (필수)",
   "nonce": "무작위의 UUID 문자열 (필수)",
   "query_hash": "해싱된 query string (파라미터가 있을 경우 필수)",
   "query_hash_alg": "query_hash를 생성하는 데에 사용한 알고리즘 (기본값 : SHA512)"
}
구분 타입 설명
access_key String API Key
nonce String 무작위 UUID
query_hash String 해싱된 쿼리 내용
query_hash_alg String 해싱 알고리즘

요청의 내용을 SHA-512로 암호화하여 query_hash에 포함하여 전달합니다.

Upbit에서 API 요청을 수행할 때, 요청의 쿼리문과 JWT의 암호화된 쿼리문을 비교하여, 다를 경우 요청이 수행되지 않습니다.



2-4. QUOTATION API

Upbit의 QUOTATION API입니다. 코인의 시세와 관련된 API이므로, 인증을 요구하지 않는 API들입니다.

UpbitApi upbitApi = new UpbitApi();

클래스 선언은 위와 같습니다.


2-4-1. 시세 종목 조회 - 마켓 코드 조회

Upbit에서 거래 가능한 마켓 목록을 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<MarketCode[]> response = upbitApi.getMarketCodes(isDetail);
구분 타입 내용
isDetail boolean 상세정보 노출 여부

응답

MarketCode의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 마켓 코드
korean_name String 마켓 한글명
english_name String 마켓 영문명
market_warning String 유의 종목 여부 (NONE, CAUTION)

market_warningisDetail=true일 경우에만 포함됩니다.


2-4-2. 시세 캔들 조회 - 분(Minute) 캔들

지정된 코인의 분 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<MinuteCandle[]> response1 = upbitApi.getMinuteCandles(unit, market);
UpbitResponse<MinuteCandle[]> response2 = upbitApi.getMinuteCandles(unit, market, to, count);
구분 타입 내용
unit int 분 단위 (1, 3, 5, 10, 15, 30, 60, 240)
market String 마켓 코드
to String 마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
count int 캔들 갯수 (최대 200) (기본값: 1)

제공되는 메서드는 to, count 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.


응답

MinuteCandle의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 마켓명
candle_date_time_utc String 캔들 기준 시각(UTC 기준)
candle_date_time_kst String 캔들 기준 시각(KST 기준)
opening_price double 시가
high_price double 고가
low_price double 저가
trade_price double 종가
timestamp long 해당 캔들에서 마지막 틱이 저장된 시각
candle_acc_trade_price double 누적 거래 금액
candle_acc_trade_volume double 누적 거래량
unit int 분 단위(유닛)

2-4-3. 시세 캔들 조회 - 일(Day) 캔들

지정된 코인의 일 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<DayCandle[]> response1 = upbitApi.getDayCandles(market);
UpbitResponse<DayCandle[]> response2 = upbitApi.getDayCandles(market, to, count, convertingPriceUnit);
구분 타입 내용
market String 마켓 코드
to String 마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
count int 캔들 갯수 (최대 200) (기본값: 1)
convertingPriceUnit String 종가 환산 화폐 단위 (KRW)

제공되는 메서드는 to, count, convertingPriceUnit 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.

convertingPriceUnit는 현재 원화(KRW)만을 지원합니다. 원화 마켓이 아닌 다른 마켓의 캔들을 요청할 경우, convertingPriceUnit=KRW라면 종가 금액을 환산하여 converted_trade_price로 제공합니다.

현재까지는 KRW만 지원하며, 추후 확장 가능성이 있습니다.


응답

DayCandle의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 마켓명
candle_date_time_utc String 캔들 기준 시각(UTC 기준)
candle_date_time_kst String 캔들 기준 시각(KST 기준)
opening_price double 시가
high_price double 고가
low_price double 저가
trade_price double 종가
timestamp long 마지막 틱이 저장된 시각
candle_acc_trade_price double 누적 거래 금액
candle_acc_trade_volume double 누적 거래량
prev_closing_price double 전일 종가(UTC 0시 기준)
change_price double 전일 종가 대비 변화 금액
change_rate double 전일 종가 대비 변화량
converted_trade_price double 종가 환산 화폐 단위로 환산된 가격(요청에 convertingPriceUnit 파라미터 없을 시 해당 필드 포함되지 않음.)

2-4-4. 시세 캔들 조회 - 주(Week) 캔들

지정된 코인의 주 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<Candle[]> response1 = upbitApi.getWeekCandles(market);
UpbitResponse<Candle[]> response2 = upbitApi.getWeekCandles(market, to, count);
구분 타입 내용
market String 마켓 코드
to String 마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
count int 캔들 갯수 (최대 200) (기본값: 1)

제공되는 메서드는 to, count 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.


응답

Candle의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 마켓명
candle_date_time_utc String 캔들 기준 시각(UTC 기준)
candle_date_time_kst String 캔들 기준 시각(KST 기준)
opening_price double 시가
high_price double 고가
low_price double 저가
trade_price double 종가
timestamp long 마지막 틱이 저장된 시각
candle_acc_trade_price double 누적 거래 금액
candle_acc_trade_volume double 누적 거래량
first_day_of_period String 캔들 기간의 가장 첫 날

2-4-5. 시세 캔들 조회 - 월(Month) 캔들

지정된 코인의 월 단위 캔들 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<Candle[]> response1 = upbitApi.getMonthCandles(market);
UpbitResponse<Candle[]> response2 = upbitApi.getMonthCandles(market, to, count);
구분 타입 내용
market String 마켓 코드
to String 마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
count int 캔들 갯수 (최대 200) (기본값: 1)

제공되는 메서드는 to, count 파라미터의 생략 여부에 따라 두 가지로 제공됩니다.


응답

Candle의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 마켓명
candle_date_time_utc String 캔들 기준 시각(UTC 기준)
candle_date_time_kst String 캔들 기준 시각(KST 기준)
opening_price double 시가
high_price double 고가
low_price double 저가
trade_price double 종가
timestamp long 마지막 틱이 저장된 시각
candle_acc_trade_price double 누적 거래 금액
candle_acc_trade_volume double 누적 거래량
first_day_of_period String 캔들 기간의 가장 첫 날

일 캔들과 주 캔들의 경우 응답 형태가 완전히 동일하므로 Candle 객체를 공유합니다.


2-4-6. 시세 체결 조회 - 최근 체결 내역

지정된 코인의 최근 체결(Ticks) 내역에 대한 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<Tick[]> response1 = upbitApi.getTicks(market);
UpbitResponse<Tick[]> response2 = upbitApi.getTicks(market, to, count, cursor, daysAgo);
구분 타입 내용
market String 마켓 코드
to String 마지막 캔들 시간 (yyyy-MM-ddTHH:mm:ssZ, yyyy-MM-dd) (기본값: 현재시간)
count int 캔들 갯수 (최대 200) (기본값: 1)
cursor String 페이지네이션 커서 (sequentialId)
daysAgo int 최근 체결 날짜 기준의 이전 데이터 (1 ~ 7일 이전 조회 가능)

파라미터에 따라 두 메서드로 구분됩니다.

cursor는 거래 고유값인 sequentialId를 기준으로 표시해줍니다. 지정한 sequentialId의 체결 내역부터 순차적으로 내역을 제공합니다.

daysAgo가 5일 경우, to 기준(생략할 경우 현재 시각)으로 5일 이전의 체결 내역을 제공합니다.


응답

Tick의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 마켓 구분 코드
trade_date_utc String 체결 일자(UTC 기준)
trade_time_utc String 체결 시각(UTC 기준)
timestamp long 체결 타임스탬프
trade_price double 체결 가격
trade_volume double 체결량
prev_closing_price double 전일 종가
change_price double 변화량
ask_bid String 매도/매수
sequential_id long 체결 번호(Unique)

2-4-7. 시세 Ticker 조회 - 현재가 정보

지정된 코인의 시세 Ticker에 대한 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<Ticker[]> response = upbitApi.getTickers(markets);
구분 타입 내용
markets String[] 마켓 코드 배열

배열을 통해 여러 마켓 코드를 조회할 수 있습니다.


응답

Ticker의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
market String 종목 구분 코드
trade_date String 최근 거래 일자(UTC)
trade_time String 최근 거래 시각(UTC)
trade_date_kst String 최근 거래 일자(KST)
trade_time_kst String 최근 거래 시각(KST)
opening_price double 시가
high_price double 고가
low_price double 저가
trade_price double 종가
prev_closing_price double 전일 종가
change String 변화값 (EVEN, RISE, FALL)
change_price double 변화액의 절대값
change_rate double 변화율의 절대값
signed_change_price double 부호가 있는 변화액
signed_change_rate double 부호가 있는 변화율
trade_volume double 가장 최근 거래량
acc_trade_price double 누적 거래대금(UTC 0시 기준)
acc_trade_price_24h double 24시간 누적 거래대금
acc_trade_volume double 누적 거래량(UTC 0시 기준)
acc_trade_volume_24h double 24시간 누적 거래량
highest_52_week_price double 52주 신고가
highest_52_week_date String 52주 신고가 달성일
lowest_52_week_price double 52주 신저가
lowest_52_week_date String 52주 신저가 달성일
timestamp long 타임스탬프

2-4-8. 시세 호가 정보(Orderbook) 조회 - 호가 정보 조회

지정된 코인의 호가 정보에 대한 정보를 제공합니다.

공식 API


요청

UpbitApi upbitApi = new UpbitApi();

UpbitResponse<OrderBook[]> response = upbitApi.getOrderBooks(markets);
구분 타입 내용
markets String[] 마켓 코드 배열

배열을 통해 여러 마켓 코드를 조회할 수 있습니다.


응답

OrderBook의 배열로 이루어진 응답을 반환합니다.

  • OrderBook
구분 타입 내용
market String 마켓 코드
timestamp long 호가 생성 시각
total_ask_size double 호가 매도 총 잔량
total_bid_size double 호가 매수 총 잔량
orderbook_units OrderBookUnit[] 호가
  • OrderBookUnit
구분 타입 내용
ask_price double 매도호가
bid_price double 매수호가
ask_size double 매도 잔량
bid_size double 매수 잔량

orderbook_unitsOrderBookUnit 객체의 배열을 가집니다.

OrderBookUnit은 호가를 의미하며, 1호가 부터 15호가까지의 호가 정보를 배열에 담아 제공합니다.



2-5. EXCHANGE API

Upbit의 EXCHANGE API입니다. 자산, 주문, 입출금과 같이 사용자의 자산에 직접적인 영향을 미치는 API들로 이루어져 있습니다.

이러한 특성으로 인해, EXCHANGE API는 인증 토큰을 반드시 요구합니다.

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);
구분 타입 내용
api String API Key
secret String Secret Key

클래스 선언은 위와 같습니다.

Upbit에서 반드시 API 키를 발급받아야 사용할 수 있습니다. UpbitAuthApi는 인증이 필요한 API 이외에도 인증이 필요하지 않는 UpbitApi의 메서드도 포함되어 있습니다.


2-5-1. 자산 - 전체 계좌 조회

보유한 자산 리스트를 제공합니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Account[]> response = upbitAuthApi.getAccounts();

응답

Account의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
currency String 화폐를 의미하는 영문 대문자 코드
balance String 주문가능 금액/수량
locked String 주문 중 묶여있는 금액/수량
avg_buy_price String 매수평균가
avg_buy_price_modified boolean 매수평균가 수정 여부
unit_currency String 평단가 기준 화폐

사용자가 가진 코인 종류의 갯수만큼 줄력됩니다.


2-5-2. 주문 - 주문 가능 정보

코인별 주문 가능 정보를 제공합니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<OrderInfo> response = upbitAuthApi.getOrderInfo(market);
구분 타입 내용
market String 마켓 코드

응답

OrderInfo으로 이루어진 응답을 반환합니다.

  • OrderInfo
구분 타입 내용
bid_fee String 매수 수수료 비율
ask_fee String 매도 수수료 비율
market Market 마켓에 대한 정보
bid_account Account 매수 시 사용하는 화폐의 계좌 상태
ask_account Account 매도 시 사용하는 화폐의 계좌 상태
  • Market
구분 타입 내용
id String 마켓의 유일 키
name String 마켓 이름
order_types String 지원 주문 방식
order_sides String 지원 주문 종류
bid MarketAskBid 매수 시 제약사항
ask MarketAskBid 매도 시 제약사항
max_total String 최대 매도/매수 금액
state String 마켓 운영 상태
  • MarketAskBid
구분 타입 내용
ask.currency String 화폐를 의미하는 영문 대문자 코드
ask.price_unit String 주문금액 단위
ask.min_total int 최소 매도/매수 금액
  • Account
구분 타입 내용
currency String 화폐를 의미하는 영문 대문자 코드
balance String 주문가능 금액/수량
locked String 주문 중 묶여있는 금액/수량
avg_buy_price String 매수평균가
avg_buy_price_modified boolean 매수평균가 수정 여부
unit_currency String 평단가 기준 화폐

OrderInfo는 내부 응답의 여러 사용자 정의 객체를 포함하고 있습니다.

그 중 Account의 경우 자산 - 전체 계좌 조회의 응답 객체와 동일합니다.


2-5-3. 주문 - 개별 주문 조회

주문 UUID를 통한 개별 주문의 정보를 제공합니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<OrderDetail> response1 = upbitAuthApi.getOrder(uuid);
UpbitResponse<OrderDetail> response2 = upbitAuthApi.getOrder(uuid, identifier);
구분 타입 내용
uuid String 마켓 코드
identifier String 조회용 사용자 지정값

identifier는 API 주문 요청 시, 사용자가 직접 지정할 수 있는 주문의 고유키입니다.

통상 주문별로 자동으로 부여되는 UUID를 많이 사용하므로, identifier 단독 요청 메서드는 따로 구현하지 않았습니다.


응답

OrderDetail로 이루어진 응답을 반환합니다.

  • OrderDetail
구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수
trades Trade[] 체결
  • Trade
구분 타입 내용
market String 마켓의 유일 키
uuid String 체결의 고유 아이디
price String 체결 가격
volume String 체결 양
funds String 체결된 총 가격
side String 체결 종류
created_at String 체결 시각

2-5-4. 주문 - 주문 리스트 조회

주문 리스트를 제공합니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Order[]> response1 = upbitAuthApi.getOrderLists();
UpbitResponse<Order[]> response2 = upbitAuthApi.getOrderLists(market, state);
UpbitResponse<Order[]> response3 = upbitAuthApi.getOrderLists(market, uuids, identifiers, state, states, page, limit, order_by);
구분 타입 내용
market String 마켓 아이디
uuids String[] 주문 UUID의 목록
identifiers String[] 주문 identifier의 목록
state String 주문 상태 (wait - 기본값, watch, done, cancel)
states String[] 주문 상태의 목록
page int 페이지 수 (기본값: 1)
limit int 요청 개수 (기본값: 100)
order_by String 정렬 방식 (asc, desc - 기본값)
  • wait - 체결 대기 중인 거래 내역으로, 기본값입니다.
  • watch - 예약 대기 중인 거래 내역입니다. 예약 매도/매수 내역과 동일합니다. (체결 대기가 아님)
  • done - 체결 완료된 거래 내역입니다. 매도/매수가 완료된 내역과 동일합니다.
  • cancel - 주문 취소된 거래 내역입니다.

응답

Order의 배열로 이루어진 응답을 반환합니다.

구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수

2-5-5. 주문 - 주문 취소 접수

주문 취소 접수 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Order> response1 = upbitAuthApi.deleteOrder(uuid);
UpbitResponse<Order> response2 = upbitAuthApi.deleteOrder(uuid, identifier);
구분 타입 내용
uuid String 취소할 주문의 UUID
identifier String 조회용 사용자 지정값

응답

Order로 이루어진 응답을 반환합니다.

구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수

2-5-6. 주문 - 매수 시장가 주문하기

매수 시장가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

주문 API는 총 6개가 제공됩니다.

  • 매수 시장가 주문 (필수 파라미터)
  • 매수 시장가 주문 (전체 파라미터)
  • 매수 지정가 주문
  • 매도 시장가 주문 (필수 파라미터)
  • 매도 시장가 주문 (전체 파라미터)
  • 매도 지정가 주문

지정된 코인의 현재 시세를 기준으로 원하는 금액만큼 구매합니다.

공식 API

Upbit의 주문하기 API는 하나인데요?
Upbit의 주문 API는 매도/매수 및 시장가/지정가의 요청이 전부 하나의 API로 사용하도록 구성되어있습니다. 매도/매수, 시장가/지정가의 요청에 따라 특정 파라미터를 비우거나, 필수로 삽입해야하기 때문에 사용에 혼돈을 유발할 가능성이 높습니다.
이를 방지하기 위해서, 매도/매수, 시장가/지정가의 API를 분리하여 좀 더 직관적인 API 활용이 가능하도록 유도했습니다.


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Order> response1 = upbitAuthApi.postBuyOrder(market, price);
UpbitResponse<Order> response2 = upbitAuthApi.postBuyOrder(market, price, identifier);
구분 타입 내용
market String 마켓 ID
price int 주문 가격
identifier String 조회용 사용자 지정값

이전의 조회 메서드에 있던 identifier 파라미터가 주문 API에서 입력하는 identifier입니다.

주문 시 identifier를 특정할 경우, Upbit에서 자동으로 입력해주는 UUID 외에도 사용자가 임의로 고유값을 지정해줄 수 있습니다.

고유값이므로, 한 계정 내에서 기존에 사용됐던 identifier를 사용하여 주문할 경우 오류가 출력되니 주의하시기 바랍니다.


응답

Order로 이루어진 응답을 반환합니다.

구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수

2-5-7. 주문 - 매수 지정가 주문하기

매수 지정가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

지정된 코인을 원하는 시세에 원하는 수량만큼 구매합니다. 즉, 예약 매수입니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Order> response1 = upbitAuthApi.postLimitOrder(market, side, volume, price, identifier);
구분 타입 내용
market String 마켓 ID
side String 주문 종류. bid로 고정
volume int 주문 양
price int 주문 가격
identifier String 조회용 사용자 지정값

매수일 경우 side는 반드시 bid로 고정해야합니다.

지정가 매도/매수는 동일한 메서드를 사용하므로, side 입력에 주의하시기 바랍니다.


응답

Order로 이루어진 응답을 반환합니다.

구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수

2-5-8. 주문 - 매도 시장가 주문하기

매도 시장가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

지정된 코인의 현재 시세를 기준으로 원하는 갯수만큼 판매합니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Order> response1 = upbitAuthApi.postSellOrder(market, volume);
UpbitResponse<Order> response2 = upbitAuthApi.postSellOrder(market, volume, identifier);
구분 타입 내용
market String 마켓 ID
price int 주문 양
identifier String 조회용 사용자 지정값

매수와 달리, 원하는 코인의 갯수를 판매합니다.


응답

Order로 이루어진 응답을 반환합니다.

구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수

2-5-9. 주문 - 매도 지정가 주문하기

매도 지정가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.

지정된 코인을 원하는 시세에 원하는 수량만큼 판매합니다. 즉, 예약 매도입니다.

공식 API


요청

UpbitAuthApi upbitAuthApi = new UpbitAuthApi(api, secret);

UpbitResponse<Order> response1 = upbitAuthApi.postLimitOrder(market, side, volume, price, identifier);
구분 타입 내용
market String 마켓 ID
side String 주문 종류. ask로 고정
volume int 주문 양
price int 주문 가격
identifier String 조회용 사용자 지정값

매도일 경우 side는 반드시 ask로 고정해야합니다.

지정가 매도/매수는 동일한 메서드를 사용하므로, side 입력에 주의하시기 바랍니다.


응답

Order로 이루어진 응답을 반환합니다.

구분 타입 내용
uuid String 주문의 고유 아이디
side String 주문 종류
ord_type String 주문 방식
price String 주문 당시 화폐 가격
state String 주문 상태
market String 마켓의 유일키
created_at String 주문 생성 시간
volume String 사용자가 입력한 주문 양
remaining_volume String 체결 후 남은 주문 양
reserved_fee String 수수료로 예약된 비용
remaining_fee String 남은 수수료
paid_fee String 사용된 수수료
locked String 거래에 사용중인 비용
executed_volume String 체결된 양
trade_count int 해당 주문에 걸린 체결 수