-
Notifications
You must be signed in to change notification settings - Fork 1
2. API Document
이 장은 Upbit API for JAVA 라이브러리가 제공하는 메서드에 대해 기술합니다.
제공되는 메서드는 패키지 test.java에서 확인 및 테스트할 수 있습니다. (몇몇 메소드는 Upbit API Key를 요구합니다)
구현된 API는 아래와 같습니다.
- 인증
- ✅ 인증 토큰
- ✅ 파라미터가 있는 인증 토큰
- QUOTATION API
- 시세 종목 조회
- ✅ 마켓 코드 조회
- 시세 캔들 조회
- ✅ 분(Minute) 캔들
- ✅ 일(Day) 캔들
- ✅ 주(Week) 캔들
- ✅ 월(Month) 캔들
- 시세 체결 조회
- ✅ 최근 체결 내역
- 시세 Ticker 조회
- ✅ 현재가 정보
- 시세 호가 정보(Orderbook) 조회
- ✅ 호가 정보 조회
- 시세 종목 조회
- EXCHANGE API
- 자산
- ✅ 전체 계좌 조회
- 주문
- ✅ 주문 가능 정보
- ✅ 개별 주문 정보
- ✅ 주문 리스트 조회
- ✅ 주문 취소 접수
- ✅ 주문하기
- 출금
- ❌ 출금 리스트 조회
- ❌ 개별 출금 조회
- ❌ 출금 가능 정보
- ❌ 코인 출금하기
- ❌ 원화 출금하기
- 입금
- ❌ 입금 리스트 조회
- ❌ 개별 입금 조회
- ❌ 입금 주소 생성 요청
- ❌ 전체 입금 주소 조회
- ❌ 개별 입금 주소 조회
- ❌ 원화 입금하기
- 서비스 정보
- ❌ 입출금 현황
- ❌ API 키 리스트 조회
- 자산
업비트의 전체 API는 여기에서 확인할 수 있습니다.
인증을 제외한 EXCHANGE API, QUOTATION API는 UpbitResponse<T>라는 규격화된 응답을 제공합니다.
T는 제네릭 클래스로, Upbit 응답을 구현한 Bean 객체가 주로 할당됩니다.
| 구분 | 타입 | 설명 |
|---|---|---|
| status | int |
HTTP 응답 코드 |
| isSuccess | boolean |
연결 성공 여부 |
| body | T |
응답 객체 |
| raw | String |
응답 원본 |
| error | String |
에러 코드 |
| errorMessage | String |
에러 설명 |
isSuccess가 true일 경우 error와 errorMessage는 null을 가집니다.
반대로 isSuccess가 false일 경우, body가 null을 가집니다.
isSuccess로 단순 연결 여부를 확인할 수 있으며, status를 활용하여 응답 코드별로 로직을 분리할 수도 있습니다.
인증 JWT 토큰을 받아오는 API입니다.
요청을 직접 커스텀하여 보내고 싶을 경우, 인증 정보만을 받아와서 요청을 구성하는데 사용할 수 있습니다.
AuthApi authApi = new AuthApi("{API Key}", "{SECRET Key}");클래스 선언은 위와 같습니다.
인증 토큰을 반환하는 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를 만들어 사용합니다.
동일한 인증 토큰이지만, 파라미터가 포함된 인증 토큰을 반환합니다.
{
"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의 암호화된 쿼리문을 비교하여, 다를 경우 요청이 수행되지 않습니다.
Upbit의 QUOTATION API입니다. 코인의 시세와 관련된 API이므로, 인증을 요구하지 않는 API들입니다.
UpbitApi upbitApi = new UpbitApi();클래스 선언은 위와 같습니다.
Upbit에서 거래 가능한 마켓 목록을 제공합니다.
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_warning은 isDetail=true일 경우에만 포함됩니다.
지정된 코인의 분 단위 캔들 정보를 제공합니다.
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 |
분 단위(유닛) |
지정된 코인의 일 단위 캔들 정보를 제공합니다.
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 파라미터 없을 시 해당 필드 포함되지 않음.) |
지정된 코인의 주 단위 캔들 정보를 제공합니다.
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 |
캔들 기간의 가장 첫 날 |
지정된 코인의 월 단위 캔들 정보를 제공합니다.
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 객체를 공유합니다.
지정된 코인의 최근 체결(Ticks) 내역에 대한 정보를 제공합니다.
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) |
지정된 코인의 시세 Ticker에 대한 정보를 제공합니다.
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 |
타임스탬프 |
지정된 코인의 호가 정보에 대한 정보를 제공합니다.
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_units은 OrderBookUnit 객체의 배열을 가집니다.
OrderBookUnit은 호가를 의미하며, 1호가 부터 15호가까지의 호가 정보를 배열에 담아 제공합니다.
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의 메서드도 포함되어 있습니다.
보유한 자산 리스트를 제공합니다.
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 |
평단가 기준 화폐 |
사용자가 가진 코인 종류의 갯수만큼 줄력됩니다.
코인별 주문 가능 정보를 제공합니다.
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의 경우 자산 - 전체 계좌 조회의 응답 객체와 동일합니다.
주문 UUID를 통한 개별 주문의 정보를 제공합니다.
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 |
체결 시각 |
주문 리스트를 제공합니다.
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 |
해당 주문에 걸린 체결 수 |
주문 취소 접수 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 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 |
해당 주문에 걸린 체결 수 |
매수 시장가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 API입니다.
주문 API는 총 6개가 제공됩니다.
- 매수 시장가 주문 (필수 파라미터)
- 매수 시장가 주문 (전체 파라미터)
- 매수 지정가 주문
- 매도 시장가 주문 (필수 파라미터)
- 매도 시장가 주문 (전체 파라미터)
- 매도 지정가 주문
지정된 코인의 현재 시세를 기준으로 원하는 금액만큼 구매합니다.
⚠ 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 |
해당 주문에 걸린 체결 수 |
매수 지정가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 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 |
해당 주문에 걸린 체결 수 |
매도 시장가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 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 |
해당 주문에 걸린 체결 수 |
매도 지정가 주문 기능을 제공합니다. 사용자의 자산에 직접적인 영향을 주는 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 |
해당 주문에 걸린 체결 수 |